国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)據(jù)分析系統(tǒng)的交互界面設(shè)計(jì)

2013-12-29 00:00:00豐丹
電腦知識(shí)與技術(shù) 2013年12期

摘要:針對(duì)位置敏感探測(cè)器件構(gòu)成的數(shù)據(jù)分析系統(tǒng),借助開發(fā)工具及MFC消息映射機(jī)制,實(shí)現(xiàn)系統(tǒng)交互界面的設(shè)計(jì)。界面通過對(duì)串口通信和USB通信方法的研究,利用按鈕控件實(shí)現(xiàn)并控制上下位機(jī)數(shù)據(jù)通信;數(shù)據(jù)傳輸處理之后,以文本和模擬坐標(biāo)兩種方式顯示出光斑的位置,并利用文件保存光斑位置的歷史信息。系統(tǒng)調(diào)試結(jié)果證明:該界面能夠準(zhǔn)確直觀地顯示數(shù)據(jù)分析系統(tǒng)的相關(guān)數(shù)據(jù),實(shí)現(xiàn)與用戶的友好交互,與其他同類型界面相比,提供了各種型號(hào)探測(cè)器件的相應(yīng)處理,具有較強(qiáng)的適用性。

關(guān)鍵詞:數(shù)據(jù)分析系統(tǒng);交互界面;MFC;串口通信;USB通信

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)12-2798-04

目前在激光準(zhǔn)直、測(cè)角、自動(dòng)跟蹤等精密光電檢測(cè)系統(tǒng)中,探測(cè)目標(biāo)位置的連續(xù)變化已經(jīng)變得非常重要。位置敏感探測(cè)器(Position Sensitive Detector,PSD)是對(duì)入射到光敏面上的光斑能量中心位置敏感的光電感應(yīng)器件,可以利用少數(shù)幾個(gè)輸出光電信號(hào)的相對(duì)程度來計(jì)算位置信息。由其構(gòu)成的數(shù)據(jù)分析系統(tǒng)具有位置分辨率高、響應(yīng)速度快等特點(diǎn)[1];四象限探測(cè)器(Four-Quadrant photodetector,QPD)通過比較四個(gè)象限的電流來確定光斑中心在二維平面上的位置坐標(biāo),其數(shù)據(jù)分析系統(tǒng)可以探測(cè)目標(biāo)位置的連續(xù)變化,具有位置分辨率高、響應(yīng)速度快、調(diào)節(jié)方便等特點(diǎn)[2-3]。該文在對(duì)光電位置敏感器件構(gòu)成的數(shù)據(jù)分析系統(tǒng)研究的基礎(chǔ)上,開發(fā)了一套上位機(jī)軟件界面。該上位機(jī)軟件交互界面設(shè)計(jì)了供用戶選擇位置敏感器件型號(hào)及輸入系統(tǒng)修正參數(shù)的窗口,通過對(duì)串口通信和USB通信方法的研究,設(shè)置了上下位機(jī)通信控制部分,同時(shí),設(shè)計(jì)了光斑中心位置數(shù)據(jù)文本直觀顯示、模擬坐標(biāo)繪制、歷史信息保存模塊,及設(shè)備狀態(tài)顯示模塊。軟件功能全面、界面友好、操作直觀、方便,且適用于其他型號(hào)的位置敏感器件數(shù)據(jù)分析系統(tǒng)中。

1 開發(fā)工具簡介

Visual C++ 6.0擁有強(qiáng)大的功能和友好的界面,能為用戶提供一個(gè)良好的可視化開發(fā)環(huán)境,它將程序和資源的編輯、編譯、調(diào)試和運(yùn)行融為一體,且提供了大量的程序開發(fā)工具。MFC是它一個(gè)龐大的類庫,實(shí)現(xiàn)了標(biāo)準(zhǔn)的用戶接口,提供了管理窗口、菜單、對(duì)話框的代碼,可實(shí)現(xiàn)基本的輸入/輸出和數(shù)據(jù)存儲(chǔ),為用戶開發(fā)Windows應(yīng)用程序建立了一個(gè)非常靈活的應(yīng)用程序框架[4]。

