问题描述
从链接到eBUS SDK的.NET dll调用方法时遇到问题。该代码的最终目标是使用python与GigE连接的相机进行通信。
在C#中,方法是:
obj = [{ItemID: "ABC",MON: 120,TUE: 120,WED: 120,THU: 120,FRI: 120 }]
,并且是名为PvDeviceGEV的类的一部分。
在Python中,我使用pythonnet导入dll。然后,我使用以下代码:
public void SetStreamDestination( string aIPAddress,ushort aDataPort )
这会导致错误:
from PvDotNet import PvDeviceGEV
from PvDotNet import PvStreamGEV
DeviceGEV = PvDeviceGEV()
Stream = PvStreamGEV()
LocalIP = Stream.LocalIPAddress
LocalPort = Stream.LocalPort
DeviceGEV.SetStreamDestination(LocalIP,LocalPort)
由于IPAddress和aDataPort的类型分别应为字符串和UInt16,因此我不理解此错误。我已经可以从此类中调用其他方法。这是我第一次尝试将功能从另一种语言导入Python。对于理解或纠正此错误的任何帮助,将不胜感激。
解决方法
我通过更改解决了这个问题
SetStreamDestination(LocalIP,LocalPort)
至SetStreamDestination(LocalIP,UInt16(LocalPort))