Skip to content
Snippets Groups Projects
Commit 446da13d authored by rahix's avatar rahix
Browse files

Merge 'Autodetect Python crc16 implementation'

See merge request !298
parents cef43dde 4d3ca449
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
try:
import crc16 import crc16
crcfun = crc16.crc16xmodem
except ImportError:
try:
import crcmod
crcfun = crcmod.predefined.mkCrcFun("xmodem")
except ImportError:
try:
import crcelk
crcfun = crcelk.CRC_XMODEM.calc_bytes
except ImportError:
raise Exception(
"Could not find a CRC implementation. Tried: crc16, crcmod, crcelk."
)
def main(): def main():
data = open(sys.argv[1], 'rb').read() data = open(sys.argv[1], "rb").read()
crc = crc16.crc16xmodem(data) crc = crcfun(data)
# print(crc) # print(crc)
padded = data + bytes([crc >> 8, crc & 0xFF]) padded = data + bytes([crc >> 8, crc & 0xFF])
crc = crc16.crc16xmodem(padded) crc = crcfun(padded)
# print(crc) # print(crc)
open(sys.argv[1], 'wb').write(padded) open(sys.argv[1], "wb").write(padded)
if __name__ == "__main__": if __name__ == "__main__":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment