CRC(Cyclic Redundancy Check / 巡回冗長符号)は、自前でパケットを作るなら必須の項目です。
これがないと、ダメパケットも受け取ってデータがゴミだらけになったりします。
非力な軽量無線やシリアル線直付けな構成なんかだと、特に。
実際のところ
ただ一々仕様みて実装するのは
Arduino用の超速CRCチェッカーがありました
……いままで泥臭く自力で作っていた僕は一体……??
使い方は、こんな感じ。
/* FastCRC-Example (c) Frank Boesing 2014 */ #include <FastCRC.h> FastCRC32 CRC32; uint8_t buf[9] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}; void setup() { delay(1500); Serial.begin(115200); Serial.println("CRC Example"); Serial.println(); Serial.print("CRC32 of \""); for (unsigned int i = 0; i < sizeof(buf); i++) { Serial.print((char) buf[i]); } Serial.print("\" is: 0x"); Serial.println( CRC32.crc32(buf, sizeof(buf)), HEX ); }