Witam
Mam od kilku dni pewien problem. Robie komunikację z pewnym urządzeniem które wysyła do mnie informacje o jego stanie (kilka przykładów):
"\n040 3 210.3 0.02 5 236.2 0.56 5 27 8 ô 2002IN\r"
"\n040 3 210.3 0.00 0 235.8 0.56 0 27 8 í 2002IN\r"
"\n040 3 124.9 0.73 91 237.9 0.46 87 31 286 _ 2002IN\r"
"\n040 3 124.9 0.69 86 237.7 0.45 83 31 286 a 2002IN\r"
"\n*040 3 124.9 0.62 78 238.5 0.44 75 31 286 Z 2002IN\r"
Suma kontrolna dla kolejnych ramek to ô, í, _, a - czyli przedostatni parametr. W dokumentacji wyczytałem że obliczanie sumy kontrolnej rozpoczyna się od * a następnie kończy na ostatnim pustym znaku przed sumą kontrolną.
z dokumentacji mam rónież informację:
CRC16 = ~Calculated_CRC16 & 0xffff;
wzór obliczenia “0x8408” (HEX) - x16 + x12 + x5 + 1
jak to zrozumieć?
W dokumentacji był również link do strony na której można sprawdzić obliczanie CRC ale jakoś nie mogę dojść jakiego dokładnie algorytmu używają
http://zorc.breitbandkatze.de/crc.html
sprawdzałem następujące sumy kontrolne:
Modbus, XModem, crc_ccit prosta suma kontrolna (suma wszystkich bajtów) innych pomysłów już nie mam. myślałem, że strona rozwiąże moje wątpliwości ale nadal nic. Spotkał się ktoś z was już z taką dziwną sumą kontrolną? Wie ktoś może jak to policzyć