LabVIEW中的套接字

| 我正在使用专有协议通过USB与我构建的一些自定义硬件进行通讯。我有一个GUI处理与该硬件的所有通信/交互,还有一个(C#)DLL,它公开了所有相关的USB功能。我需要编写一个用于与硬件通信的LabVIEW驱动程序(VI)。我的想法是,我只是使用LabVIEW打开我的GUI,并拥有一个套接字,通过它可以将所有相关控件公开给LabVIEW。是否可以在LabVIEW中打开套接字并与我的GUI通信?这是不好的方法吗?还是应该让LabVIEW调用DLL并处理硬件控制而不是GUI(轮询通信,请求/未经请求的命令等)?     
已邀请:
您是否只想使用GUI是有原因的?就时间而言,我想说的是在LabVIEW中构建一个良好的前面板,并且仅使用DLL直接与硬件进行通信。添加GUI只是增加了一层复杂性,以后可能很难维护?如果可以,为什么不在LabVIEW中执行所有操作?     
是的,LabVIEW支持同时使用TCP / IP和UDP的套接字。 您应该能够创建作为TCP / IP服务器连续运行的程序/服务。您可以发送命令并以字符串形式接收响应。如果需要打包数据,则可以使用flatten to string命令。 本质上,您的应用程序应被构造为运行TCP / IP服务器的循环,以及另一个实际与仪器通信的循环。如果您需要将数据从设备返回到TCP客户端,则可能会更改。生产者消费者模型,如果您愿意:) 要开始使用,请打开“ NI示例查找器”(“帮助”->“查找示例”),然后浏览至“网络”->“ TCP和UDP”->“简单数据服务器”。     
这取决于谁将使用LabVIEW驱动程序以及用于什么用途。如果您要将此硬件移交给要为其创建自己的应用程序的其他人,则他们可能更愿意直接与DLL对话,而不是通过您的GUI。例如,如果要从LabVIEW中自动执行现有软件来执行硬件上的测试或重复任务,那么从LabVIEW驱动GUI的工作可能会更少。     

要回复问题请先登录注册