|
@@ -14,28 +14,36 @@ def signal_handler(signal, frame): |
|
|
running = False |
|
|
running = False |
|
|
|
|
|
|
|
|
def handle_open(sender, args): |
|
|
def handle_open(sender, args): |
|
|
print 'opened', args |
|
|
|
|
|
|
|
|
print 'O', args |
|
|
|
|
|
|
|
|
def handle_close(sender, args): |
|
|
def handle_close(sender, args): |
|
|
print 'closed', args |
|
|
|
|
|
|
|
|
print 'C', args |
|
|
|
|
|
|
|
|
def handle_read(sender, args): |
|
|
def handle_read(sender, args): |
|
|
print 'read', args |
|
|
|
|
|
|
|
|
print '<', args |
|
|
|
|
|
|
|
|
def handle_write(sender, args): |
|
|
def handle_write(sender, args): |
|
|
print 'write', args |
|
|
|
|
|
|
|
|
print '>', args |
|
|
|
|
|
|
|
|
def handle_attached(sender, args): |
|
|
def handle_attached(sender, args): |
|
|
print 'attached', args |
|
|
|
|
|
|
|
|
print '+', args |
|
|
|
|
|
|
|
|
def handle_detached(sender, args): |
|
|
def handle_detached(sender, args): |
|
|
print 'detached', args |
|
|
|
|
|
|
|
|
print '-', args |
|
|
|
|
|
|
|
|
def handle_firmware(stage): |
|
|
def handle_firmware(stage): |
|
|
if stage == pyad2usb.ad2usb.util.Firmware.STAGE_BOOT: |
|
|
|
|
|
print 'Rebooting device..' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if stage == pyad2usb.ad2usb.util.Firmware.STAGE_START: |
|
|
|
|
|
handle_firmware.wait_tick = 0 |
|
|
handle_firmware.upload_tick = 0 |
|
|
handle_firmware.upload_tick = 0 |
|
|
|
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_WAITING: |
|
|
|
|
|
if handle_firmware.wait_tick == 0: |
|
|
|
|
|
sys.stdout.write('Waiting for device.') |
|
|
|
|
|
handle_firmware.wait_tick += 1 |
|
|
|
|
|
|
|
|
|
|
|
sys.stdout.write('.') |
|
|
|
|
|
sys.stdout.flush() |
|
|
|
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_BOOT: |
|
|
|
|
|
print "\r\nRebooting device.." |
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_LOAD: |
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_LOAD: |
|
|
print 'Waiting for boot loader..' |
|
|
print 'Waiting for boot loader..' |
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_UPLOADING: |
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_UPLOADING: |
|
@@ -50,48 +58,120 @@ def handle_firmware(stage): |
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_DONE: |
|
|
elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_DONE: |
|
|
print "\r\nDone!" |
|
|
print "\r\nDone!" |
|
|
|
|
|
|
|
|
signal.signal(signal.SIGINT, signal_handler) |
|
|
|
|
|
|
|
|
def upload_usb(): |
|
|
|
|
|
dev = pyad2usb.ad2usb.devices.USBDevice() |
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
#overseer = pyad2usb.ad2usb.Overseer(attached_event=handle_attached, detached_event=handle_detached) |
|
|
|
|
|
#overseer.start() |
|
|
|
|
|
|
|
|
dev.open() |
|
|
|
|
|
pyad2usb.ad2usb.util.Firmware.upload(dev, 'tmp/ademcoemu_V2_2a_6.hex', handle_firmware) |
|
|
|
|
|
dev.close() |
|
|
|
|
|
|
|
|
|
|
|
def upload_serial(): |
|
|
|
|
|
dev = pyad2usb.ad2usb.devices.SerialDevice(interface='/dev/ttyUSB0') |
|
|
|
|
|
|
|
|
|
|
|
dev.open() |
|
|
|
|
|
pyad2usb.ad2usb.util.Firmware.upload(dev, 'tmp/ademcoemu_V2_2a_6.hex', handle_firmware) |
|
|
|
|
|
dev.close() |
|
|
|
|
|
|
|
|
#print pyad2usb.ad2usb.devices.SerialDevice.find_all() |
|
|
|
|
|
|
|
|
def upload_usb_serial(): |
|
|
|
|
|
dev = pyad2usb.ad2usb.devices.SerialDevice(interface='/dev/ttyUSB5') |
|
|
|
|
|
|
|
|
#a2u = overseer.get_device() |
|
|
|
|
|
|
|
|
dev.open(baudrate=115200) |
|
|
|
|
|
pyad2usb.ad2usb.util.Firmware.upload(dev, 'tmp/ademcoemu_V2_2a_6.hex', handle_firmware) |
|
|
|
|
|
dev.close() |
|
|
|
|
|
|
|
|
|
|
|
def test_usb(): |
|
|
|
|
|
dev = pyad2usb.ad2usb.devices.USBDevice() |
|
|
|
|
|
|
|
|
#a2u = pyad2usb.ad2usb.Overseer.create() |
|
|
|
|
|
|
|
|
a2u = pyad2usb.ad2usb.AD2USB(dev) |
|
|
|
|
|
a2u.on_open += handle_open |
|
|
|
|
|
a2u.on_close += handle_close |
|
|
|
|
|
a2u.on_read += handle_read |
|
|
|
|
|
a2u.on_write += handle_write |
|
|
|
|
|
|
|
|
|
|
|
a2u.open() |
|
|
|
|
|
|
|
|
|
|
|
while running: |
|
|
|
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
|
|
|
a2u.close() |
|
|
|
|
|
|
|
|
|
|
|
def test_serial(): |
|
|
dev = pyad2usb.ad2usb.devices.SerialDevice(interface='/dev/ttyUSB0') |
|
|
dev = pyad2usb.ad2usb.devices.SerialDevice(interface='/dev/ttyUSB0') |
|
|
#dev = pyad2usb.ad2usb.devices.USBDevice()#serial='A101A429', description='FT232R USB UART') |
|
|
|
|
|
|
|
|
|
|
|
#a2u = pyad2usb.ad2usb.AD2USB(dev) |
|
|
|
|
|
#a2u.on_open += handle_open |
|
|
|
|
|
#a2u.on_close += handle_close |
|
|
|
|
|
#a2u.on_read += handle_read |
|
|
|
|
|
#a2u.on_write += handle_write |
|
|
|
|
|
|
|
|
a2u = pyad2usb.ad2usb.AD2USB(dev) |
|
|
|
|
|
a2u.on_open += handle_open |
|
|
|
|
|
a2u.on_close += handle_close |
|
|
|
|
|
a2u.on_read += handle_read |
|
|
|
|
|
a2u.on_write += handle_write |
|
|
|
|
|
|
|
|
dev.on_open += handle_open |
|
|
|
|
|
dev.on_close += handle_close |
|
|
|
|
|
#dev.on_read += handle_read |
|
|
|
|
|
#dev.on_write += handle_write |
|
|
|
|
|
|
|
|
a2u.open() |
|
|
|
|
|
|
|
|
|
|
|
while running: |
|
|
|
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
#a2u.open() |
|
|
|
|
|
#a2u.open(baudrate=19200, interface='/dev/ttyUSB0') |
|
|
|
|
|
|
|
|
a2u.close() |
|
|
|
|
|
|
|
|
#dev.open(baudrate=115200, interface='/dev/ttyUSB5') |
|
|
|
|
|
#dev.open(baudrate=19200, interface='/dev/ttyUSB0') |
|
|
|
|
|
dev.open() |
|
|
|
|
|
|
|
|
def test_usb_serial(): |
|
|
|
|
|
dev = pyad2usb.ad2usb.devices.SerialDevice(interface='/dev/ttyUSB5') |
|
|
|
|
|
|
|
|
pyad2usb.ad2usb.util.Firmware.upload(dev, 'tmp/ademcoemu_V2_2a_6.hex', handle_firmware) |
|
|
|
|
|
|
|
|
a2u = pyad2usb.ad2usb.AD2USB(dev) |
|
|
|
|
|
a2u.on_open += handle_open |
|
|
|
|
|
a2u.on_close += handle_close |
|
|
|
|
|
a2u.on_read += handle_read |
|
|
|
|
|
a2u.on_write += handle_write |
|
|
|
|
|
|
|
|
|
|
|
a2u.open(baudrate=115200) |
|
|
|
|
|
|
|
|
while running: |
|
|
while running: |
|
|
time.sleep(0.1) |
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
#a2u.close() |
|
|
|
|
|
dev.close() |
|
|
|
|
|
#overseer.close() |
|
|
|
|
|
|
|
|
a2u.close() |
|
|
|
|
|
|
|
|
|
|
|
def test_factory(): |
|
|
|
|
|
a2u = pyad2usb.ad2usb.Overseer.create() |
|
|
|
|
|
|
|
|
|
|
|
a2u.on_open += handle_open |
|
|
|
|
|
a2u.on_close += handle_close |
|
|
|
|
|
a2u.on_read += handle_read |
|
|
|
|
|
a2u.on_write += handle_write |
|
|
|
|
|
|
|
|
|
|
|
a2u.open() |
|
|
|
|
|
|
|
|
|
|
|
while running: |
|
|
|
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
|
|
|
a2u.close() |
|
|
|
|
|
|
|
|
|
|
|
def test_factory_watcher(): |
|
|
|
|
|
overseer = pyad2usb.ad2usb.Overseer(attached_event=handle_attached, detached_event=handle_detached) |
|
|
|
|
|
|
|
|
|
|
|
a2u = overseer.get_device() |
|
|
|
|
|
|
|
|
|
|
|
a2u.on_open += handle_open |
|
|
|
|
|
a2u.on_close += handle_close |
|
|
|
|
|
a2u.on_read += handle_read |
|
|
|
|
|
a2u.on_write += handle_write |
|
|
|
|
|
|
|
|
|
|
|
a2u.open() |
|
|
|
|
|
|
|
|
|
|
|
while running: |
|
|
|
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
|
|
|
a2u.close() |
|
|
|
|
|
overseer.close() |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
signal.signal(signal.SIGINT, signal_handler) |
|
|
|
|
|
|
|
|
|
|
|
#test_serial() |
|
|
|
|
|
#upload_serial() |
|
|
|
|
|
|
|
|
|
|
|
test_usb() |
|
|
|
|
|
#test_usb_serial() |
|
|
|
|
|
#test_factory() |
|
|
|
|
|
#test_factory_watcher() |
|
|
|
|
|
#upload_usb() |
|
|
|
|
|
#upload_usb_serial() |
|
|
|
|
|
|
|
|
except Exception, err: |
|
|
except Exception, err: |
|
|
traceback.print_exc(err) |
|
|
traceback.print_exc(err) |