Vxi11 c语言,linux上VXI-11协仪服务器的实现

linux上VXI-11协仪服务器的实现

[复制链接]

本帖最后由 石玉 于 2017-4-1 14:15 编辑

此内容由EEWORLD论坛网友石玉原创,如需转载或用于商业用途需征得作者同意并注明出处

这几天在看VXI-11协仪,这个协仪应用比较少,在网上基本找不到资料,经过老大的点拨,终于成功运行了VXI-11协仪服务器,也就是模拟出了一个LXI设备

首先解释几个名词:

LXI设备:符合LXI规范的仪器设备,我的理解是用网口通信的仪器设备就是LXI设备

VXI-11:控制器和设备通过TCP/IP网络通信的网络仪器协仪

RPC:远程调用,基于C/S模型,一台计算机上的程序调用另一台计算机上的程序

XDR:外部数据表示,就是在不同的计算机系统中转换数据的格式,避免出现类似大小端的问题

使用linux做开发的好处是首先TCP/IP协仪栈已经有了,portmap和RPC也有了(如果没有就安装一个),我们只用关心RPC编程了

在网上找了一个VXI-11协仪客户端的例子,我们要做的是服务器,所我只需要他的种子文件vxi11.x(种子文件后面会给出),在种子文件中定义了VXI-11协仪的三个通道DEVICE_ASYNC,DEVICE_CORE,DEVICE_INTR,三个通道总共有17个消息,还定义了协仪交互时的一些数据结构,这些定义都会体现到生成的.c文件中

//中止通道有1个消息

program DEVICE_ASYNC

{

version DEVICE_ASYNC_VERSION

{

Device_Error                device_abort                (Device_Link)                = 1;

} = 1;

} = 0x0607B0;

//核心通道有15个消息

program DEVICE_CORE

{

version DEVICE_CORE_VERSION

{

Create_LinkResp                create_link                (Create_LinkParms)        = 10;

Device_WriteResp        device_write                (Device_WriteParms)        = 11;

Device_ReadResp                device_read                (Device_ReadParms)        = 12;

Device_ReadStbResp        device_readstb                (Device_GenericParms)        = 13;

Device_Error                device_trigger                (Device_GenericParms)        = 14;

Device_Error                device_clear                (Device_GenericParms)        = 15;

Device_Error                device_remote                (Device_GenericParms)        = 16;

Device_Error                device_local                (Device_GenericParms)        = 17;

Dev

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值