999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VC++6.0的SCPI解釋器設(shè)計(jì)

2012-09-27 01:41:34李海龍劉文文
電子設(shè)計(jì)工程 2012年4期
關(guān)鍵詞:數(shù)據(jù)庫

李海龍,劉文文

(合肥工業(yè)大學(xué) 儀器儀表學(xué)院,安徽 合肥 230009)

基于VC++6.0的SCPI解釋器設(shè)計(jì)

李海龍,劉文文

(合肥工業(yè)大學(xué) 儀器儀表學(xué)院,安徽 合肥 230009)

SCPI是現(xiàn)代可程控儀器的一種采用樹狀分層結(jié)構(gòu)的標(biāo)準(zhǔn)命令集,被廣泛的應(yīng)用于各種智能儀器的控制和測試中。根據(jù)SCPI樹形結(jié)構(gòu)的特點(diǎn),使用VC++中的ODBC技術(shù),創(chuàng)建并查詢SCPI命令集的數(shù)據(jù)庫,使用VC++中的CTreeCtrl控件,生成SCPI的命令樹,方便得到SCPI命令的完整路徑,同時(shí)完成了SCPI命令集解釋器的設(shè)計(jì)。

SCPI;樹狀分層結(jié)構(gòu);命令樹;ODBC;CTreeCtrl控件;解釋器

1990年4 月,由HP、Tek等9家知名的儀器制造商組成的聯(lián)合體,一致同意發(fā)表了建立在IEE488.2基礎(chǔ)上的可程控儀器的標(biāo)準(zhǔn)程控命令(Standard Commands for Programmable Instruments,SCPI),并在同年發(fā)布了它的第一標(biāo)準(zhǔn)文本SCPI Rev.1990.0[1-4]。

1 SCPI語法的介紹

1.1 SCPI簡介

SCPI是建立在以IEEE488.1和IEEE488.2標(biāo)準(zhǔn)為基礎(chǔ),以ASCII字符組成的標(biāo)準(zhǔn)儀器命令語言,它采用的是樹形分層結(jié)構(gòu)的命令集,助記符的規(guī)則簡單且易于記憶。該語言為所有儀器提供了相互兼容的編程和使用環(huán)境,通過采用標(biāo)準(zhǔn)化的編程信息、儀器相應(yīng)和數(shù)據(jù)格式來保證編程環(huán)境的兼容性,提高了編程的效率,可以用于GPIB、USB等各種類型接口之間的通信。目前國內(nèi)外的儀器都是根據(jù)這個(gè)標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)和制造。

1.2 SCPI命令格式

對(duì)于整個(gè)SCPI命令可以分為兩個(gè)部分:一部分是IEEE488.2公用命令,要求儀器必須執(zhí)行,這部分與測量無關(guān),只是用來控制重設(shè)、自我測試和狀態(tài)的操作;另一部分是SCPI儀器特定控制命令,其又可進(jìn)一步分為一組測量命令和23個(gè)命令子系統(tǒng)。

對(duì)于公用命令,一般都是以“*”開頭且僅有一層,用來執(zhí)行所有有標(biāo)準(zhǔn)IEEE488.2界面的儀器的共同功能。如*RST、*CLR等。

SCPI儀器特定控制命令分為命令和查詢兩種格式,用來從事測量、讀取資料以及通過查詢來獲取儀器的設(shè)置或狀態(tài)等功能。SCPI命令采用樹形結(jié)構(gòu)的指令系統(tǒng),稱為SCPI命令樹,包括校準(zhǔn)子系統(tǒng)、檢測子系統(tǒng)和測試子系統(tǒng)等23個(gè)子系統(tǒng),每個(gè)命令樹系統(tǒng)由一個(gè)根命令和一個(gè)或者數(shù)個(gè)層次命令構(gòu)成[4-5]。命令樹形結(jié)構(gòu)如圖1所示。

圖1 SCPI命令結(jié)構(gòu)Fig.1 Structure of SCPI

儀器特定控制命令格式為:關(guān)鍵字<參數(shù)>:關(guān)鍵字<參數(shù)>:……<參數(shù)>,<參數(shù)>……

冒號(hào)(:)的使用方法:冒號(hào)位于命令關(guān)鍵字的第一個(gè)字符前面,表示接下來的命令是根命令;位于兩個(gè)命令之間時(shí)表示當(dāng)前層次向下移動(dòng)一個(gè)層次。

分號(hào)(;)的使用方法:用來分離同一個(gè)命令字符串中的兩個(gè)命令,但不改變目前指定的路徑。

進(jìn)入暖箱的新生兒需要全程監(jiān)護(hù),醫(yī)護(hù)人員會(huì)定時(shí)查體、喂奶、換尿布、觀察寶寶的皮膚顏色、原始反射和生命體征等,及時(shí)調(diào)節(jié)暖箱的溫度和濕度,避免暖箱溫度失控,影響寶寶的身體健康。

逗號(hào)(,)的使用方法:如果一個(gè)命令需要一個(gè)以上參數(shù)時(shí),參數(shù)之間用逗號(hào)分開。

空格的使用方法:分隔關(guān)鍵字和參數(shù)。

“?”命令的使用方法:以問號(hào)結(jié)束的是查詢命令,可以指定儀器發(fā)送反應(yīng)信息,查詢的傳回值為測量值或儀器內(nèi)部的設(shè)置值。

由于SCPI為樹形結(jié)構(gòu),因此只有指定完整的路徑才能執(zhí)行較低層次的個(gè)別命令。根據(jù)圖1的SCPI樹形結(jié)構(gòu)可以得到如下指定命令的完整路徑:

:SENse:FREQuency:VOLTage:RANGe<參數(shù)值>

2 SCPI解釋器的設(shè)計(jì)

對(duì)于早期的儀器并不支持SCPI命令集。因此需要設(shè)計(jì)一種命令解釋器,能夠根據(jù)用戶輸入的SCPI命令查詢到程控儀器內(nèi)置的與SCPI命令相對(duì)應(yīng)且儀器可以識(shí)別的命令,從而完成SCPI命令的解釋過程。

2.1 創(chuàng)建ODBC數(shù)據(jù)源

在ODBC體系下,要訪問某種數(shù)據(jù)庫,用戶只需借助操作系統(tǒng)提供的ODBC管理工具軟件,在應(yīng)用程序的運(yùn)行平臺(tái)安裝相應(yīng)的ODBC數(shù)據(jù)庫驅(qū)動(dòng)程序,按照“開始-控制面板-數(shù)據(jù)源”,打開“ODBC數(shù)據(jù)源管理器”,建立一個(gè)ODBC數(shù)據(jù)源的對(duì)象,然后用戶就可以通過該數(shù)據(jù)源來訪問相應(yīng)的數(shù)據(jù)庫。

2.2 數(shù)據(jù)庫的連接

要訪問我們創(chuàng)建的數(shù)據(jù)庫,第一步就是從應(yīng)用程序連接到數(shù)據(jù)庫。首先使用VC++6.0創(chuàng)建一個(gè)基于對(duì)話框的工程,在工程中添加一個(gè)新類CRecord,其基類是CRecordset,出現(xiàn)如下對(duì)話框,選擇創(chuàng)建的SCPI數(shù)據(jù)源,這樣就相當(dāng)于把創(chuàng)建的數(shù)據(jù)庫與應(yīng)用程序連接在一起,之后就可以對(duì)數(shù)據(jù)庫進(jìn)行操作[6]。

2.3 數(shù)據(jù)庫的操作

CRecordset類封裝了對(duì)數(shù)據(jù)庫進(jìn)行各種操作的成員函數(shù),可以滿足我們的需求。使用派生類CRecord的對(duì)象record,對(duì)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)查詢,動(dòng)態(tài)表示的信息有如下一些:

1)記錄集中的字段數(shù)目 (即列的數(shù)目) short nFields=record.GetODBCFieldCount();//獲取記錄集的列值

2)創(chuàng)建命令樹 VC++中樹形控件常常用來顯示和組織樹、索引項(xiàng)等具有多層次關(guān)系的結(jié)構(gòu)[5]。在BOOL CTestDlg::OnInitDialog()中調(diào)用 NewTree()函數(shù),其作用是將數(shù)據(jù)庫中查詢到得SCPI每個(gè)節(jié)點(diǎn)按照其結(jié)構(gòu)方式存放在m_tree控件上相應(yīng)的項(xiàng)中 (m_tree是一個(gè)與CTreeCtrl控件相關(guān)聯(lián)的變量),構(gòu)成樹形層次結(jié)構(gòu)。

