MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / Crc16

Class Crc16

erpc_python/erpc/crc16.py:9–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7# SPDX-License-Identifier: BSD-3-Clause
8
9class Crc16(object):
10 POLY = 0x1021
11
12 def __init__(self, crcStart=0xEF4A):
13 self._crcStart = crcStart
14 self._table = [self.compute_table(i) for i in range(256)]
15
16 def compute_table(self, i):
17 crc = 0
18 i <<= 8
19 for b in range(8):
20 temp = crc ^ i
21 crc <<= 1
22 if temp & 0x8000:
23 crc ^= self.POLY
24 i <<= 1
25 return crc
26
27 def computeCRC16(self, data):
28 if isinstance(data, str):
29 data = bytearray(data)
30 crc = self._crcStart
31 for c in data:
32 crc = ((crc << 8) ^ self._table[((crc >> 8) ^ c) & 0xff]) & 0xffff
33 return crc

Callers 1

openFileMethod · 0.50

Calls

no outgoing calls

Tested by

no test coverage detected