The problem is that the method is called with int as the last parameter, but the two overloads in question take “ref Int16” and “ref UInt16”. So the conversion is happening in the opposite direction and IronPython cannot safely choose between Int16 and UInt16 given that the input is Int32. They are both narrowing conversions.

 

You can either select the method from Overloads, or cast the int to whichever type you want to use:

 

board.AIn(channel, mode, Int16(output))

 

Hope this helps

Martin

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of jeff sacksteder
Sent: Wednesday, July 19, 2006 9:54 PM
To: users@lists.ironpython.com
Subject: [IronPython] Typing problem with vendor library?

 

I have a data-acquisition device whose vendor provides a dotnet library for software integration. The dynamic nature of IP is giving me a bit of a problem. To record data from the unit, I make a method call like this:

errorlevel = board.AIn(channel,mode,output)

It seems that the library wants to put an UInt16 value into the 'output' variable. I would not expect this to be a problem, but this produces...

TypeError: no overloads of AIn could match (int, Range, int)
  AIn(int, Range, Reference[Int16])
  AIn(int, Range, Reference[UInt16])

Surely an unsigned Int16 should be able to go into an Int32?

_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to