3)依次查詢字段值 由于SCPI命令在數(shù)據(jù)庫中的格式為字符串,因此給Edite控件關(guān)聯(lián)一個(gè)CString變量m_cmd,用于存放輸入的子命令。

4)遍歷命令樹 在確定輸入的子命令查找成功之后,使用遞歸方法遍歷樹形結(jié)構(gòu),將存在的命令項(xiàng)的HTREEITEM(即句柄值)轉(zhuǎn)化為DWORD形式存放在Item[N]數(shù)組中,實(shí)現(xiàn)了對(duì)SCPI中重復(fù)命令的查詢[7]。

5)創(chuàng)建完整路徑 由于得到的是子命令的句柄值,因此可以通過CTreeCtrl控件的GetParentItem () 函數(shù)和GetItemText(),依次得到子命令的父節(jié)點(diǎn)和父節(jié)點(diǎn)上字符串的內(nèi)容,通過字符串的相加即可得到子命令的完整路徑。

2.4 命令解釋器

圖2 命令查詢Fig.2 Command query

圖3 完全路徑Fig.3 Full path

對(duì)于每個(gè)完整路徑的SCPI子命令來說,都有與其相對(duì)應(yīng)的程控儀器的控制命令,因此可以通過每個(gè)SCPI子命令唯一的ID值與程控儀器的控制命令相關(guān)聯(lián)起來。同樣通過上述方法,將程控儀器的控制命令集數(shù)據(jù)庫添加至工程中,點(diǎn)擊SCPI子命令即可得到其ID值,通過SCPI子命令的ID值查找到與其對(duì)應(yīng)程控儀器可識(shí)別的控制命令,即完成了SCPI命令的解釋過程。如圖4所示。

圖4 解釋效果Fig.4 Effect of interpret

3 結(jié)束語

SCPI在現(xiàn)代測量控制領(lǐng)域[8]的應(yīng)用十分廣泛,為了加強(qiáng)對(duì)命令集的管理,對(duì)于SCPI命令集的存儲(chǔ)結(jié)構(gòu)和子命令的查詢是十分重要的。本文設(shè)計(jì)并實(shí)現(xiàn)了對(duì)輸入的SCPI命令的判斷和查詢,得到了輸入的SCPI子命令的完整路徑,并完成了對(duì)SCPI命令的解釋,方便了命令的發(fā)送和對(duì)可程控儀器的操作。

[1]陳艷芬,楊景常,張吉濤.PC機(jī)遠(yuǎn)程控制儀器的SCPI解析模塊設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(11):143-145.

CHEN Yan-fen,YANG Jing-chang,ZHANG Ji-tao.The design of SCPI parser module between PC and remote control instruments[J].Control&Automation,2008(11):143-145.

[2]奚全生.可編程儀器標(biāo)準(zhǔn)命令(SCPI)介紹[J].計(jì)算機(jī)自動(dòng)測量與控制,1994(1):22-31.

XI Quan-sheng.Instroduction of SCPI[J].Computer Automated Measurement&Control,1994(1):22-31.

[3]朱興邦,李兵.IEEE488與SCPI解釋[J].儀器儀表標(biāo)準(zhǔn)化與計(jì)量,2007(1):15-16.

ZHU Xing-bang,LI Bing.The explanation of IEEE488 and SCPI[J].Instrument Standardization&Metrology,2007 (1):15-16.

[4]于紅雨,李智,劉暢.函數(shù)/任意波形發(fā)生器SCPI解釋器設(shè)計(jì)與實(shí)現(xiàn)[J].國外電子測量技術(shù),2009(4):70-73.

YU Hong-yu,LI Zhi,LIU Chang.Research and implementation of SCPI interpreter for function/arbitrary waveform generator[J].Foreign Electronic Measurement Technology,2009(4):70-73.

[5]杜秀偉,王前程.SCPI語言解析器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子質(zhì)量,2008(8):23-25.

DU Xiu-wei,WANG Qian-cheng.Design and implementation of SCPI parser[J].Electron Quality,2008(8):23-25.

[6]徐華中,馮紅梅.VC-MFC ODBC的數(shù)據(jù)庫系統(tǒng)開發(fā)[J].武漢理工大學(xué)學(xué)報(bào),2004(6):25-27.

