[發明專利]基于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.szxzyx.cn/pat/books/201810454553.2/1.html,轉載請聲明來源鉆瓜專利網。





