[发明专利]基于Labview和STK的显示系统的设计方法有效
申请号: | 201810454553.2 | 申请日: | 2018-05-11 |
公开(公告)号: | CN108664621B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 韩帅;张琦;王彬;蔚保国;邹德岳;高芳;孟维晓 | 申请(专利权)人: | 哈尔滨工业大学;中国电子科技集团公司第五十四研究所 |
主分类号: | G06F16/904 | 分类号: | G06F16/904;G06F8/38 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 杨立超 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 labview stk 显示 系统 设计 方法 | ||
1.一种基于Labview和STK的显示系统的设计方法,其特征在于,所述方法基于STK的显示功能和Labview的工程设计功能,通过STK的Connect模块、Labview的VISA接口和建立状态机项目,实现不同终端之间使用Labview控制STK的功能;
所述方法实现过程为:
步骤一、创建一个可被Labview调用的STKCONNECT.dll,用于Labview主程序端对STK的调用;STKCONNECT.dll中包涵CONNECT模块初始化函数、打开连接函数、发送指令并接收数据函数以及关闭连接的函数,具体描述如下:
CONNECT模块初始化函数为AgConInit()函数,使用AgConInit()函数初始化CONNECT模块,所述初始化函数AgConInit()的函数原型是int AgConInit(char *initFileName),其中参数initFileName指向初始化配置文件,int表示程序语言中的整型;“char *”表示字符串指针;
若initFileName参数为空,CONNECT模块将使用缺省配置文件;若初始化成功,STK将返回AgCNoError消息,反之将返回AgCError消息;初始化配置文件中列出了拥有返回数据的CONNECT命令,所述命令是第三方程序获得STK数据的有效途径;初始化配置文件中还包含用于建立连接时CONNECT模块的参数设置的配置信息;
在初始化完成后,使用AgConOpenSTK()函数打开与STK的连接,AgConOpenSTK()函数原型如下:
int AgConOpenSTK(
char**context,
char**connectType,
char**connectName);
其中,参数connectType用于指定连接的类型,参数connectType只能为以下两个常量之一:“UNIXSOCKET” ,“TCPSOCKET”;其中前者只用于UNIX操作系统;char**表示指针的指针;
connectName参数在基于TCP/IP协议的连接中指定了主机名和通讯端口号;同时,参数context是在应用程序同时打开多个STK的连接情况下用于区分这些连接的参数;
在完成初始化和连接工作之后,将使用发送指令函数AgConProcessSTKCmd()发送命令以及接收数据,
所述发送指令函数的原型如下:
int AgConProcessSTKCmd(
char **context,
char **cmdString,
AgTConReturnInfo**returnInfo);
参数context用于区分接受命令不同的连接,cmdString包含命令的具体内容;returnInfo参数以结构的形式存储STK返回的数据,returnInfo的定义如下:
typedef struct AgTConReturnInfo
{char hdrType[AgCRMHAHdrTypeLen+1];
char tranId[AgCRMHAHdrIdLen+1];
int numEntries;
char**returnList;
} AgTConReturnInfo;
其中,
AgTConReturnInfo表示returnInf结构体的名字;typedef struct表示returnInf结构体的类型;
hdrTyp和tranId用于异步通讯模式,存储类型及标识符信息;numEntries存储返回数据包的数目,returnList则存储每一个具体的数据包;发送指令函数AgConProcessSTKCmd()若成功访问STK,则返回消息AgCNoError,反之将返回AgCError消息;若命令正确发出但因某些因素导致STK拒绝响应,将返回消息AgCNackReturned;
执行完以上操作后,可关闭与STK的连接;如果只想关闭当前连接,可使用关闭连接函数AgConCloseSTK();若想彻底清除CONNECT静态库中申请的内存,完全终止与STK的连接,可使用完全终止连接函数AgConShutdownConnect();之后若想再与STK通讯,需重新进行初始化;
在创建STKCONNECT.dll时,按照以上初始化、打开连接、发送指令、关闭连接的过程,使用C++语言,将以上几个函数连接起来,生成一个整体的函数;由此生成的dll将在Labview主程序中使用调用库函数节点时被调用;
步骤二、串口传输过程:
当显示系统与实体主程序在不同的终端上运行时使用串口在两者之间进行信息传递,利用Labview中的VISA系列VI进行数据传输;实体主程序对应数据发送端,显示系统对应数据接收端;在收发终端上安装NI的VISA驱动;串口传输过程的实现如下:
在数据发送端和数据接收端使用的VI前面板,在VI中选择串口的端口号,对所选端口进行设置,其中参数的设置包括串口的波特率、数据位、XON/XOFF字符设置以及终止符时结束读取/写入以及终止符的选择设置,收发两端的参数要设置一致;
步骤三、显示系统主体设计与实现,使用事件结构与循环结构嵌套的状态机作为显示系统主体整个程序的架构;状态机用于使用串口接收消息、将消息转化为STK可接收指令、将指令送入STK实现显示;通过状态机不同状态之间的转换实现显示系统将指令写入文档和送入STK进行显示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学;中国电子科技集团公司第五十四研究所,未经哈尔滨工业大学;中国电子科技集团公司第五十四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810454553.2/1.html,转载请声明来源钻瓜专利网。