Re: Температурен мониторинг GREYKO RB (NPBC)
Публикувано: чет дек 07, 2017 10:45 am
Намери вдъхновяващи идеи, практични решения и емоционални дискусии на теми, свързани с дома, строителството и направи си сам
https://forum.napravisam.bg/
Evgeniy написа:Колеги, ударете едно рамо за CRC-то, че при мен се получават малко странни неща. Има записи с последен байт по-малък от стойността на отместването 0x1C (28). Как ги обработвате, или да ги приема за грешки на интерфейса? Нещо не се получава алгоритъма при тях.Зависи как сравняваш получената чексума с последния байт.
AviRad написа:Пиши му на лично, предполагам ще ти отговори.Evgeniy написа:Колеги, ударете едно рамо за CRC-то, че при мен се получават малко странни неща. Има записи с последен байт по-малък от стойността на отместването 0x1C (28). Как ги обработвате, или да ги приема за грешки на интерфейса? Нещо не се получава алгоритъма при тях.Зависи как сравняваш получената чексума с последния байт.
Примерно за 5a5a1d16161934051c181e09090a0b0c0d0e0f603f48131415161718991a1b15, получената чексума от данните е 249 или 0xF9.
Последният байт е 0x15, от който след като се извади позицията 0x1C, се получава отрицателно число подобно на 0xFFFFFFF9 (за 32 битов int).
Следователно трябва да се направи едно & 0xFF за да се изчистят излишните старши байтове и ще се получи 0xF9, което да сравним със сметнатата чексума.
Добре че го откри това като възможен случай, защото и аз не го бях предвидил и периодично имаше тук таме по някой загубен пакет
Код: Избери всички
user@rasberrypi:~/scripts/caldera/npbc-monitor$ sudo python npbc_monitor_logger.py
[sudo] password for takezo:
communicating on port: /dev/ttyUSB0
exec: generalInformationCommand()
error communicating...: local variable 'responseData' referenced before assignment
exec: generalInformationCommand()
error communicating...: local variable 'responseData' referenced before assignment
exec: generalInformationCommand()
Код: Избери всички
[ 1851.264693] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
Bus 001 Device 007: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port