Script to make keys.txt into fix.GNE file
This commit is contained in:
parent
88992639c6
commit
1d10fa2019
57
subghz/samples/genie-girud-1t/create-v2.py
Normal file
57
subghz/samples/genie-girud-1t/create-v2.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
def int_to_bytes(x, r):
|
||||||
|
return [(x >> i*8) & 0xff for i in range(r-1, -1, -1)]
|
||||||
|
|
||||||
|
def main():
|
||||||
|
major = 2
|
||||||
|
minor = 4
|
||||||
|
|
||||||
|
counter = 0
|
||||||
|
counter_max = 0
|
||||||
|
|
||||||
|
with open('keys.txt', 'r') as fkeys:
|
||||||
|
|
||||||
|
while True:
|
||||||
|
line = fkeys.readline()
|
||||||
|
if not line:
|
||||||
|
break
|
||||||
|
split = line.split(sep=",")
|
||||||
|
if (len(split) == 2):
|
||||||
|
line = split[1]
|
||||||
|
line = line.strip(" \n\r")
|
||||||
|
high = line[0:8]
|
||||||
|
low = line[8:16]
|
||||||
|
high_int = int(high, 16)
|
||||||
|
low_int = int(low, 16)
|
||||||
|
|
||||||
|
print(f"line: {line} {high} {low}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(f'{low}.gne', 'rb') as fin:
|
||||||
|
fin.close()
|
||||||
|
except:
|
||||||
|
with open(f'{low}.gne', 'wb') as fout:
|
||||||
|
fout.write(bytes([0x47, 0x2A]))
|
||||||
|
fout.write(bytes([major, minor]))
|
||||||
|
fout.write(bytes(int_to_bytes(low_int, 4)))
|
||||||
|
fout.write(bytes([0,0,0,0,0,0,0,0]))
|
||||||
|
for i in range(65536):
|
||||||
|
fout.write(bytes([0,0,0,0]))
|
||||||
|
fout.flush()
|
||||||
|
fout.close()
|
||||||
|
print ('created file')
|
||||||
|
pass
|
||||||
|
|
||||||
|
with open(f'{low}.gne', 'r+b') as fout:
|
||||||
|
fout.seek(16+((counter&0xFFFF)*4))
|
||||||
|
fout.write(bytes(int_to_bytes(high_int, 4)))
|
||||||
|
counter = counter + 1
|
||||||
|
fout.seek(10)
|
||||||
|
counter_max = max(counter&0xFFFF, counter_max)
|
||||||
|
fout.write(bytes(int_to_bytes(counter_max,2)))
|
||||||
|
fout.seek(16+(65536*4))
|
||||||
|
fout.flush()
|
||||||
|
fout.close()
|
||||||
|
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user