C# 如何实现串口通信,连接RFID模块 50
publicoperResultConnect(intradioHandle,boolasyn)怎么用?...
public operResult Connect( int radioHandle, bool asyn )怎么用?
展开
1个回答
展开全部
四种方案:
1 如果 RFID是免驱的情况下,可以使用伯克利套接字实现。
2 如果是Com接口的情况下直接通过COM口编程,也就SerialPort进行编程的一种方案,这就是所谓的串口编程。查询你设备的波特率/停止位/握手协议等等相关内容,可能与RFID通信。
3 如果厂商提供有相应的dll模块或软件的情况下,可以考虑使用平台调用方式(PInvoke)进行编程(前供需要特殊的软件查询dll中的函数签名)。
4 如果厂商提供有C#开发用的SDK 的话,进行使用SDK编程。
凡上四种,1是一种较为复杂的下位机通信,2是标准的COM串口通信。而3是针对一些硬件的不符合免驱条件的处理,而4完完全全就是厂商把一切都作好了!
从楼上提供的一个函数来看,我猜你已经拿到厂商的SDK,它并不属于串口通信的!也是这四种方案中难度最低的一种(极低,其他三个方案都比较高)。因为在Com通信时,或套接字中都不存在这样的一个函数。基于你提问的问题的描述方式来说,第三种可能对你有一定的难度,所以我猜这是对方对了SDK但或者没有给开发文档,或者你没有看到开发文档,所以才会对该问题不太熟悉。
大致说一下吧,其实这个玩意,没有什么特别的,主要讲一下的就是,我估计对方给文档也是由C++进行转述的,所以把第一个参数写成了int handle了,事实上我们多数情况下进行平台调用时,会把句柄(你可以理解成一个设备的指针,你这里的设备是一个物理设备,而其他的情况也可能是虚拟设备或其他的)封送了intPtr的指针封装形式(其实它还是一个int,只是专门用来做句柄用的),说白了这玩意是一个数字,但可以通过这个数据联系这个设备(物理)!所以一定还存在其他方法来获得这个句柄的,所以这个数字并不是你乱填写的,你要找到应该是类find/open/connect等类型的方法,输入的是其他的参数,但会返回或输出一个intPtr类型的方法(返回intPtr或out intptr参数)。找到后,应该是通过该成员方法拿到设备的句柄(IntPtr类型,C++会是指针类型),然后需要输入句柄时的方法中均要使用该句柄!我猜的是你的SDK中应该是存在一个Open方法的,返回的是IntPtr类型!那个就是!(一般情况下,Open只是打开设备——上电后执行类似等待连接,也就是Open可以使用设备达到一个就绪状态,Connect方法是要连接到打开的设备上)。
至于后边的参数不用解释的,就是异步而已!这里边只要理解IntPtr类型的指针参数即可!
1 如果 RFID是免驱的情况下,可以使用伯克利套接字实现。
2 如果是Com接口的情况下直接通过COM口编程,也就SerialPort进行编程的一种方案,这就是所谓的串口编程。查询你设备的波特率/停止位/握手协议等等相关内容,可能与RFID通信。
3 如果厂商提供有相应的dll模块或软件的情况下,可以考虑使用平台调用方式(PInvoke)进行编程(前供需要特殊的软件查询dll中的函数签名)。
4 如果厂商提供有C#开发用的SDK 的话,进行使用SDK编程。
凡上四种,1是一种较为复杂的下位机通信,2是标准的COM串口通信。而3是针对一些硬件的不符合免驱条件的处理,而4完完全全就是厂商把一切都作好了!
从楼上提供的一个函数来看,我猜你已经拿到厂商的SDK,它并不属于串口通信的!也是这四种方案中难度最低的一种(极低,其他三个方案都比较高)。因为在Com通信时,或套接字中都不存在这样的一个函数。基于你提问的问题的描述方式来说,第三种可能对你有一定的难度,所以我猜这是对方对了SDK但或者没有给开发文档,或者你没有看到开发文档,所以才会对该问题不太熟悉。
大致说一下吧,其实这个玩意,没有什么特别的,主要讲一下的就是,我估计对方给文档也是由C++进行转述的,所以把第一个参数写成了int handle了,事实上我们多数情况下进行平台调用时,会把句柄(你可以理解成一个设备的指针,你这里的设备是一个物理设备,而其他的情况也可能是虚拟设备或其他的)封送了intPtr的指针封装形式(其实它还是一个int,只是专门用来做句柄用的),说白了这玩意是一个数字,但可以通过这个数据联系这个设备(物理)!所以一定还存在其他方法来获得这个句柄的,所以这个数字并不是你乱填写的,你要找到应该是类find/open/connect等类型的方法,输入的是其他的参数,但会返回或输出一个intPtr类型的方法(返回intPtr或out intptr参数)。找到后,应该是通过该成员方法拿到设备的句柄(IntPtr类型,C++会是指针类型),然后需要输入句柄时的方法中均要使用该句柄!我猜的是你的SDK中应该是存在一个Open方法的,返回的是IntPtr类型!那个就是!(一般情况下,Open只是打开设备——上电后执行类似等待连接,也就是Open可以使用设备达到一个就绪状态,Connect方法是要连接到打开的设备上)。
至于后边的参数不用解释的,就是异步而已!这里边只要理解IntPtr类型的指针参数即可!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询