ComPort - pytanie o odczyt

0

Witam, mam ComPort robie zapis do portu za pomocą ComPort.WriteStr(s); i teraz jak zrobie Od razu odczyt ComPort.ReadStr(odp,1000); to odczytu brak bo za szybko jest wykonywany odczyt. Jak zrobie sleep(100) miedzy zapisem i odczytem to mam wynik ale jest do bez sensu by robic sleepa. Moze ktos wie jak zrobic by Od razu miec odpowiedz lub samoczynnie oczekiwalo bez sleep?
Czy da sie zrobic transmisje Async ? czyli wysylam i czekam jak wysle nastepnie odbieram?
Z gory dzieki za pomoc bo mecze sie z tym ponad 10h ;/

0

a nie ma eventu onReceive, onData albo czegos w tym stylu?
z reszta: Odczyt z portu COM

0

onrxchar

0
Misiekd napisał(a)

onrxchar

Yhym wiem ze w onrxchar ale co w przypadku jak np chce dostac odpowiedz a wyskoczy blad w trakcie odpowiedzi np urzadzenie nie odpowie? Zresztą musial bym w petli czekac jak cos pojawi sie w onrxchar troche bez sensu ;/

0
gerffi napisał(a)

[...] ale co w przypadku jak np chce dostac odpowiedz a wyskoczy blad w trakcie odpowiedzi np urzadzenie nie odpowie?

czyli chcesz dostac odpowiedz, nawet jesli urzadzenie nie odpowie? troche nielogiczne. chyba, ze chodzi Ci o zrobienie timeout'u?

gerffi napisał(a)

Zresztą musial bym w petli czekac jak cos pojawi sie w onrxchar troche bez sensu ;/

:| nie wiem co powiedziec... po kiego robic petle do zdarzenia? zerknales choć raz do googli zeby zobaczyc jak sie uzywa comportu?
zdarzenie sie "samo wywola" jak urzadzenie przysle jakies dane do komputera.

0
gerffi napisał(a)

ale co w przypadku jak np chce dostac odpowiedz a wyskoczy blad w trakcie odpowiedzi np urzadzenie nie odpowie?

Mozna ustawic timeout, wtedy dostanie sie informacje, ze czas oczekiwania na odpowiedz zostal przekroczony.

Poza stosowaniem comportu jako komponentu proponuje sie tez zapoznac z protokolem/standartem rs-232.

1 użytkowników online, w tym zalogowanych: 0, gości: 1