diff options
Diffstat (limited to 'downloader/downloader.py')
-rwxr-xr-x | downloader/downloader.py | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/downloader/downloader.py b/downloader/downloader.py index c0ce34f..653bd72 100755 --- a/downloader/downloader.py +++ b/downloader/downloader.py @@ -108,11 +108,9 @@ def exec_command(dev, cmd, param, answer): 5: "address invalid", 6: "address prohibited", 7: "value out of bounds" } - dev.flushInput() - dev.flushOutput() - - cstr = bytearray(struct.pack('<BB', cmd, len(param)+3) + param) + cstr = bytearray(struct.pack('<BB', cmd, 0) + param) cstr.extend(struct.pack("<B", calc_csum(cstr))) + cstr[1] = len(cstr) dev.write(cstr) astr = bytearray() @@ -158,9 +156,9 @@ def exec_command(dev, cmd, param, answer): ### Commands def identify(dev): - data = exec_command(dev, 1, '', '<BBHHHBHBH') - id = { 'ver_min': data[0], 'ver_maj': data[1], 'userid': data[2], 'devid': data[3], - 'fs': data[4], 'fss': data[5], 'es': data[6], 'mess': data[7], 'supported': data[8] } + data = exec_command(dev, 1, '', '<BB3sHBBH') + id = { 'ver_min': data[0], 'ver_maj': data[1], 'name': data[2], 'devid': data[3], + 'fss': data[4], 'mess': data[5], 'supported': data[6] } if id['ver_maj'] != VERSION_MAJ: print "incompatible protocol version, expected: %d, got: %d" % (VERSION_MAJ, id['ver_maj']) @@ -169,8 +167,7 @@ def identify(dev): print "FSS value is 0 " sys.exit(4) - print "connected with Bootloader '%04X' Version %d.%d, (ID=%04X, %d bytes Flash, FSS=%d, %d bytes EEPROM, MESS=%d)" % \ - (id['userid'], id['ver_maj'], id['ver_min'], id['devid'], id['fs'], id['fss'], id['es'], id['mess']) + print "connected with Bootloader '%s' Version %d.%d, (ID=%04X, FSS=%d, MESS=%d)" % (id['name'], id['ver_maj'], id['ver_min'], id['devid'], id['fss'], id['mess']) return id def boot(dev): |