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: usobak 19 Prosince 2013, 10:03:28

Název: čtení dat z /dev/ttyUSB0
Přispěvatel: usobak 19 Prosince 2013, 10:03:28
Dobrý den,

řeším problém se čtením dat z /dev/ttyUSB0 (používám převodník USB - rs485). Pod win vše ok pod linuxem data odešlu, převodník signalizuje příjem a odeslání dat zpět do pc ale při čtení málo kdy hodnotu načtu. Testuji v terminálu pomocí

sudo echo *B1TR > /dev/ttyUSB0 - poslání žádosti s vrácení stavu teploměru

sudo cat < /dev/ttyUSB0 - příjem dat

z 10ti pokusů se mi data pod linuxem vrátí cca 1x. příjde mi , že nějaká aplikace naslouchá na /dev/ttyUSB0 a danou hodnotu mi bere.

Nebudete mít radu co s daným problémem?

Moc děkuji :-)
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: Myrmica 19 Prosince 2013, 10:46:34
1. Uživatel pod kterým to spouštíš musí být členem skupiny dialout
2. Jak nastavuješ parametry sériového portu? Může být špatně nastaveno řízení komunikace
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: usobak 19 Prosince 2013, 10:55:20
aplikaci mám v PHP, přidal jsem uživatele www-data do dané skupiny pomocí příkazu:
$ sudo usermod -G www-data,dialout www-data
z terminálu se prvně vždy přihlasím pod rootem pomocí sudo -i a nasledně testuji.

k nastavení rychlosti, stopbitů a dalších - vypsal jsem si výchozí konfiguraci portu a ta je schodná s čidlem , které používám. Stejné nastavení pod win funguje.
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: Myrmica 19 Prosince 2013, 11:11:03
Mrkni sem třeba Ti to pomůže, je tu jak nastavit sériové porty a jak s nimi pracovat: http://www.abclinuxu.cz/clanky/hardware/seriova-komunikace-pod-linuxem-i
V seriovém portu jsem doma, ale nedělám s ním přes bash :)
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: Myrmica 19 Prosince 2013, 11:13:05
Ještě připomínka, největší problém mi, po vyřešení přístupových práv, dělalo řízení toku dat. Zkontroluj si to.
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: Myrmica 19 Prosince 2013, 13:05:14
Ještě pro zkoušení práce se sériovými porty celkem úspěšně používám gtkterm.
Kód: [Vybrat]
sudo apt-get -y install gtkterm
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: usobak 28 Prosince 2013, 23:14:54
Děkuji za rady, problém byl v nastavení portu, pomohlo nastavení

stty -F /dev/ttyUSB0 1:0:cbd:0:3:1c:7f:15:4:1:3c:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

prosím o radu, jak toto natavení mohu uložit natrvalo?

Děkuji
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: Myrmica 31 Prosince 2013, 07:10:55
Dát do skriptu a ten spouštět v Aplikace spouštěné při přihlášení?
EDIT: Protože se však jedná o USB nebude při startu k dispozici. pak doporučuji se podívat na setserial (http://manpages.ubuntu.com/manpages/natty/man8/setserial.8.html). Dá se tam prokousat ke konfiguračním souborům, ale teď jsem na PC kde jsem RS232ToUSB převodník ještě nepoužíval, tak nejsem schopen nalézt podrobnosti. Zejména si prohlédni skript /etc/init.d/setserial.
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: usobak 02 Ledna 2014, 09:25:59
Vyřešil jsem to tak, že před prácí s převodníkem z PHP pošlu vždy nastavení konfigurace na port a funguje to :-)
Název: Re:čtení dat z /dev/ttyUSB0
Přispěvatel: Myrmica 02 Ledna 2014, 14:29:52
Ano, to je řešení pro hotovou aplikaci, které také obvykle používám. (Asi nejpoužívanější řešení.)
Pokud budeš chtít komunikovat z terminálu, pak budeš muset nejspíše před vlastní komunikací spouštět skript s nastavením.
Ale z tvého popisu problému jsem pochopil, že pro práci se sériovým portem potřebuješ mít hned po startu PC, je-li převodník připojen k USB, nebo při zapojení převodníku, mít nastavené komunikační parametry, aby jsi s ním mohl rovnou pracovat pomocí příkazů z terminálu, a k tomu směřovala i moje nápověda.