Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: René Baran 14 Srpna 2009, 13:30:20

Název: Komunikace se seriovym portem
Přispěvatel: René Baran 14 Srpna 2009, 13:30:20
Ahoj vsichni.

Mam problem a nevim si s nim rady. Posilam na seriovy port COM1 prikaz (ATZ, ...).

echo "...." > /dev/ttyS0

chci precist odpovet (navratovou hodnotu) prikazem
cat /dev/ttyS0

a nic mi nevrati. Kdyz vsak posilam dane prikazy v terminalu modemu, tak zarizeni komunikuje spravne. Testoval jsem i runscript, ale nejak mi to nejde. Nastaven port mam pres minicom a spravne. Poradi mi, prosim, nekdo, jak precist zpetne odpoved (navratovou hodnotu) z command line? Nechce se mi to programovat v cecku. Na netu jsem sice toho nasel dost, ale casto se to opakovalo a to co tam bylo nefunguje. Nejspis problem s timeoutem. Diky moc.


Renek




Název: Re: Komunikace se seriovym portem
Přispěvatel: jfoot 14 Srpna 2009, 13:39:08
Zdravím Vás,
máte, předpokládám, spojeny špičky Rx a Tx konektoru  ...
Pokud ano, potom byste mohl zkusit, to, co i mě poradil kdysi kiklhorn , cituji :

"Jestli chodí komunikace otestujte buď z commandline ( všechno je soubor), nebo hezky pohodlně "sudo apt-get install gtkterm", naleznete jej v menu, nebo "gtkterm". 
Konec citace.

Tímto se prověří komunikace na hw úrovni.
Pokud Vám bude tohle chodit, tak můžete přejít na sejmutí přijatých znaků z command line...

Název: Re: Komunikace se seriovym portem
Přispěvatel: René Baran 14 Srpna 2009, 14:08:47
Zdravim.

Dekuji. Pouzil jsem terminal minicom a vse fungovalo. Jedna se mi o zachytavani hodnot z cmdline :-( Zarizeni mi jinak funguje. To jsem jako prvni otestoval.


Rene

Název: Re: Komunikace se seriovym portem
Přispěvatel: jfoot 14 Srpna 2009, 17:09:57
Zdravím Vás,

Možná je problém v tom, že nejdříve je třeba nastavit "naslouchání" a až poté vysílat.
Také je třeba se ujistit, že si /dev/ttyS0 neuzurpuje pro sebe nějaká softwarová havěť...

Já nemám plnotučné RS 232 vyvedené na CAN 9 na svojí rachotině, pouze USB.
Takže do jeho slotu "vrazím" konvertor RS 232 <-> USB, který se automaticky namapuje
u mě jako /dev/ttyUSB0, což ale nemá na princip žádný vliv. Vyzkoušejte následující
přesně v pořadí, jak jsem napsal, to musí fachčit...

Takže :
1. Já vrazím konvertor RS 232 <-> USB do USB slotu
   (!! Samozřejmě mám spojeno Rx a Tx na CAN 9 tohoto konvertoru !!) a příkazem
   
Kód: [Vybrat]
ls -l se ujistím, že se namapoval , vypíše se :
   
Kód: [Vybrat]
crw-rw---- 1 root dialout 188, 0 2009-08-14 16:43 /dev/ttyUSB0  Tento krok ve Vašem případě odpadá...
 
2. Nastavím naslouchače : otevřu terminálové okno, zadám:
   
Kód: [Vybrat]
cat</dev/ttyUSB0  Enter
3. A jdu vysílat, otevřu JINÉ (další ) terminálové okno a vložím do něj :
 
Kód: [Vybrat]
sudo echo 
blablablablablabllablablablablablablablablablablablablablablablablablablabablabblablablablablabllablablablablablablablablablablablablablablablablablablabablablablablablablablablablablalablablablablablablablabla > /dev/ttyUSB0   Enter

Okamžitě po stisku Enter v bodě 3 se mi objeví text v "naslouchacím okně".
Schválně dávám dlouhý text, protože při krátkých textech se v naslouchacím okně
čtení nezastaví, ale pokračuje dál, možná to nějak souvisí s bufferováním,
to by mohli vědět Linux guruové. Krátké texty jen "probliknou"...

Tolik o stavu vod na sériových tocích, testněte to a dejte případně vědět, hodně zdaru zatím ,
jdu krotit potomky ...... ;D   ;D
Název: Re: Komunikace se seriovym portem
Přispěvatel: René Baran 14 Srpna 2009, 22:44:35
Zdravim.

Dane zarizeni neni blokovano nicim. Ale to naslouchani je dobry napad. Je mozne, ze to je tim. Dik za tip, vyzkousim.


R.

Název: Re: Komunikace se seriovym portem
Přispěvatel: René Baran 14 Srpna 2009, 22:46:22
Hodne zdaru s krocenim potomku :-))))))))))
Název: Re: Komunikace se seriovym portem
Přispěvatel: Honzaa90 26 Dubna 2012, 19:29:51
Zdravím Vás,

Možná je problém v tom, že nejdříve je třeba nastavit "naslouchání" a až poté vysílat.
Také je třeba se ujistit, že si /dev/ttyS0 neuzurpuje pro sebe nějaká softwarová havěť...

Já nemám plnotučné RS 232 vyvedené na CAN 9 na svojí rachotině, pouze USB.
Takže do jeho slotu "vrazím" konvertor RS 232 <-> USB, který se automaticky namapuje
u mě jako /dev/ttyUSB0, což ale nemá na princip žádný vliv. Vyzkoušejte následující
přesně v pořadí, jak jsem napsal, to musí fachčit...

Takže :
1. Já vrazím konvertor RS 232 <-> USB do USB slotu
   (!! Samozřejmě mám spojeno Rx a Tx na CAN 9 tohoto konvertoru !!) a příkazem
   
Kód: [Vybrat]
ls -l se ujistím, že se namapoval , vypíše se :
   
Kód: [Vybrat]
crw-rw---- 1 root dialout 188, 0 2009-08-14 16:43 /dev/ttyUSB0  Tento krok ve Vašem případě odpadá...
 
2. Nastavím naslouchače : otevřu terminálové okno, zadám:
   
Kód: [Vybrat]
cat</dev/ttyUSB0  Enter
3. A jdu vysílat, otevřu JINÉ (další ) terminálové okno a vložím do něj :
 
Kód: [Vybrat]
sudo echo 
blablablablablabllablablablablablablablablablablablablablablablablablablabablabblablablablablabllablablablablablablablablablablablablablablablablablablabablablablablablablablablablablalablablablablablablablabla > /dev/ttyUSB0   Enter

Okamžitě po stisku Enter v bodě 3 se mi objeví text v "naslouchacím okně".
Schválně dávám dlouhý text, protože při krátkých textech se v naslouchacím okně
čtení nezastaví, ale pokračuje dál, možná to nějak souvisí s bufferováním,
to by mohli vědět Linux guruové. Krátké texty jen "probliknou"...

Tolik o stavu vod na sériových tocích, testněte to a dejte případně vědět, hodně zdaru zatím ,
jdu krotit potomky ...... ;D   ;D

ahoj, narazil jsem na tohle téma a zrovna se hodí. Zapnu konvertor, ls -l se podívám, že tam je, pak poslouchám, ale žádná zpráva se mi neukáže (posílám jí dlouhou a samozřejmě mám zkratovaný tx rx). Máte nápad, co s tim?
Honza