[ Príspevkov: 12 ] 
AutorSpráva
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
NapísalOffline : 23.03.2013 0:29 | prenos dat medzi aplikaciami

Ahojte,

Mam mensi problem pri volbe sposobu prenosu dat medzi aplikaciami. Moj problem:

Mam 5 samostatnych aplikacii ktore by mali pristupovat k perifernemu zariadeniu. Nakolko ku tomuto perifernemu zariadeniu moze pristupovat len jedna aplikacia v danom casovom okamihu, musim komunikaciu vyriesit pomocou samostatnej aplikacie ktora ku nemu bude pristupovat a RGB obraz,... bude distribuovat tym piatim aplikaciam (data bude multicastovat). Problem je ten, ze sa neviem rozhodnut aku technologiu pouzit na prenos dat. Ci surove TCP (tych 5 aplikacii je pisanych skoro kazda v inom jazyku C,Cpp,C# cize pri TCP by som nemusel riesit proprietarnost). Pre C# existuje daco ako Interface plugin ale to si nemyslim ze poriesim v Ccku ...

Otazka: Ako by ste prenasali relativne velke datove toky (video a zvuk) medzi medzi aplikaciami ?
V pripade dakych riadiacich dat by som toto neriesil ale pri realtime streamoch (video a zvuk) sa neviem rozhodnut.

Dakujem.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 23.03.2013 9:17 | prenos dat medzi aplikaciami

Ešte pred tým, než nad tým začnem rozmýšľať sa spýtam - Čo je to za zariadenie? Musí to ísť softwareovo? Nešlo by tam dať nejaký HW medziprvok, ktorý by požiadavky aplikácií hádzal do nejakej fronty a postupne ich púšťal k slovu?


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Napísal autor témyOffline : 23.03.2013 13:25 | prenos dat medzi aplikaciami

je to kinect. problem je ten ze pred pouzitim ho treba inicializovat a jedna aplikacia zozerie celu USB zbernicu. Pustanie k slovu nie je dobre lebo ja potrebujem primst data stale na jednom HW. cize ta aplikacia v ulohe dakeho hubu bude asi nevyhnutna.Najidealnejsie by bolo ak by tych 5 aplikacii bola jedna aplikacia ale to je nerealne. Tum hubom som si isty potrebujem len technologiu na prenos takeho mnozstva dat.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 23.03.2013 13:57 | prenos dat medzi aplikaciami

Aha, takže tebe ide komunikácia nejak takto?
App1: Init Kinect, Send/Read data, Close connection
App2: Init Kinect, Send/Read data, Close connection
App3: Init Kinect, Send/Read data, Close connection
atď.

Púšťanie k slovu som myslel tak, že by si mal napríklad nejaký mikrokontrolér s FTDI, ktorý by si pripojil na USB a z aplikácií posielal požiadavky na Kinect. A ten by sa trebárs mohol starať aj o jeho inicializáciu pri prepnutí kontextu (v tomto prípade teda aplikácie)
Softwareové riešenie mi napadne zdieľaná pamäť, ale to nie je veľmi komfortné. Príp. sa môžeš z tých 5 aplikácií dorozumievať s nejakou šiestou cez sockety, ktorej by si ale hovoril len "v tomto súbore máš pripravené dáta, pošli ich a pošli mi odpoveď", alebo "tuto do tohoto súboru mi pošli dáta a povedz, keď tam budú"
Ak to budú realtime streamy, tak cez súbory by sa to dalo nejak poriešiť, ale tam by som už keď tak aspoň tie riadiace signály vtrepal do zdieľanej pamäte. Alebo niečoho rýchlejšieho ako sockety, len ma nič teraz nenapadá.

Prečo by ale nemohli byť v jednej aplikácií? Príp. môžeš každú upraviť tak, aby sa dalo ovládať všetko potrebné cez parametre v príkazovom riadku/termináli a v tej šiestej robiť niečo ako "spusti App1 -parametre" a ono to niečo urobí.

Neviem, či nepíšem bludy, neviem si poriadne predstaviť, čo s tým chceš robiť :D


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Skúsený užívateľ
Skúsený užívateľ
prenos dat medzi aplikaciami

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 23.03.2013 14:00 | prenos dat medzi aplikaciami

Ivan, možno by bolo fajn najskôr čo najkonkrétnejšie uviesť, na čo to potrebuješ, lebo ani mne to nejako nedáva logiku, čo by si s tým chcel potom robiť... Mám taký dojem, že riešením tvojho problému bude nejaká primitívna záležitosť...


_________________
C#, PHP, ...
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Napísal autor témyOffline : 23.03.2013 15:24 | prenos dat medzi aplikaciami

To na co to poterbujem je nepodstatne. Staci len tolko, ze tych x aplikacii s datamy z kinectu daco robi (analyzuje ich - zvuk\obraz). HW riesenie pomocou prepinaca je nevhodne nakolko tych x aplikacii ma bezat na jednom stroji. Preprogramovat to do jednej aplikacie je prilis narocne (nerealne pri sucasnom stave). Softwarove zdielanie zariadenia je tiez nevhodne pretoze je pre mna neziaduje aby si daka aplikacia rezervovala zariadenie na daky cas len pre seba plus niektore aplikacie su citlive na dicontinuity (zvuk). Preto ten multicast. Niektore z aplikacii vyzaduju identicke data v danom casovom okamihu tak preco by si na to mali samostatne vyhradzovat cas (preto multicast). Zapisovanie do suboru je tazkopadne a pomale. Preco do procesu pri ktorom su prenasane velke datove toky zaradovat najpomalsie zariadenie pocitaca. Este si viem predstavit ze by to bolo zapisovane do Ramky a tieto data zdielane pre vsetkych x aplikacii, ale s tym nemam skusenosti. Ja som ako prve pri rieseni problemu zvazoval sockety ... no zaujma ma ci nie je daky vhodnejsi framework/API/kniznica. Vhodna pre C/Cpp/C#. Uplne super by bolo dake trensparentne riesenie pri ktorom by som sa nemusel riesit low level zalezitosti. Dakujem

PS: Aplikacie nie je mozne spustat a zapinat (teda je ale nie je to vhodne). Operacie ktore vykonavaju niesu jednorazove. Aplikacie si mozes predstavit ako servery ktore vyhodnocuju data.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 23.03.2013 15:50 | prenos dat medzi aplikaciami

Tak si sprav RAM disk a pracuj so súbormi. Bude to trochu pomalšie, než zapisovanie priamo do RAMky (pretože sa tam bude volať filesystem), ale bude to podstatne rýchlejšie aj od SSD disku.
No a urob si aplikáciu, ktorá bude všetky dáta z kinectu chŕliť do súboru/ov, ktoré budeš mať nejako vhodne štruktúrované. A z ostatných aplikácií si z nich budeš vyberať to, čo potrebuješ.
Toto ale bude pri veľkých dátach poriadna záťaž na RAMku a zase sa to oplatí len ak je tých dát naozaj veľa naraz - volať filesystem každú chvíľu s každou blbosťou je záťaž a bude treba nájsť kompromis medzi "realtime" a rozumným spracovaním.
Z toho čo som pochopil ti netreba posielať dáta priamo kinectu, však? V tom prípade by toto mohlo byť riešenie. Ak potrebuješ aj posielať dáta, tak sa to tam dá nejako zakomponovať.
Žiadny framework ale na toto iste nebude, štruktúrovať dáta si musíš sám a čítať zo súborov tiež. A samozrejme ich musíš aj priebežne kontrolovať a tie nepotrebné mazať.

Inak to nevidím, neviem aké zverstvo robíš, ale asi to robíš zle :P


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Napísal autor témyOffline : 23.03.2013 16:07 | prenos dat medzi aplikaciami

Ano robim to zle, ale to je len dosledok toho, ze na probleme pracuje vela ludi a kazdy si tu svoju specificku aplikaciu programoval sam vo vlastnom jazyku (nepytaj sa preco sam tomu nechapem). Teraz ked to treba skombinovat tak musim riesit takyto stupidny problem.

No nic tie sockety vidim fakt ako najschodnejsiu cestu v pomere narocnost\vykon.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 23.03.2013 16:11 | prenos dat medzi aplikaciami

Ivan11114 píše:
No nic tie sockety vidim fakt ako najschodnejsiu cestu v pomere narocnost\vykon.

A čítal si, čo som písal?
Fakt chceš kopu dát pchať cez sockety a to na jedinom počitači? Teda neviem, koľko je tých dát a ako rýchlo ich chceš spracovávať, ale sockety mi veru neprídu ani rýchle, ani jednoduché (tiež to budeš musieť nejako manageovať)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Napísal autor témyOffline : 23.03.2013 16:17 | prenos dat medzi aplikaciami

jj toho som si vedomy no ked si predstavim vsetko chrlit do suborov a tam riesit XY veci naviac tak neviem ci vysledna aplikacia bude o tolko rychlejsia, ze to v konecnom dosledku bude stat za to.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 23.03.2013 16:24 | prenos dat medzi aplikaciami

So súbormi to môže byť rovnako zložité, ako so socketmi, ale už aj vtedy to bude rýchlejšie, lebo obídeš celý TCP/IP protokol a nahradíš ho rýchlym filesystemom, ktorý zapisuje do extrémne rýchlej RAMky.
Zjednodušiť by sa to dalo ešte tak, že cez sockety by si riešil riadiace signály, aké som popisoval vyššie, ale veĺké dáta by som tak určite neprenášal. To je úplne zbytočné. A ak majú súbory len čítať, vedia to robiť všetky naraz, takže nie je problém.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Napísal autor témyOffline : 23.03.2013 16:33 | prenos dat medzi aplikaciami

pri komunikacii na loopback adresach data neprechadzaju celym protokolovym zasobnikom. Ok no este si to necham prejst hlavou ... Ale vdaka za rady ;) Ak ta napadne aj daco ine kludne napis.


 [ Príspevkov: 12 ] 


