我目前正在寻找通过 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 的排斥)。
你能提供代码片段或文档来处理这个问题吗?你有使用VISA的经验吗?我可以使用套接字进行 COM/GPIB 通信吗?
顺便说一句:如何在代码片段中创建新行?enter 和Shift+ Enter, \r, \n, \ 都不适合我...