# Send binary dump to badge

from serial import Serial
from sys import argv

# Filename is required as arg1. 
FI = open(argv[1]+".hex","rb")
Buf = FI.read()  #( worst case 25K buffer ... not a problem)
FI.close()

if Buf[0:6]!=b'\x00\xff\x00\xff\xa5\xc3' :
  print(F"Not valid header {Buf[0:6].hex}")
  exit()
Len = int(Buf[6])+int(Buf[7])*256
print(F"Length x{Buf[6:8].hex()} is {Len} codes")
if len(Buf)!=6 + 2 + Len*2 + 2 : # magix, length, code, checksum
  print(F"  but filelength is {len(Buf)}")
  exit()

#open badge
Badge = Serial('COM6',9600,timeout=1)
print(" - Start LOAD on badge, press ENTER on keyboard -")
Dummy = input()
sent = Badge.write(Buf)
print(F"Sent {sent} bytes")
Badge.close()
