通信协议第一篇

   这是我第一次用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模式下用断点就是个错误

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