一種嵌入式數(shù)據(jù)終端的設(shè)計(jì)方案與實(shí)現(xiàn)
與解析引擎相似,數(shù)據(jù)采集引擎把采集到的數(shù)據(jù)根據(jù)一定的協(xié)議格式設(shè)置好,通過(guò)通訊 層把數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)根據(jù)數(shù)據(jù)采集解析協(xié)議把采集數(shù)據(jù)分類(lèi)解析。從而達(dá)到終端 的功能邏輯、人機(jī)交互、外設(shè)控制,數(shù)據(jù)處理完全由上位機(jī)控制的目的。
3.3 終端的軟件實(shí)現(xiàn)流程
應(yīng)用程序的具體實(shí)現(xiàn)流程如圖3 所示。
上文已經(jīng)介紹了變量ID、STEP, ID 表示大的功能節(jié)點(diǎn),STEP 表示相應(yīng)功能點(diǎn)(ID) 下的操作步驟,如果定義為字節(jié)變量,兩個(gè)字節(jié)總共可以表示256*256=65536 個(gè)功能,完全 可以滿足一般數(shù)據(jù)采集終端的需求;RTN 是終端的狀態(tài)機(jī)變量,終端程序通過(guò)設(shè)置一個(gè)工作 狀態(tài)變量RTN 來(lái)控制系統(tǒng)的工作狀態(tài)。
(1) RTN=0 表示,所有的工作就緒,可以接受上位機(jī)的業(yè)務(wù)請(qǐng)求。
(2) RTN=1 表示,終端已正確接收到了上位機(jī)的業(yè)務(wù)請(qǐng)求。對(duì)應(yīng)流程,在這個(gè)過(guò)程中, 終端要做的事情就是設(shè)置上位機(jī)的業(yè)務(wù)請(qǐng)求。首先,分析當(dāng)前請(qǐng)求的ID 與STEP,應(yīng)用程序 實(shí)現(xiàn)不同功能間的跳轉(zhuǎn)主要由功能節(jié)點(diǎn)ID 與STEP 決定,例如:當(dāng)前ID=3,STEP=4,表明終 端當(dāng)前在業(yè)務(wù)流程的第三個(gè)功能的第四個(gè)步驟,如果ID 為特殊功能程序更新,可以實(shí)現(xiàn)終 端程序的遠(yuǎn)程更新。其次,如果ID 不是特殊請(qǐng)求,進(jìn)行功能協(xié)議分析。設(shè)置好終端當(dāng)前功 能步驟的業(yè)務(wù)請(qǐng)求后,將該數(shù)據(jù)結(jié)構(gòu)傳入事件響應(yīng)。業(yè)務(wù)響應(yīng)根據(jù)業(yè)務(wù)要求將功能劃分成不 同子模塊,調(diào)用解析引擎庫(kù)相應(yīng)的子事件處理函數(shù)。在子事件處理函數(shù)中調(diào)用板級(jí)驅(qū)動(dòng)處理 函數(shù),實(shí)現(xiàn)具體的硬件功能。設(shè)置完上位機(jī)業(yè)務(wù)功能請(qǐng)求后RTN 置為2。
(3) RTN=2 表示終端已處理好接收到的信息,并根據(jù)具體業(yè)務(wù)要求,實(shí)現(xiàn)了界面顯示, 按鍵權(quán)限的設(shè)置,按鍵轉(zhuǎn)向的設(shè)置(按鍵轉(zhuǎn)向是指:按某個(gè)按鍵后,上位機(jī)根據(jù)當(dāng)前按下的 按鍵,把相應(yīng)的功能點(diǎn)下達(dá)到終端,實(shí)現(xiàn)功能跳轉(zhuǎn)),刷卡轉(zhuǎn)向功能設(shè)置,A/D 采集設(shè)置等, 此時(shí)一直等待數(shù)據(jù)采集、按鍵動(dòng)作或刷卡動(dòng)作等觸發(fā),采集動(dòng)作完成后,通過(guò)數(shù)據(jù)采集引擎 規(guī)劃好采集到的數(shù)據(jù),提交上位機(jī),同時(shí)RTN 置零完成一次功能請(qǐng)求到響應(yīng),重新回到空閑 狀態(tài)等待上位機(jī)詢問(wèn)。
采用以上的軟件設(shè)計(jì)方案,可以在很小的硬件資源下實(shí)現(xiàn)ID×STEP 個(gè)功能的相互跳轉(zhuǎn), 而且當(dāng)業(yè)務(wù)改變時(shí),只需要配置上位機(jī)的邏輯關(guān)系與數(shù)據(jù),而無(wú)需改變終端內(nèi)部的應(yīng)用程序。 實(shí)際應(yīng)用中,終端程序只需一套,上位機(jī)只要根據(jù)終端的地址就可以決定該終端的功能流程。
4、結(jié)束語(yǔ)
本文的創(chuàng)新點(diǎn):提出了一種有別于傳統(tǒng)設(shè)計(jì)方案的嵌入式智能數(shù)據(jù)交互終端的設(shè)計(jì)方 案,該方案可以解決在業(yè)務(wù)需求改變的情況下無(wú)需改變數(shù)據(jù)采集終端的內(nèi)部程序,從而在一 定程度上解決了數(shù)據(jù)采集終端在不同行業(yè)推廣過(guò)程中的通用性問(wèn)題,縮短了整個(gè)系統(tǒng)的開(kāi)發(fā) 周期,也給系統(tǒng)的維護(hù)和升級(jí)帶來(lái)了很大的方便。同時(shí)本文提出的終端程序設(shè)計(jì)框架還可以 在有限硬件資源的情況上實(shí)現(xiàn)256*256 個(gè)業(yè)務(wù)功能界面的相互跳轉(zhuǎn)。
該嵌入式智能數(shù)據(jù)交互終端系統(tǒng)已在廣東省某大型企業(yè)試運(yùn)行后,運(yùn)行效果良好,現(xiàn)已 大批量投入使用,企業(yè)對(duì)該系統(tǒng)的日常維護(hù)和業(yè)務(wù)升級(jí)都非常方便,相比于該企業(yè)原先把業(yè) 務(wù)流程及數(shù)據(jù)采集項(xiàng)定制成程序固化在終端內(nèi)的傳統(tǒng)設(shè)計(jì)方案,新方案大大降低了企業(yè)在業(yè) 務(wù)升級(jí)和業(yè)務(wù)流程發(fā)生變化時(shí),要頻繁修改終端或終端程序與上位機(jī)應(yīng)用程序所帶來(lái)的生產(chǎn) 成本,每年直接經(jīng)濟(jì)效益至少20 萬(wàn)元以上,而且還提高了企業(yè)勞動(dòng)效率。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論