通信協議第一篇

   這是我第一次用MFC解析通信協議,自然問題多多,還好現在已經把該有的數據給解析出來了,包括com口,波特率的值115200,數據位 8,這些事串口基本參數的配置,還有超時參數的配置,但是對協議的整體流程還不是很清楚,首先你要打開串口,然後從串口中接收數據,這裏的讀取需要用線程去讀,每次讀一個buf,然後對這個buf進行判斷,根據通信協議的文檔判斷每一個buf是什麼意思,然後把它存到相應的字符中,便於後面的使用,說白了,這個解析的過程就是不停的對字符串進行取值,賦值的一個簡單的過程,但是注意這裏用到一個算法,右移!從一個高八位unsigned char buf轉換成十進制是buf<<8,還有一個低級錯誤是if居然使用錯了,每判斷完一個buf後應該return的,這個以後一定要注意。按鈕的圖片替換有一點要注意,m_Btn[i].LoadBitmap(BtnSkinN, BtnSkinD);有時候效果並不明顯,必要的時候需要刷一下::BitBlt(Memdc,ICON[i].left,ICON[i].top,ICON[i].Width(),ICON[i].Height(),

ClearMemDC,ICON[i].left,ICON[i].top,SRCCOPY);單獨對按鈕的圖片更新的時候刷一下,這裏剛開始點陣顯示的時候總是顯示前面運行文件的點陣界面,因此需要在Frame裏面把點陣的那塊區域刷成黑色。

接下來就是判斷收到的命令了,第4位就是命令符(通過協議文檔可以知道),我們先看

1、CAN盒將KEY信息傳給ARM主機,這裏我們看第五位的數值,不同的數值代表不同的意思,其他的都不需要操作太多,主要是0x11、0x13、0x14這三個需要發送消息給((HWND)0xffff)窗口,消息UINT msg_zhonghong= RegisterWindowMessage(L"ZHONGHONG_KEY");//N95的播放暫停快進快退等消息,可以模擬對應原車按鍵,因此只要傳遞0x96、0x94、0x95就可以實現暫停\播放、上一曲和下一曲。

2、所謂點陣就是一個十六進制的數,有八個點,因此顯示的是這每一個點的座標就好

3、debug模式下纔可以使用斷點,release模式下用斷點就是個錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章