在MFC中對(duì)消息的處理利用了消息映射的方法,該方法的基礎(chǔ)是宏定義實(shí)現(xiàn),通過宏定義將消息分派到不同的成員函數(shù)進(jìn)行處理。因此,在這種機(jī)制的支持下,MFC具有強(qiáng)大的消息處理能力[5]。

借助VC++提供的軟件代碼自動(dòng)生成可視化資源編輯的功能及MFC消息映射機(jī)制,可以很便捷地開發(fā)上位機(jī)軟件交互界面。

2 交互界面設(shè)計(jì)

上位機(jī)軟件交互界面包括供用戶選擇位置敏感器件型號(hào)及輸入相應(yīng)修正參數(shù)的窗口部分,上下位機(jī)通信控制部分,數(shù)據(jù)/設(shè)備狀態(tài)顯示部分。

2.1 供用戶選擇輸入的窗口設(shè)計(jì)

利用下拉式列表框控件提供供用戶選擇位置敏感器件型號(hào)的窗口。通過給其連接變量m_Type,利用m_Type.AddString()函數(shù)為列表框添加選項(xiàng),m_Type.SelectString(-1, "HY1315(Active area 1.3*1f6ADgfzH36aAG7dRSjjgWg==5mm)")函數(shù)添加默認(rèn)選項(xiàng)。軟件通過m_Type. GetCurSel()函數(shù)獲得用戶的選擇,完成相應(yīng)量程及坐標(biāo)軸范圍的改變及顯示。利用編輯框控件提供用戶輸入增益及修正系數(shù)的窗口,以完善數(shù)據(jù)處理[6]。

2.2 上下位機(jī)通信控制模塊設(shè)計(jì)

上下位機(jī)通信控制模塊是數(shù)據(jù)分析系統(tǒng)實(shí)時(shí)數(shù)據(jù)采集的核心部分。設(shè)計(jì)中采用了串口通信和USB通信兩種方式進(jìn)行數(shù)據(jù)采集與傳輸。其中,串口通信用于測(cè)試,USB通信用于實(shí)際數(shù)據(jù)傳輸。

圖1 USB通信流程圖

2.2.1 串口通信控制部分

利用單選按鈕控件提供串口號(hào)選擇窗口,通過函數(shù)GetCheckedRadioButton()獲取串口號(hào)。通過按鈕控制串口設(shè)備的狀態(tài),按鈕交互的實(shí)現(xiàn),通過MFC類向?qū)?duì)按鈕按下時(shí),觸發(fā)消息BN_CLICKED進(jìn)行攔截,并重寫對(duì)應(yīng)的消息處理函數(shù)On*Button(),在函數(shù)中完成相應(yīng)按鈕的功能。串口控制區(qū)中,“Open”、“Close”按鈕對(duì)應(yīng)的函數(shù)在獲取用戶選擇的串口號(hào)后,分別完成對(duì)應(yīng)串口的打開及關(guān)閉功能;“Start”、“Stop”按鈕通過控制參數(shù)m_SPStop控制串口通信的開始與否。借助串口類成員函數(shù)OnComm()實(shí)現(xiàn)接收字符及相應(yīng)數(shù)據(jù)處理的功能[7]。

2.2.2 USB通信控制部分

USB通信接口具有即插即用的特點(diǎn),方便與微處理器進(jìn)行聯(lián)機(jī)通信,同時(shí)USB的通信效率要遠(yuǎn)遠(yuǎn)高于RS232、RS485等通信接口。USB通信控制部分通過按鈕控制數(shù)據(jù)傳輸,根據(jù)用戶選定的位置敏感器件型號(hào),進(jìn)行相應(yīng)的數(shù)據(jù)處理。通信程序流程圖如圖1所示。

