[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 214: htmlspecialchars(): charset `Y' not supported, assuming utf-8
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 215: htmlspecialchars(): charset `Y' not supported, assuming utf-8
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 216: htmlspecialchars(): charset `Y' not supported, assuming utf-8
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 87: htmlspecialchars(): charset `Y' not supported, assuming utf-8
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 129: htmlspecialchars(): charset `Y' not supported, assuming utf-8
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 130: htmlspecialchars(): charset `Y' not supported, assuming utf-8
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1685: htmlspecialchars(): charset `Y' not supported, assuming utf-8
PROMOTIC FORUM • View topic - Komunikace po RS232
Page 1 of 1

Komunikace po RS232

PostPosted: Mon 04. Apr 2016 12:52:21
by tichylibor
Dobrý den,
narazil jsem na problém při komunikaci s čtečkou čárových kódů.

Čtečka posílá data přes RS232 jako textový řetězec o délce 13 znaků.
Přijde 8 znaků, uloží se do proměnné, ale těch dalších 5 příchozích znaků je přepíše.

Po příjmu dat se zvýší "OK all transmissions counter" o 2.

Mám shodně nastavené parametry komunikace (rychlost, stopbity, paritu, ...)
V záložce "Data-příjem" mám pouze jednu proměnnou "prijataData" typu String o délce 100.
Timeout mezi příjmem dvou znaků je 100 ms (zkoušel jsem zvyšovat, ale nepomohlo to).

Myslel jsem, že Promotic přijme znak, vloží ho do proměnné "prijataData",
a pokud do 100 ms nepřijde další znak, tak ukončí příjem.

Pokud zkusím odchytit data z čtečky (např. programem Hercules), tak řetězec chodí celý a správně.

Nevíte prosím v čem může být problém?
Děkuji.

Libor Tichý

Re: Komunikace po RS232

PostPosted: Fri 08. Apr 2016 8:07:10
by Petr Návrat
Dobrý den
Předpokládám že používáte Promotic komunikační ovladač PmChar.
Tento ovladač ukončí příjem za následujících podmínek:

- když vznikne timeout mezi příjmem znaků - ten jak říkate máte 100 ms ale když to dáte víc (např. 10000ms ??) tak se to chová stejně. Tím to tedy asi nebude.
- když počet přijatých znaků bude roven maximálnímu počtu očekávaných znaků. Vy to máte nastaveno na 100 znaků, takže to tím také asi nebude.
- pokud je v parametrech protokolu nebo v parametrech zprávy nastaven konfigurátor "používat ETX" a pokud ETX máte nastaven na znak který se ve zpráve objeví.
ETX představuje znak příznaku konce zprávy.
Nevím zda tento znak máte nastaven.

Jinak si zatím nedovedu představit proč se příjem ukončí předčasně.
Pomohlo by kdybyste mi poslal Váš projekt (na mail: navrat@microsys.cz) a raději i výpis z INFO systému z položku /COMM/PmChar.