| @@ -14,28 +14,36 @@ def signal_handler(signal, frame): | |||
| running = False | |||
| def handle_open(sender, args): | |||
| print 'opened', args | |||
| print 'O', args | |||
| def handle_close(sender, args): | |||
| print 'closed', args | |||
| print 'C', args | |||
| def handle_read(sender, args): | |||
| print 'read', args | |||
| print '<', args | |||
| def handle_write(sender, args): | |||
| print 'write', args | |||
| print '>', args | |||
| def handle_attached(sender, args): | |||
| print 'attached', args | |||
| print '+', args | |||
| def handle_detached(sender, args): | |||
| print 'detached', args | |||
| print '-', args | |||
| 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 | |||
| 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: | |||
| print 'Waiting for boot loader..' | |||
| elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_UPLOADING: | |||
| @@ -50,48 +58,120 @@ def handle_firmware(stage): | |||
| elif stage == pyad2usb.ad2usb.util.Firmware.STAGE_DONE: | |||
| 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.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: | |||
| 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: | |||
| traceback.print_exc(err) | |||