“Link”按鈕通過標(biāo)志位m_OpenFlag控制設(shè)備是否連接?!癝tart”和“Stop”按鈕通過標(biāo)志位m_stop控制數(shù)據(jù)接收與否?!癝uspand”按鈕通過參數(shù)m_pause控制數(shù)據(jù)傳輸?shù)臅和:屠^續(xù),當(dāng)按下該按鈕時(shí),按鈕改變?yōu)椤癈ontinue”字樣,同時(shí)通過調(diào)用Invalidate()函數(shù)使整個(gè)客戶區(qū)無效,這時(shí)Windows會(huì)在應(yīng)用程序的消息隊(duì)列中放置WM_PAINT消息,MFC為窗口類提供了其消息處理函數(shù)OnPaint();當(dāng)再次按下該按鈕時(shí),OnPaint()函數(shù)負(fù)責(zé)重繪窗口,從而重新進(jìn)行數(shù)據(jù)傳輸。

上下位機(jī)的數(shù)據(jù)通信通過直接調(diào)用CH375DLL.dll動(dòng)態(tài)鏈接庫實(shí)現(xiàn)。CH372是一款USB總線的通用設(shè)備接口芯片,是芯片CH375的功能簡化版,硬件成本更低,且完全兼容CH375,可以直接使用其WDM驅(qū)動(dòng)程序和動(dòng)態(tài)鏈接庫。CH372在計(jì)算機(jī)端提供了應(yīng)用層接口,即由動(dòng)態(tài)鏈接庫DLL提供的面向功能應(yīng)用的API,包括:設(shè)備管理API、數(shù)據(jù)傳輸API及中斷處理API。設(shè)備管理API包含了打開設(shè)備函數(shù)CH375OpenDevice(),關(guān)閉設(shè)備函數(shù)CH375CloseDevice();數(shù)據(jù)傳輸API包含了讀取數(shù)據(jù)塊(數(shù)據(jù)上傳)函數(shù)CH375ReadData(),寫出數(shù)據(jù)塊(數(shù)據(jù)下傳)函數(shù)CH375WriteData()等[8]。

2.3數(shù)據(jù)/設(shè)備狀態(tài)顯示設(shè)計(jì)

上位機(jī)軟件在數(shù)據(jù)傳輸過程中,借助CString類成員變量stateinfo直觀顯示設(shè)備狀態(tài)。數(shù)據(jù)接收處理后,借助Format()函數(shù),以文字形式直觀顯示光斑中心位置的橫縱坐標(biāo)值,利用繪圖函數(shù)在模擬坐標(biāo)中顯示光斑位置。借助文件實(shí)現(xiàn)數(shù)據(jù)歷史信息保存的功能,關(guān)鍵代碼如下:

GetDlgItem(IDC_RECEIVE_EDIT)→PostMessage(WM_VSCROLL,SB_BOTTOM,NULL);

CString strPath;

圖2 HY1315系統(tǒng)調(diào)試結(jié)果圖

GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);

strPath.ReleaseBuffer();

//此時(shí)strPath內(nèi)容為工程文件全路徑,如:E:\TestPro\Exam\ Test.exe

//以下函數(shù)作用是獲取最后一個(gè)"\"的位置

圖3 四象限探測(cè)器系統(tǒng)調(diào)試結(jié)果圖

int nPos=strPath.ReverseFind('\\');

//開始取全路徑

strPath=strPath.Left(nPos+1);//此時(shí)strPath保存為當(dāng)前工程的全路徑,如:E:\TestPro\Exam\

//保存文件

CFile m_rFile;

if(!m_rFile.Open("Rec.txt",CFile::modeCreate | CFile::modeWrite)) {

AfxMessageBox("創(chuàng)建記錄文件失??!");}

m_rFile.Write(m_Receive,m_Receive.GetLength());

m_rFile.Close();

3 實(shí)際調(diào)試結(jié)果

