智能車運(yùn)動(dòng)狀態(tài)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)
下位機(jī)向上位機(jī)傳輸?shù)氖且悦?0ms傳輸一組包涵了光電編碼器值(speed),電池電壓(battary),舵機(jī)轉(zhuǎn)角值(angle),傳感器當(dāng)前狀態(tài)(sensor)的數(shù)據(jù),如果是在理想狀態(tài)下,上位機(jī)接收到的應(yīng)是上述各值循環(huán)出現(xiàn)的周期性數(shù)據(jù),此時(shí)上位機(jī)只需將這些數(shù)據(jù)按順序裝入各自的數(shù)組并畫圖即可。但在實(shí)際的無線傳輸過程中可能出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。因此加入適當(dāng)?shù)臄?shù)據(jù)校驗(yàn)是必要的,否則會(huì)出現(xiàn)數(shù)據(jù)裝入錯(cuò)誤,造成畫圖的混亂。我們?cè)趯?shí)際過程中是在每組數(shù)據(jù)中加入0x00,0xff的幀頭,當(dāng)數(shù)據(jù)出現(xiàn)錯(cuò)誤時(shí),則舍棄該幀數(shù)據(jù)。
數(shù)據(jù)的無線收發(fā)部分采用的是SUNRAY公司的QC96型無線收發(fā)模塊,該模塊可以收發(fā)波特率為9600的串行數(shù)據(jù),距離可達(dá)100m。
上位機(jī)的數(shù)據(jù)接收及處理
上位機(jī)部份主要四個(gè)模塊來構(gòu)成:
·數(shù)據(jù)接收模塊
功能:上位機(jī)通過串口采集下位機(jī)發(fā)送的原始數(shù)據(jù)。
實(shí)現(xiàn):VC++中實(shí)現(xiàn)串口通信一般有二種方式,分別是MSComm控件和Windows API函數(shù)。MSComm簡(jiǎn)潔易用,適用于比較簡(jiǎn)單的系統(tǒng),Windows API函數(shù)應(yīng)用較廣但比較復(fù)雜繁瑣,由于此模塊的串口通信功能相對(duì)簡(jiǎn)單,本系統(tǒng)采用前者。在實(shí)際過程中使用的是事件驅(qū)動(dòng)的方式,這種方法響應(yīng)及時(shí),可靠性高,并且比查詢法占用更少的資源。
·存儲(chǔ)模塊:
功能:可直接存儲(chǔ)采集到的原始數(shù)據(jù),以備以后更多的分析處理。
實(shí)現(xiàn):在每個(gè)OnComm事件被觸發(fā)后,將串口接收到的數(shù)據(jù)直接存入temp臨時(shí)文件,并且可以在用戶的要求下將temp臨時(shí)文件里的值存儲(chǔ)到指定文件。
·數(shù)據(jù)的分析和處理模塊:
功能:將采集到的原始數(shù)據(jù)進(jìn)行用戶選定的分析和處理,主要包括丟棄錯(cuò)誤數(shù)據(jù),以及去除幀頭并進(jìn)行數(shù)據(jù)裝入任務(wù),同時(shí)也可以對(duì)已保存的數(shù)據(jù)進(jìn)行分析和處理。
評(píng)論