Am 13.07.2010 17:27, schrieb Thomas Jarosch: > Hello Flynn, > > On Saturday, 10. July 2010 17:06:35 Flynn Marquardt wrote: > >> I tried to read the chipid in python: >> >> import ftdi >> ftdic = ftdi.ftdi_context() >> ret = ftdi.ftdi_usb_open(ftdic, 0x0403, 0x6001) >> chipid = 0 >> ftdi.ftdi_read_chipid(ftdic, chipid) >> >> results in a TypeError: >> >> TypeError: in method 'ftdi_read_chipid', argument 2 of type 'unsigned >> int *' >> >> Without help from Swig it is not possible to create the correct object. >> >> Inserting in bindings/ftdi.i the line >> >> %pointer_functions(unsigned int, uintp); >> >> after %include "cpointer.i" helps (pointer_class could also be used). >> >> With a little modification in python: >> >> import ftdi >> ftdic = ftdi.ftdi_context() >> ret = ftdi.ftdi_usb_open(ftdic, 0x0403, 0x6001) >> chipid = ftdi.new_uintp() >> ftdi.ftdi_read_chipid(ftdic, chipid) >> hex(ftdi.uintp_value(chipid)) >> >> the correct chipid is printed. >> >> It seems (I'm not an expert in swig), that the *OUTPUT directives are >> not correct for >> ftdi_read_chipid, otherwise this patch woud not be needed. >> > Thanks for the info. Care to send a proper patch > as I'm not too familiar with swig? > > Cheers, > Thomas > Here it is, it's only a oneliner:
--- libftdi-0.17-orig/bindings/ftdi.i 2009-04-07 18:58:14.000000000 +0200 +++ libftdi-0.17/bindings/ftdi.i 2010-07-10 16:49:35.981446841 +0200 @@ -2,6 +2,8 @@ %module ftdi %include "typemaps.i" %include "cpointer.i" +%pointer_functions(unsigned int, uintp); + %typemap(in) unsigned char* = char*; %ignore ftdi_write_data_async; %ignore ftdi_async_complete; and should apply clean also to version 0.18. Maybe the example code import ftdi ftdic = ftdi.ftdi_context() ret = ftdi.ftdi_usb_open(ftdic, 0x0403, 0x6001) chipid = ftdi.new_uintp() ftdi.ftdi_read_chipid(ftdic, chipid) hex(ftdi.uintp_value(chipid)) should be put in a README, because the method initializing an unsigned int pointer (chipid = ftdi.new_uintp()) is not very common to python programmers. Flynn -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