上位機(jī)軟件設(shè)計(jì)完成后,運(yùn)行程序,選擇位置敏感器件的型號(hào)為默認(rèn)選項(xiàng),即一維位置敏感探測(cè)器HY1315,連接其對(duì)應(yīng)的系統(tǒng)設(shè)備,輸入需要的增益參數(shù),選擇串口號(hào),單擊串口控制區(qū)“Open”按鈕打開串口,“Start”按鈕接收數(shù)據(jù),此時(shí)上位機(jī)界面數(shù)據(jù)、設(shè)備狀態(tài)顯示,模擬光斑坐標(biāo)結(jié)果如圖2所示。再次運(yùn)行程序,選擇四象限探測(cè)器型號(hào),即QP36(Active area 6*6mm),連接相應(yīng)系統(tǒng)設(shè)備,單擊USB通信控制區(qū)按鈕,可以控制數(shù)據(jù)傳輸設(shè)備的狀態(tài),單擊“Link”按鈕打開設(shè)備,“Start”按鈕接收數(shù)據(jù),此時(shí)上位機(jī)軟件界面結(jié)果如圖3所示。

4 結(jié)束語

針對(duì)位置敏感器件構(gòu)成的數(shù)據(jù)分析系統(tǒng),通過對(duì)串口通信和USB通信方法的研究,借助VC++提供的軟件代碼自動(dòng)生成可視化資源編輯的功能及MFC消息映射機(jī)制,設(shè)計(jì)了上位機(jī)人機(jī)交互界面。調(diào)試結(jié)果證明,該界面能夠?qū)崿F(xiàn)用戶選擇輸入,實(shí)現(xiàn)數(shù)據(jù)的上下位機(jī)通信傳輸,直觀顯示數(shù)據(jù),準(zhǔn)確繪出光斑在模擬坐標(biāo)中的位置,完成光斑位置的歷史信息存儲(chǔ)。設(shè)計(jì)為數(shù)據(jù)分析系統(tǒng)提供了一套功能全面、界面友好、操作直觀、方便的上位機(jī)軟件。應(yīng)用中只需修改對(duì)應(yīng)的數(shù)據(jù)處理,即可應(yīng)用到其他類似的數(shù)據(jù)分析系統(tǒng)中,很大程度上增強(qiáng)了系統(tǒng)的實(shí)際應(yīng)用性。該界面已用于PSD及QPD數(shù)據(jù)分析系統(tǒng)試驗(yàn)箱中。

參考文獻(xiàn):

[1] Henry J,Livingstone J.Improved position sensitive detectors using high resistivity subs- trates[J].J Phys D :Appl Phys ,2008,41.

[2] Liu Yun,De Xu,MinTan.A new pre-alignm ent approach based on four-quadrant-photo- detector for IC mask[J].International Journal of Automation and Computing,2007, 4(2): 208 -216.

[3] Guo Li,Zheng Shuang.A high-performanc -e smallsignal amplifier[J].Journal of Northe-ast Agricultuial University,2005,12(2):141-145.

[4] Wang Ziying.The design of scene simula- tion system based on MFC programming fra- mework[J].Advanced Computer Control (ICA CC).2010,V3: 302-305.

[5] 潘恒.基于VC++/MFC的麻將牌連連看程序設(shè)計(jì).[J]科協(xié)論壇:下半月,2011,25(5): 53-54.

[6] 揣錦華.面向?qū)ο蟪绦蛟O(shè)計(jì)與VC++實(shí)踐[M].西安:西安電子科技大學(xué)出版社,2005:201-204.

[7] Rong Jian,Zhao Cuilian,F(xiàn)an Zhijian,et al. Realistic 3D face reconstruction based on VTK and MFC[J]. Optoelectronics and Image Processing 2010,V(2): 145-149.

[8] 邊海龍,賈少華.USB2.0設(shè)備的設(shè)計(jì)與開發(fā)[M].北京:人民郵電出版社,2004:217- 220.

[9] 孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2008.

东丰县| 景德镇市| 麻江县| 京山县| 清徐县| 海原县| 亚东县| 百色市| 河东区| 荆州市| 济源市| 临汾市| 金溪县| 镇巴县| 太和县| 遵义市| 扶绥县| 宜都市| 南乐县| 德安县| 襄城县| 海安县| 余江县| 多伦县| 兴海县| 西昌市| 梅河口市| 五大连池市| 中牟县| 铅山县| 时尚| 衡东县| 香港 | 宜昌市| 巧家县| 武平县| 曲靖市| 富川| 麦盖提县| 乌兰察布市| 南漳县|