mirror of
https://github.com/Genaker/LoraSA.git
synced 2026-03-28 17:42:59 +01:00
Fixup CRC16 to detect missing sequences of zeros
This commit is contained in:
@@ -50,6 +50,7 @@ def parse_line(line):
|
||||
|
||||
POLY = 0x1021
|
||||
def crc16(s, c):
|
||||
c = c ^ 0xffff
|
||||
for ch in s:
|
||||
c = c ^ (ord(ch) << 8)
|
||||
for i in range(8):
|
||||
@@ -58,7 +59,7 @@ def crc16(s, c):
|
||||
else:
|
||||
c = (c << 1) & 0xffff
|
||||
|
||||
return c
|
||||
return c ^ 0xffff
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(formatter_class=RawTextHelpFormatter, description='''\
|
||||
|
||||
@@ -123,6 +123,7 @@ String _wrap_str(String);
|
||||
#define POLY 0x1021
|
||||
uint16_t crc16(String v, uint16_t c)
|
||||
{
|
||||
c ^= 0xffff;
|
||||
for (int i = 0; i < v.length(); i++)
|
||||
{
|
||||
uint16_t ch = v.charAt(i);
|
||||
@@ -140,7 +141,7 @@ uint16_t crc16(String v, uint16_t c)
|
||||
}
|
||||
}
|
||||
|
||||
return c;
|
||||
return c ^ 0xffff;
|
||||
}
|
||||
|
||||
void ReadlineComms::_onReceive()
|
||||
|
||||
@@ -13,6 +13,7 @@ typedef struct {
|
||||
|
||||
#define POLY 0x1021
|
||||
uint16_t crc16(char *p, char *end, uint16_t c) {
|
||||
c ^= 0xffff;
|
||||
if (end == NULL) {
|
||||
end = strchr(p, 0);
|
||||
}
|
||||
@@ -29,7 +30,7 @@ uint16_t crc16(char *p, char *end, uint16_t c) {
|
||||
}
|
||||
}
|
||||
|
||||
return c;
|
||||
return c ^ 0xffff;
|
||||
}
|
||||
|
||||
#define BUFSIZE 102400
|
||||
|
||||
Reference in New Issue
Block a user