2 # -*- coding: utf-8 -*-
4 """Python example program.
6 Complete program to demonstrate the usage
7 of the swig generated python wrapper
9 You need to build and install the wrapper first"""
17 print ('version: %s\n' % ftdi.__version__)
22 print('new failed: %d' % ret)
25 # try to list ftdi devices 0x6010 or 0x6001
26 ret, devlist = ftdi.usb_find_all(ftdic, 0x0403, 0x6010)
28 ret, devlist = ftdi.usb_find_all(ftdic, 0x0403, 0x6001)
31 print('ftdi_usb_find_all failed: %d (%s)' %
32 (ret, ftdi.get_error_string(ftdic)))
34 print('devices: %d' % ret)
37 while(curnode != None):
38 ret, manufacturer, description, serial = ftdi.usb_get_strings(
41 print('ftdi_usb_get_strings failed: %d (%s)' %
42 (ret, ftdi.get_error_string(ftdic)))
44 print('#%d: manufacturer="%s" description="%s" serial="%s"\n' %
45 (i, manufacturer, description, serial))
46 curnode = curnode.next
50 ret = ftdi.usb_open(ftdic, 0x0403, 0x6001)
52 print('unable to open ftdi device: %d (%s)' %
53 (ret, ftdi.get_error_string(ftdic)))
58 ret = ftdi.set_bitmode(ftdic, 0xff, ftdi.BITMODE_BITBANG)
60 print('Cannot enable bitbang')
62 print('turning everything on')
63 ftdi.write_data(ftdic, chr(0xff), 1)
65 print('turning everything off\n')
66 ftdi.write_data(ftdic, chr(0x00), 1)
70 print('enabling bit #%d (0x%02x)' % (i, val))
71 ftdi.write_data(ftdic, chr(val), 1)
73 ftdi.disable_bitbang(ftdic)
78 ret, pins = ftdi.read_pins(ftdic)
80 if sys.version_info[0] < 3: # python 2
84 print('pins: 0x%x' % pins)
88 ret, chipid = ftdi.read_chipid(ftdic)
90 print('chip id: %x\n' % chipid)
95 ret, eeprom_val = ftdi.read_eeprom_location(ftdic, eeprom_addr)
97 print('eeprom @ %d: 0x%04x\n' % (eeprom_addr, eeprom_val))
100 ret = ftdi.read_eeprom(ftdic)
102 ret, eeprom = ftdi.get_eeprom_buf(ftdic, size)
104 for i in range(size):
106 if sys.version_info[0] < 3: # python 2
108 sys.stdout.write('%02x ' % octet)
114 ret = ftdi.usb_close(ftdic)
116 print('unable to close ftdi device: %d (%s)' %
117 (ret, ftdi.get_error_string(ftdic)))
120 print ('device closed')