Soros port + wine

Fórumok

Sziasztok!

Wineban futtatnank egy exe-t, ami a soros porton keresztul kommunikalna egy kulso eszkozzel.
A Hw egy notebook, USB-soros atalakitoval.
Ha a notin win van, ebben a kiepitesben megy a kommunikacio. Sot, ha linux fut, es rdesktoppal masik (de win-es) gepre csatlakozunk, es az rdesktopnak megadjuk a port kiajanlasat, akkor a tavoli gepen futtatva a program szinten tud kommunikalni.
Wine eseten nem ilyen egyszeru a helyzet:A wine-nak megadtuk, hogy a /dev/ttyUSB0 a com1 (ezen megadas elott a portnyitasnal hibauzenetet adott a program).
Igy viszont elkezdi felvenni a kapcsolatot, az USB-soros atalakito ledje jelzi is, hogy adatok haladnak at (ugy veljuk, hogy a kimeno adatok eljutnak ide), de kommunikacio nem alakul ki.
Laikus benyomasunk az, hogy visszafele nem megy a soros porton az adat.

Merre es hogyan kell keresni a problemat?
Van-e olyan megoldas, ami kizarolag az usb-soros atalakito (logikai) soros vegen zajlo kommunikaciot tudja logolni (tehat nem azt, ami az USB-n zajlik). (Gondolom, hogy a /dev/ttyUSB0 fajlba irt es onnan olvasott adatok reprezentaljak azt, ami engem erdekel.)

Tehat merre es hogyan kell keresni a problemat?

Hozzászólások

Két tipp:

- esetleg próbáljátok meg wine helyett Virtualbox-szal. Ha jól emlékszem, tud soros port passthrough-ot.

- az az USB-soros átalakító is okozhat problémákat, főleg, ha olcsó vacak.
Volt olyan tapasztalatom, hogy egy Metex voltmérőt szerettem volna vezérelni soros kapcsolaton keresztül. Ha közvetlenül a soros portra kötöttem, akkor működött minden, visszakaptam az adatokat a gépkönyvben leírt formátumban. Ha közbeiktattam az USB-soros átalakítót, látszólag zagyvaság jött a műszer felől - egész addig zagyvaságnak tűnt, amíg rá nem jöttem, hogy az átalakító minden byte legfelső bitjét 1-re állítja.

A soros port forgalmának figyelését (az oszcilloszkópos és led-villogtatós módszeren kívül) úgy lehet házilag megoldani, hogy egy elfekvő gépre, amiben van két soros port, tesztek linuxot, és beállítjátok, hogy az egyik port forgalmát továbbítsa a másikra, és közben loggolja is. Az egyik portra rákötitek a külső eszközt, a másikra a notebookot az átalakítón keresztül.

Windows alatt leteznek portmonitor programok, amik a port beallitasait, az azon torteno be- es kimeno forgalmat logoljak (karakteresen vagy hexa formaban). Valami ilyesmit keresek linux alatt is, de a strace tul sok mindent logol,e s nem is tudom ertelmezni a logot - nem talalok ra a sorosporton zajlott forgalom logjara...
Tehat ilyesmi, plusz hw-t nem igenylo megoldast keresek.

A port sebessége mekkora? Jól állítódik be?

Fogsz egy windowsos gepet (laptopot) es kiprobalod, hogy ott megy-e egyaltalan (nincs hw hiba, etc). Ott ki tudod tesztelni, milyen portsebesseg lenne jo neked.

Mielott lehurrognatok: nem azt mondtam, hogy windowsra rakd fel a cuccot, csak szerezz egy windowsos gepet (laptop, barmi) hogy egyaltalan mukodik-e a dolog.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Nem tudom elegge hangsulyozni, hogy nem ezt mondtam. A Windowson csak _meg kellene nezni_, hogy pontosan milyen parameterek menten mukodik az ottani program (kulonos tekintettel a soros port beallitasaira). Ez tampontot adhat peldaul a linuxos beallitasokhoz. Bocs, ennel egyertelmubben nem tudom leirni.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

En minicomban beallitanam ezeket a parametereket, es megneznem, hogy megy e egy linuxon futo linuxos alkalmazasbol a dolog. Ha igen, akkor lehet tovabblepni egyreszt a wine fele, masreszt en a helyedben korulneznek, lehet hogy feleslegesen kinlodsz wine-val, mert a neked kello progit mar megirtak linuxra.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Cegunk irta a win-es programot, a hw-eket mi importaljuk, a benne futo fw-eket vagy mi irtuk regebben, vagy a mi igenyeinkre irjak kinn.
Tehat a "lehet, hogy mar van kesz program linux ala" nem jatszik.

Nem fejlesztesi feladatkent kellene megoldani a kerdest, hanem IT feladatkent, ha lehet.

Minicom: ugy ertsem, hogy linuxon minicommal probaljak kikuldeni a kommunikacionak megfelelo kereteket? Mi van, ha az tartalmaz nem hagyomanyos karaktereket jelento ertekeket is?

Azert koszi az otleteket.

Nincs olyan funkcioja a cuccnak, hogy ha valami hulyeseget kap, akkor hibat adjon vissza? Barmi jo, ami lathato (akar ertelmetlen) karaktereket eredmenyez.

Ami a wine-t illeti: meg kell erteni, hogy ez a program nem elsosorban ilyen feladatok ellatasara keszult. El tudom kepzelni, hogy leteznek benne mar a soros port kezelesehez szukseges API alapjai, de nem gondolom azt, hogy annyira kitesztelt, mint pl. a DirectX implementacio. Lehet, hogy jobban jartok, ha lefejlesztitek az illeto programot Linuxra, mint ha szenvedtek egy lehetsegesen instabil API-val. A soros port rettentoen hardverkozeli dolog, es en az ilyesmivel igyekszem a vegletekig ovatos lenni, mert inkabb legyen draga es stabil, mintsem legyen ingyen, de megbizhatatlan.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

strace-n kívül nem is próbáltatok mást? Van egypár port capture/snoop/monitor app, tapasztalatom nincs a kérdésben, csak a leírásuk szerint akár jó is lehet nektek:
http://sourceforge.net/projects/slsnif/
http://www.earth.li/projectpurple/progs/sersniff.html
http://www.silicontao.com/software/SerialSpy/doc/information.html
snooping :-) http://linuxgazette.net/issue48/tag/52.html
Ez meg inkább ötletadó lehet, de akár: http://jonmccune.wordpress.com/2007/07/13/serial-port-capture-in-linux/
Vagy még egy, eredendően soros konzolokhoz, de egész okosságnak tűnik elsőre:
http://www.danlj.org/mkj/ttywatch/

Sub, mert egy ugyanilyen szituban nekem se ment a wine+usb átalakítóskombó- Szerencsére az én esetemben találtam natív linuxos programot, és azzal kiválóan megy az eszköz.
Csaba