| @@ -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) | ||||