【发布时间】:2013-03-17 22:47:37
【问题描述】:
我目前正在寻找通过 C# 与 SCPI 兼容的设备进行通信的不同可能性。我已经通过 COM 接口在 LabWindows/CVI(语言:C)中编写了我的第一个代码,并且正如我所说的那样“手动”完成了:
ComOpen(ComId, "Com1",....);
ComWrite("SYST:...\r");
ComRead(&value)`
类似的东西。对我来说,问题是我不喜欢纯 C,而且缺少 OOP 只是愚蠢的,因为我有想要交流的真实对象。亲爱的 National Instruments,为什么不使用 OOP 来控制对象?
现在有人给了我提示,我应该查看全局 SCPI 文档,因为其中的信息比设备手册中的信息要多。而且我发现了一组与 .NET 兼容的命令。例如,
IIviDCPwr Ivi.DCPwr.Create(String resourceName,
Boolean idQuery,
Boolean reset,
LockType lockType,
String accessKey,
String options);
与 SCPI 设备建立面向对象的通信。因为我真的很喜欢 C#,所以我想在接下来的几周内尝试一下。
但我真的看不到连接设置,因为 resourceName 似乎只是之后释放相关设备的名称,而其他设置在连接已设置时使用。 IIviDCPwr 的实例如何知道应该使用哪个连接(TCP/IP、COM 或 GPIB)?
我只见过使用套接字的 TCP/IP 解决方案。但我认为这不适用于 COM 和 GPIB?
另一种解决方案是使用 National Instruments VISA 软件包。但是我不喜欢使用 NI 提供的专有包的想法(我认为使用 CVI 后我对 NI 产生了新的排斥)。
您能否提供代码 sn-ps 或文档来处理此问题?你有使用VISA的经验吗?我可以使用套接字进行 COM/GPIB 通信吗?
顺便说一句:如何在代码 sn-ps 中创建新行? enter 和 Shift + Enter, \r, \n, \ 都不适合我...
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
另外,你指的是什么“code sn-ps”?
-
另外,问题是wtf?
-
好吧,我的整个标题都充满了标签。但它总结了我的全文。为什么你还没有删除GPIB、RS232/COM?甚至 SCPI 也是一个很好的标签……而不是标题:通过和使用进行通信。会好很多
-
输入代码只需将代码缩进四个空格。
标签: c# com serial-port gpib