viMapAddress(vi,VI_A24_ SPACE,0, 0X200,VI_FALSE,VI_ NULL,&addr); file://映射地址
.
.
.
}
void Senddata(unsigned short data2) file://数据传递函数
{
viPoke16(vi,addr,data2);
viAssertTrigger (vi,VI_TRIG_PROT_SYNC);
}
ViStatus _VI_FUNCH myHdlr(ViSession vi,ViEventType eventType,ViEvent ctx,ViAddr userHdlr) file://事件回调函数
{
viGetAttribute(ctx,VI_ATTR_ RECV_TRIG_ID,&trigId);
file://得到触发id
switch(trigId)
{
case VI_TRIG_TTL0: file://判断是否TTL0的触发
viPeek16(vi,addr,&a);
break;
.
.
.
}
通过在程序中调用上面的Senddata函数可以实现一个unsigned short型数据的传递。当需要传递多个数据时,建议使用结构体定义要传递的数据。
结语
本文通过对VXI共享存储器通信和处理事件机制的介绍,阐述了如何在Windows环境下通过动态链接库实现两块嵌入式计算机之间的数据传递,其中有关VISA函数的细节在HP或NI提供的VISA帮助中有详尽的说明,不再赘述。基于这种方法编写出来的程序处理VXI零槽控制器和非零槽模块之间的通信问题是比较合适的