Potrzebuję skomunikować się z pewnym urządzeniem po RS485. Ramki danych jakie wysyła to ustrojstwo to coś takiego:
[SOH][adress][RS][cmd][RS][data][RS][data_crc8][EOT]
przykładowa ramka:
[SOH]
10[RS]
THO[RS]
124F80[RS]
42[EOT]
Wiec, napisałem sobie takie 2 funkcję:
1. Funkcja parsujaca odebrane dane:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
2. Funkcja "analizująca":
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Problem polega na tym, że jak wysyłam z terminala jakąś przykładowa ramkę funkcja
ParseUsartData zwraca mi wartość -1 , tzn. że niby w buforze nie ma znaku SOH (Pierwszy if w funkcji
ParseUsartData). Natomiast jak odeślę ten bufor z powrotem do kompa (wewnątrz funkcji
Make485Cmd)to niby wszystko w nim jest. Zaznaczony fragment na screenie. Chciałbym prosić kogoś o podpowiedz co robię źle? bo już pomysły mi się skończyły...
screen z terminala:
P.S.
w polu Send wpisane są takie kocie rzeczy jak $01. Bray Terminal rozumie to jako 0x01 itd.