mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 09:28:40 +02:00
Initial commit
This commit is contained in:
+121
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""Python example program.
|
||||
|
||||
Complete program to demonstrate the usage
|
||||
of the swig generated python wrapper
|
||||
|
||||
You need to build and install the wrapper first"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import ftdi1 as ftdi
|
||||
import time
|
||||
|
||||
# version
|
||||
print ('version: %s\n' % ftdi.__version__)
|
||||
|
||||
# initialize
|
||||
ftdic = ftdi.new()
|
||||
if ftdic == 0:
|
||||
print('new failed: %d' % ret)
|
||||
os._exit(1)
|
||||
|
||||
# try to list ftdi devices 0x6010 or 0x6001
|
||||
ret, devlist = ftdi.usb_find_all(ftdic, 0x0403, 0x6010)
|
||||
if ret <= 0:
|
||||
ret, devlist = ftdi.usb_find_all(ftdic, 0x0403, 0x6001)
|
||||
|
||||
if ret < 0:
|
||||
print('ftdi_usb_find_all failed: %d (%s)' %
|
||||
(ret, ftdi.get_error_string(ftdic)))
|
||||
os._exit(1)
|
||||
print('devices: %d' % ret)
|
||||
curnode = devlist
|
||||
i = 0
|
||||
while(curnode != None):
|
||||
ret, manufacturer, description, serial = ftdi.usb_get_strings(
|
||||
ftdic, curnode.dev)
|
||||
if ret < 0:
|
||||
print('ftdi_usb_get_strings failed: %d (%s)' %
|
||||
(ret, ftdi.get_error_string(ftdic)))
|
||||
os._exit(1)
|
||||
print('#%d: manufacturer="%s" description="%s" serial="%s"\n' %
|
||||
(i, manufacturer, description, serial))
|
||||
curnode = curnode.next
|
||||
i += 1
|
||||
|
||||
# open usb
|
||||
ret = ftdi.usb_open(ftdic, 0x0403, 0x6001)
|
||||
if ret < 0:
|
||||
print('unable to open ftdi device: %d (%s)' %
|
||||
(ret, ftdi.get_error_string(ftdic)))
|
||||
os._exit(1)
|
||||
|
||||
|
||||
# bitbang
|
||||
ret = ftdi.set_bitmode(ftdic, 0xff, ftdi.BITMODE_BITBANG)
|
||||
if ret < 0:
|
||||
print('Cannot enable bitbang')
|
||||
os._exit(1)
|
||||
print('turning everything on')
|
||||
ftdi.write_data(ftdic, chr(0xff), 1)
|
||||
time.sleep(1)
|
||||
print('turning everything off\n')
|
||||
ftdi.write_data(ftdic, chr(0x00), 1)
|
||||
time.sleep(1)
|
||||
for i in range(8):
|
||||
val = 2 ** i
|
||||
print('enabling bit #%d (0x%02x)' % (i, val))
|
||||
ftdi.write_data(ftdic, chr(val), 1)
|
||||
time.sleep(1)
|
||||
ftdi.disable_bitbang(ftdic)
|
||||
print('')
|
||||
|
||||
|
||||
# read pins
|
||||
ret, pins = ftdi.read_pins(ftdic)
|
||||
if (ret == 0):
|
||||
if sys.version_info[0] < 3: # python 2
|
||||
pins = ord(pins)
|
||||
else:
|
||||
pins = pins[0]
|
||||
print('pins: 0x%x' % pins)
|
||||
|
||||
|
||||
# read chip id
|
||||
ret, chipid = ftdi.read_chipid(ftdic)
|
||||
if (ret == 0):
|
||||
print('chip id: %x\n' % chipid)
|
||||
|
||||
|
||||
# read eeprom
|
||||
eeprom_addr = 1
|
||||
ret, eeprom_val = ftdi.read_eeprom_location(ftdic, eeprom_addr)
|
||||
if (ret == 0):
|
||||
print('eeprom @ %d: 0x%04x\n' % (eeprom_addr, eeprom_val))
|
||||
|
||||
print('eeprom:')
|
||||
ret = ftdi.read_eeprom(ftdic)
|
||||
size = 128
|
||||
ret, eeprom = ftdi.get_eeprom_buf(ftdic, size)
|
||||
if (ret == 0):
|
||||
for i in range(size):
|
||||
octet = eeprom[i]
|
||||
if sys.version_info[0] < 3: # python 2
|
||||
octet = ord(octet)
|
||||
sys.stdout.write('%02x ' % octet)
|
||||
if (i % 8 == 7):
|
||||
print('')
|
||||
print('')
|
||||
|
||||
# close usb
|
||||
ret = ftdi.usb_close(ftdic)
|
||||
if ret < 0:
|
||||
print('unable to close ftdi device: %d (%s)' %
|
||||
(ret, ftdi.get_error_string(ftdic)))
|
||||
os._exit(1)
|
||||
|
||||
print ('device closed')
|
||||
ftdi.free(ftdic)
|
||||
Reference in New Issue
Block a user