|
from ctypes import *
|
|
|
|
#http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf
|
|
#http://docs.python.org/2/library/ctypes.html
|
|
|
|
|
|
FT_LIST_NUMBER_ONLY=c_uint(0x80000000)
|
|
|
|
#enum {
|
|
FT_OK = 0
|
|
# FT_INVALID_HANDLE,
|
|
# FT_DEVICE_NOT_FOUND,
|
|
# FT_DEVICE_NOT_OPENED,
|
|
# FT_IO_ERROR,
|
|
# FT_INSUFFICIENT_RESOURCES,
|
|
# FT_INVALID_PARAMETER,
|
|
# FT_INVALID_BAUD_RATE,
|
|
|
|
# FT_DEVICE_NOT_OPENED_FOR_ERASE,
|
|
# FT_DEVICE_NOT_OPENED_FOR_WRITE,
|
|
# FT_FAILED_TO_WRITE_DEVICE,
|
|
# FT_EEPROM_READ_FAILED,
|
|
# FT_EEPROM_WRITE_FAILED,
|
|
# FT_EEPROM_ERASE_FAILED,
|
|
# FT_EEPROM_NOT_PRESENT,
|
|
# FT_EEPROM_NOT_PROGRAMMED,
|
|
# FT_INVALID_ARGS,
|
|
# FT_NOT_SUPPORTED,
|
|
# FT_OTHER_ERROR,
|
|
# FT_DEVICE_LIST_NOT_READY,
|
|
# };
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
ftdll=windll.LoadLibrary("Driver FTDI\\i386\\ftd2xx.dll")
|
|
print(ftdll)
|
|
numberofdev=c_uint()
|
|
dummy=c_uint()
|
|
handle=c_uint()
|
|
buf="0x101010101010101010101010101010101010"
|
|
ftdll.FT_ListDevices(byref(numberofdev),byref(dummy),FT_LIST_NUMBER_ONLY)
|
|
print(numberofdev)
|
|
print handle
|
|
if numberofdev == 0:
|
|
print "No device available"
|
|
else:
|
|
if ftdll.FT_Open(0,byref(handle)) == FT_OK:
|
|
print handle
|
|
|
|
if ftdll.FT_Write(handle, buf, len(buf), byref(dummy)) == FT_OK:
|
|
print dummy,"bytes written"
|
|
else:
|
|
print "Can't write to device"
|
|
|
|
|
|
ftdll.FT_Close(handle)
|
|
else:
|
|
print "Can't open device"
|