Use PacketCRC helper
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#include <CRC16.h>
|
||||
#include "PacketCRC.h"
|
||||
|
||||
#define LENGTH_17 (0x11)
|
||||
#define LENGTH_21 (0x15)
|
||||
@@ -15,7 +15,7 @@ uint8_t rollingCode2 = 0x82;
|
||||
|
||||
uint8_t buf[32];
|
||||
|
||||
CRC16 crc(0x755B, 0x0, 0xBA68, false, false);
|
||||
PacketCRC packetCRC;
|
||||
|
||||
void setPacketLength(uint8_t);
|
||||
void setConstants();
|
||||
@@ -140,26 +140,9 @@ void setProtocolVersion(uint8_t version) {
|
||||
}
|
||||
|
||||
void calculateCRC() { // must be called after the buffer has been filled
|
||||
crc.restart();
|
||||
uint8_t length = buf[0];
|
||||
switch(length) {
|
||||
case 0x11:
|
||||
crc.setXorOut(0xBA68);
|
||||
break;
|
||||
case 0x15:
|
||||
crc.setXorOut(0xE10C);
|
||||
break;
|
||||
case 0x19:
|
||||
crc.setXorOut(0x89A0);
|
||||
break;
|
||||
default:
|
||||
Serial.print("Unsupported length (");
|
||||
Serial.print(length);
|
||||
Serial.println("). Cannot calculate CRC");
|
||||
return;
|
||||
}
|
||||
crc.add(buf, length + 1);
|
||||
uint16_t result = crc.calc();
|
||||
uint8_t length = buf[1];
|
||||
uint16_t result = packetCRC.calculate(buf);
|
||||
|
||||
uint8_t checksum1 = (uint8_t)((result & 0xFF00) >> 8);
|
||||
uint8_t checksum2 = (uint8_t)(result & 0x00FF);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user