通信协议第一篇

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值