Commit 446da13d authored by Rahix's avatar Rahix
Browse files

Merge 'Autodetect Python crc16 implementation'

See merge request card10/firmware!298
parents cef43dde 4d3ca449
Pipeline #3992 passed with stages
in 2 minutes and 15 seconds
#!/usr/bin/env python3
import sys
import crc16
import crc16
crcfun = crc16.crc16xmodem
except ImportError:
import crcmod
crcfun = crcmod.predefined.mkCrcFun("xmodem")
except ImportError:
import crcelk
crcfun = crcelk.CRC_XMODEM.calc_bytes
except ImportError:
raise Exception(
"Could not find a CRC implementation. Tried: crc16, crcmod, crcelk."
def main():
data = open(sys.argv[1], 'rb').read()
crc = crc16.crc16xmodem(data)
data = open(sys.argv[1], "rb").read()
crc = crcfun(data)
# print(crc)
padded = data + bytes([crc >> 8, crc & 0xFF])
crc = crc16.crc16xmodem(padded)
crc = crcfun(padded)
# print(crc)
open(sys.argv[1], 'wb').write(padded)
open(sys.argv[1], "wb").write(padded)
if __name__ == "__main__":
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment