通信协议之点阵的解析和showWindow问题的解决
来源:互联网 发布:mysql for windows 10 编辑:程序博客网 时间:2024/05/17 07:16
经过几天的学习,终于将点阵解析出来了,在这里总结一下,点阵的分布是一位Head,2位Length,一位Command,1217位Pargram,和2位checkNum,因此解析的时候只需要判断1217位Pargram是不是Length的值就行了,头是以0XAA开头的,我们只要建立一个足够大的数组存这1217位Pargram,unsigned char LatData[1216];//点阵数据(半屏),注意第一个字节为判断上半屏或者下半屏,因此不存到这个数组里面,但是检验码的时候需要把它加进去,这里完成后出现点阵分布很乱的局面,也就是显示的并不是我要的点阵,经过检查发现是我存的这个数组没有初始化,还有一个原因是下半屏发的点阵中在内容里有0XAA,由于在判断的时候没有判断好,导致只显示了一半的内容,因此在判断是不是点阵头的时候要if(buf == 0XAA && m_index ==0),这样点阵就解析完了。得到点阵解析的数据后将它放到一个结构体中,确定上半屏和下半屏的点阵数据都存放到这个结构体后,再将这个结构体存放到一个队列中,接下来就要显示点阵了,这里我们定义一个定时器,然后让他显示点阵,由于点阵半屏内容有1216*8= 9728个点,利用x=i%256;得到X轴的坐标,y=i/256;得到y轴的坐标,然后在点为1的地方画::SetPixel(Latdc,x,y,RGB(0,255,255));这里只能画256*76个点,因此我们要放大,利用TransparentBlt函数就能达到这个效果。这样点阵就显示完成了。而在我们的车载上有三种状态,Radio、CD和Aux,我们点击这几个按钮,从button中发送指定的十六进制命令给Can,写入Can后,由于之前在Can中有一个线程在不停的读串口中的数据,并且分析和解析数据,这样就能解析出我发送的字符了,在这里有个问题就是我的showWindow经常会出现不可思议的问题,我让他SW_SHOW或者SW_HIDE都没有反应。
showWindow问题终于解决了,为什么经常Window显示不出来的原因是在对窗口初始化的时候我用的是MoveWindow(0, 0, 800, 480);,而在这里我必须要用::SetWindowPos(this->m_hWnd,HWND_TOPMOST,0,0,800,480,SWP_HIDEWINDOW);这两个的区别是:
MoveWindow只能设置窗口的大小和位置;SetWindowPos拥有MoveWindow的全部功能之外,还可以设置窗口的层叠关系(如,把指定的窗口放在所有窗口的最上层--alwaysontop就可以用这个函数、或者把指定的窗口放在另一个窗口的下层,等等)。你完全可以不用MoveWindow,而只用SetWindowPos;但是,在只要设置窗口大小或位置的情况下,你也完全可以使用MoveWindow。
- 通信协议之点阵的解析和showWindow问题的解决
- 关于串口通信协议的解析,该怎么解决
- 解决在WM_ACTIVATE中调用ShowWindow有时会无效的我问题
- LED点阵屏“鬼影”现象的分析和解决
- 结构体和联合体在通信协议解析的应用
- 写通信协议遇到的问题
- ShowWindow后面UpdateWindow的作用
- 关于点阵字的实现问题
- Ituns与iphone的通信协议usbmuxd解析
- 通信协议中多字节数据的解析
- Ituns与iphone的通信协议usbmuxd解析
- Itunes与iphone的通信协议usbmuxd解析
- 点阵字体和矢量字体的区别
- 通信协议的解析:字节流协议的解析
- 通信协议的解析:字节流协议的解析
- iOS远程真机之iTunes与iPhone的通信协议usbmuxd解析
- php解析XML和AJAX时乱码问题的解决
- LED点阵屏中“鬼影”现象的分析与解决
- 【模拟\贪心】独木桥
- 《MongoDB实战》译者序
- Python正则表达式
- 297 - Quadtrees
- 崇启大桥崇明段发生重大交通事故致5人死亡-重大交通事故-崇启大桥
- 通信协议之点阵的解析和showWindow问题的解决
- error: failed to launch /Users/padsoftware/Library/Developer/Xcode/DerivedDat
- Does Java pass by reference or pass by value?
- Udev 内核机制(kobject_uevent) 性能优化 .
- 自定义Dialog动画
- wince dat文件
- 【动态规划】分配小组
- ldd3 sbull编译遇到的问题 解决(部分)方法
- JAVA 实现36进制转换数字 超级简单方法……