XU Hua-zhong,F(xiàn)ENG Hong-mei.Database system development of VC-MFC ODBC[J].Journal of WUT:Information&Management Engineering,2004(6):25-27.

[7]陳慧南.數(shù)據(jù)結(jié)構(gòu)-C語言描述[M].西安:西安電子科技大學(xué)出版社,2009.

[8]李軍浩,胡泉偉,吳磊,等.極化/去極化電流測試技術(shù)的仿真研究[J].陜西電力,2011(4):1-5.

LI Jun-hao,HU Quan-wei,WU Lei,et al.Simulation study of polarization and depolarization current measurements technology[J].Shaanxi Electric Power,2011(4):1-5.

Design of SCPI interpreter based on VC++6.0

LI Hai-long,LIU Wen-wen
(School of Instrument Science,Hefei University of Technology,Hefei230009,China)

SCPI is the new instrument command language for controlling instruments with tree structure,has been wildly used in controling and testing of intelligent instruments.Based on the structural characteristics of SCPI,used ODBC technology in VC++,create and query the database of SCPI,used CTreeCtrl control,build the command tree of SCPI and get the full path of SCPI easily,complete the design of SCPI interpreter.

SCPI; tree structure; command tree; ODBC; CTreeCtrl control; interpreter

TH89

A

1674-6236(2012)04-0094-03

2011-12-20 稿件編號(hào):201112115

李海龍(1986—),男,陜西渭南人,碩士研究生。研究方向:精密測試技術(shù)及儀器。

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 成人午夜天| 欧洲一区二区三区无码| 成人免费网站在线观看| 欧美精品影院| 国产拍在线| 成人精品视频一区二区在线| 亚洲二区视频| 亚洲日韩高清在线亚洲专区| 日本道综合一本久久久88| 亚洲人成网站在线播放2019| 另类重口100页在线播放| 2020国产免费久久精品99| 免费一级全黄少妇性色生活片| 亚洲专区一区二区在线观看| 亚洲国产中文在线二区三区免| 色综合天天娱乐综合网| 欧美区一区| 亚洲国产精品日韩av专区| 亚洲欧洲自拍拍偷午夜色| 国产色婷婷视频在线观看| 色久综合在线| 免费无码又爽又黄又刺激网站 | 亚洲AV免费一区二区三区| 亚洲愉拍一区二区精品| 免费观看无遮挡www的小视频| 亚洲中文无码h在线观看| 91免费国产在线观看尤物| 亚洲国产成人超福利久久精品| 2021国产在线视频| 国产小视频a在线观看| 成人毛片免费在线观看| 一级成人a毛片免费播放| 国产真实自在自线免费精品| 四虎影院国产| 亚洲国产一区在线观看| 亚洲天堂视频网| 久久久久亚洲av成人网人人软件 | 91无码人妻精品一区| 国产呦视频免费视频在线观看| 国产人人乐人人爱| 免费又黄又爽又猛大片午夜| 亚洲国产精品无码久久一线| 久久天天躁狠狠躁夜夜躁| 手机在线免费不卡一区二| 精品撒尿视频一区二区三区| 99er精品视频| 国产精品中文免费福利| 天堂av综合网| 国产99视频在线| 亚洲精品视频免费| 亚洲精品卡2卡3卡4卡5卡区| 东京热高清无码精品| 亚洲人成在线精品| 日韩av无码精品专区| 一级毛片网| 国产浮力第一页永久地址| 亚洲综合第一区| 国产精品精品视频| 无码中文字幕乱码免费2| 国产精品部在线观看| 激情爆乳一区二区| 久热精品免费| 精品国产毛片| 欧美亚洲综合免费精品高清在线观看| 日本人真淫视频一区二区三区| 国产精品99一区不卡| 亚洲欧美不卡中文字幕| 五月天天天色| 无码 在线 在线| 无码专区第一页| 美女被操黄色视频网站| 亚洲高清无码精品| 亚洲中文在线看视频一区| 九九热精品视频在线| 国产成人久久777777| 亚洲成人福利网站| 18禁色诱爆乳网站| 久久黄色影院| 日本国产精品| 97视频在线精品国自产拍| 欧美日在线观看| 99久久精品免费看国产电影|