mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-04-25 03:45:23 +00:00
CRC and Pow board profile
This commit is contained in:
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
uint16_t crc16(const uint8_t* p, int len);
|
uint16_t crc16(const uint8_t* p, int len);
|
||||||
uint16_t crc16_x25(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
|
#endif
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ uint16_t crc16 (const uint8_t *p, int len) {
|
|||||||
uint16_t crc = 0;
|
uint16_t crc = 0;
|
||||||
|
|
||||||
while (len--) {
|
while (len--) {
|
||||||
int i;
|
uint8_t i;
|
||||||
crc ^= *p++;
|
crc ^= *p++;
|
||||||
for (i = 0 ; i < 8 ; ++i) {
|
for (i = 0 ; i < 8 ; ++i) {
|
||||||
if (crc & 1)
|
if (crc & 1)
|
||||||
@@ -32,4 +32,22 @@ uint16_t crc16 (const uint8_t *p, int len) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return crc;
|
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.flush();
|
||||||
Serial.end();
|
Serial.end();
|
||||||
config.getMeterConfig(meterConfig);
|
config.getMeterConfig(meterConfig);
|
||||||
|
switch(sysConfig.boardType) {
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
meterConfig.rxPin = 16;
|
||||||
|
meterConfig.txPin = 9;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if(meterConfig.rxPin == 3) {
|
if(meterConfig.rxPin == 3) {
|
||||||
shared = true;
|
shared = true;
|
||||||
#if defined(ESP8266)
|
#if defined(ESP8266)
|
||||||
|
|||||||
Reference in New Issue
Block a user