mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-14 15:54:47 +00:00
CRC and Pow board profile
This commit is contained in:
parent
bdba6a0254
commit
dfca5e37dc
@ -12,5 +12,6 @@
|
||||
|
||||
uint16_t crc16(const uint8_t* p, int len);
|
||||
uint16_t crc16_x25(const uint8_t* p, int len);
|
||||
uint16_t crc16_ccit(const uint8_t* p, int len);
|
||||
|
||||
#endif
|
||||
|
||||
@ -21,7 +21,7 @@ uint16_t crc16 (const uint8_t *p, int len) {
|
||||
uint16_t crc = 0;
|
||||
|
||||
while (len--) {
|
||||
int i;
|
||||
uint8_t i;
|
||||
crc ^= *p++;
|
||||
for (i = 0 ; i < 8 ; ++i) {
|
||||
if (crc & 1)
|
||||
@ -32,4 +32,22 @@ uint16_t crc16 (const uint8_t *p, int len) {
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
}
|
||||
|
||||
uint16_t crc16_ccit(const uint8_t *p, int len)
|
||||
{
|
||||
int crc;
|
||||
char i;
|
||||
crc = 0;
|
||||
while (len--) {
|
||||
uint8_t i;
|
||||
crc = crc ^ (uint8_t) *p++ << 8;
|
||||
for (i = 0 ; i < 8 ; ++i) {
|
||||
if (crc & 0x8000)
|
||||
crc = crc << 1 ^ 0x1021;
|
||||
else
|
||||
crc = crc << 1;
|
||||
}
|
||||
}
|
||||
return (crc);
|
||||
}
|
||||
|
||||
@ -346,6 +346,15 @@ void setup() {
|
||||
Serial.flush();
|
||||
Serial.end();
|
||||
config.getMeterConfig(meterConfig);
|
||||
switch(sysConfig.boardType) {
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
meterConfig.rxPin = 16;
|
||||
meterConfig.txPin = 9;
|
||||
break;
|
||||
}
|
||||
|
||||
if(meterConfig.rxPin == 3) {
|
||||
shared = true;
|
||||
#if defined(ESP8266)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user