Niby prosta sprawa, ale mam problem, z którym sam nie mogę sobie poradzić.
Urządzenie zewnętrzne przesyła po RS232 5 bajtów danych odbieranych przez Tcomport w zdarzeniu OnRxChar.
W OnRxChar wypełniam danymi tablicę poprzez comport.Read(din,count) i dalej w tym samym zdarzeniu przetwarzam sobie dane z tablicy.
Problem w tym, że czasem przesłana 5 bajtowa paczka danych wywołuje dwa razy zdarzenie OnRxChar - raz z count=3 a drugi raz z count=2. Ostatnie zdarzenie nadpisuje mi 2 pierwsze bajty tablicy danych i psuje dalszą obsługę.
Jak sobie z tym poradzić? Jak zapobiec wywoływaniu zdarzenia dwukrotnie albo zmusić program by przy drugim (może nawet trzecim) zdarzeniu uzupełnił tablicę danych a nie nadpisywał ją od początku?
Dodam, że urządzenie z każdym razem wysyła paczkę 5 bajtów "ciurkiem" nie robiąc przerw w nadawaniu, więc wina leży po stronie programu.
Urządzenie zewnętrzne przesyła po RS232 5 bajtów danych odbieranych przez Tcomport w zdarzeniu OnRxChar.
W OnRxChar wypełniam danymi tablicę poprzez comport.Read(din,count) i dalej w tym samym zdarzeniu przetwarzam sobie dane z tablicy.
Problem w tym, że czasem przesłana 5 bajtowa paczka danych wywołuje dwa razy zdarzenie OnRxChar - raz z count=3 a drugi raz z count=2. Ostatnie zdarzenie nadpisuje mi 2 pierwsze bajty tablicy danych i psuje dalszą obsługę.
Jak sobie z tym poradzić? Jak zapobiec wywoływaniu zdarzenia dwukrotnie albo zmusić program by przy drugim (może nawet trzecim) zdarzeniu uzupełnił tablicę danych a nie nadpisywał ją od początku?
Dodam, że urządzenie z każdym razem wysyła paczkę 5 bajtów "ciurkiem" nie robiąc przerw w nadawaniu, więc wina leży po stronie programu.