Chcę wysłać różne typy danych do mojego arduino za pomocą połączenia szeregowego za pomocą Pythona. Udało mi się już wysłać proste dane, takie jak ciągi na linii szeregowej i analizuję dane w moim kodzie Arduino, ale teraz chcę wysłać coś podobnego do struktury zawierającej dwa liczby całkowite i ciąg.

Myślałem, że powinienem tylko zbudować dane, które chcę wysłać jako sznurki, połącz je z tokenem separatora i przeanalizuj ten długi ciąg w moim kodzie Arduino. Czy to zwykły sposób na wysłanie większej liczby typów danych jednocześnie lub czy lepiej wysłać zmienne oddzielnie?

1
mdgr 17 styczeń 2020, 23:33

1 odpowiedź

Najlepsza odpowiedź

Tak, zawsze jest ryzyko utraty bajtów.

Ale jak się masz, całkowicie zależy od tego, jakie dane wysyłane. Na przykład, jeśli wysyłane wartości są między 0 a 255, możesz wysłać wartość jako jeden bajt.

Jeśli z drugiej strony wysyłasz wiele wartości i lub ciągłe, dobrą praktyką, aby skorzystać z znaków sterujących w tabeli ASCII, aby zaznaczyć rozpoczęcie sekwencji i rozdzielenia i identyfikacji wartości. Na przykład STX "value_id1" US "value" RS "value_id2" US "value" ... ETX

Jeśli integralność wartości jest bardzo ważna, można obliczyć sumę kontrolną "CRC", aby wysłać wzdłuż wiadomości, aby odbiornik może sprawdzić błędy.

1
XerXeX 19 styczeń 2020, 10:38