prenos dat medzi aplikaciami



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dát medzi PC zabezpečí to Switch ?

v Externé zariadenia

14

517

19.07.2022 16:44

Tigerko

V tomto fóre nie sú ďalšie neprečítané témy.

prenos záložiek medzi počítačmi

v Sieťové a internetové programy

1

787

11.12.2008 10:08

don jebot

V tomto fóre nie sú ďalšie neprečítané témy.

Slabý prenos medzi particiami

v Pevné disky a radiče

6

609

13.10.2010 19:51

Milanese

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos premennych medzi funkciami

v PHP, ASP

6

560

27.08.2012 4:26

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dat

v Siete

0

646

30.12.2007 20:58

feldino

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dát

v Ostatné operačné systémy

4

882

18.08.2015 14:35

kllr007

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dát

v Ovládače

0

350

15.04.2014 19:15

erik1998

V tomto fóre nie sú ďalšie neprečítané témy.

[RoR] Prenos objektu medzi controllermi

v Perl, Python, Ruby, CGI

2

582

09.11.2014 21:45

destik

V tomto fóre nie sú ďalšie neprečítané témy.

datameter prenos dat

v Benchmarky a diagnostické programy

2

4473

05.12.2007 22:49

drakonlife

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos suborov medzi notebookom a PC

v Siete

16

10069

21.05.2011 14:10

Melon2k

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dat z HDD

v Pevné disky a radiče

4

641

19.09.2012 11:07

marianna161

V tomto fóre nie sú ďalšie neprečítané témy.

Bluetooth a prenos dat

v Mobilné zariadenia

1

914

15.10.2007 18:36

dodo_mt

V tomto fóre nie sú ďalšie neprečítané témy.

Extémne pomalý prenos dát

v Pevné disky a radiče

2

530

15.05.2020 19:58

sean222

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dát zo starého PC

v Ostatné

5

600

09.04.2012 22:50

Semp

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dát cez výmennú tabuľku

v Databázy

2

520

21.12.2015 16:08

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos dát zo zavíreného PC

v Operačné systémy Microsoft

12

897

22.05.2011 22:13

EXIREXT



© 2005 - 2024 PCforum, edited by JanoF