【分享帖】自定义UI界面
19169
0
29
2021-04-08
自定义UI[attach]30069[/attach]
声明:写这个blog的目的只是为了总结我弄自定义UI的过程
首先,我们需要根据裁判系统协议文档,发送的帧头需要经过CRC8校验,帧尾填整包的CRC16校验。
需要注意的是 客户端绘图功能是很容易丢包的,所以我们添加图形的频率不宜过高
通信最重要的就是协议,所以,我们就需要清楚明白它的协议格式是什么样的:
对应通信协议格式 frame_header(5-byte)+cmd_id(2-byte)+data(n-byte)+frame_tail(2-byte,CRC16,整包校验)
frame_header帧头中的SOF是固定为0xA5的,datalength在后面的计算中需要认真去核对,因为一但算错了,整个协议就会发不出去的。(我也曾经因为这个问题找了很久的BUG)
[attach]30070[/attach]
然后就是cmd_id命令码了,机器人信息交互固定都是0x0301,按着官方给的协议写就行了,
然后关于data这一数据段:我们需要知道它的数据段的段头结构:内容ID,发送者ID,以及接收者ID(总不能发到别人到对面去吧)[attach]30071[/attach]
设计UI的时候我们需要操作的就是下图数据段中的那部分。假设你要画一个图,我们需要怎么做?
[attach]30072[/attach]
下面框中的部分就是我们要操作的内容
关于图形配置官方已经给得很清楚了,按照官方协议上给的操作就行了。如图:
[attach]30073[/attach]
这一段代码是下面示例图中的字符:Shoot_LV:的示例
我们弄完图形配置之后还需要做的就是打包发送,我是用一个数组将我配置好的信息存起来,然后通过串口发送给电源管理然后再转发给我的客户端。
注意帧尾要填整包CRC16的校验
对于在服务器中没有看见上传数据的字样:像红色3号步兵传给客户端43之类的,那么就得好好检查一下自己的协议了,一般来说,协议没问题的话,在服务器上也会有显示。
对于在服务器看见了上传字样,但是客户端没有显示的话,首先需要看看是不是自己发送的数据是否在不能覆盖的区域,第一次实验的话可以整个start_x=600,start_y=600,然后end的话就给100-200试试(反正也只是试试自己画图的可行性,不需要对位这么仔细) 。
然后测试UI代码的时候需要做的事:
首先要把主控跟电源管理连起来,确保裁判系统能正常运行,然后串口线接学生端User,其他的东西完全不需要,也不会有影响,图传跟自定义UI是没有必然联系的!!然后将代码烧进板子就行了,测试的时候建议不要触发发送,最好就是一直发,将发送函数放在任务或者定时器都行,然后在服务器上去看发送情况,等服务器能看到上传信息了再打开客户端也不迟。
车跟服务器记得要先连上,服务器会有什么什么请求登录,然后什么什么登陆成功的字样的,完成好这步之后再进行操作。
————————————————
版权声明:本文为CSDN博主「Autism_Huang」的原创文章,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dbqwcl/article/details/115518917
声明:写这个blog的目的只是为了总结我弄自定义UI的过程
首先,我们需要根据裁判系统协议文档,发送的帧头需要经过CRC8校验,帧尾填整包的CRC16校验。
需要注意的是 客户端绘图功能是很容易丢包的,所以我们添加图形的频率不宜过高
通信最重要的就是协议,所以,我们就需要清楚明白它的协议格式是什么样的:
对应通信协议格式 frame_header(5-byte)+cmd_id(2-byte)+data(n-byte)+frame_tail(2-byte,CRC16,整包校验)
frame_header帧头中的SOF是固定为0xA5的,datalength在后面的计算中需要认真去核对,因为一但算错了,整个协议就会发不出去的。(我也曾经因为这个问题找了很久的BUG)
[attach]30070[/attach]
然后就是cmd_id命令码了,机器人信息交互固定都是0x0301,按着官方给的协议写就行了,
然后关于data这一数据段:我们需要知道它的数据段的段头结构:内容ID,发送者ID,以及接收者ID(总不能发到别人到对面去吧)[attach]30071[/attach]
设计UI的时候我们需要操作的就是下图数据段中的那部分。假设你要画一个图,我们需要怎么做?
[attach]30072[/attach]
下面框中的部分就是我们要操作的内容
关于图形配置官方已经给得很清楚了,按照官方协议上给的操作就行了。如图:
[attach]30073[/attach]
这一段代码是下面示例图中的字符:Shoot_LV:的示例
我们弄完图形配置之后还需要做的就是打包发送,我是用一个数组将我配置好的信息存起来,然后通过串口发送给电源管理然后再转发给我的客户端。
注意帧尾要填整包CRC16的校验
对于在服务器中没有看见上传数据的字样:像红色3号步兵传给客户端43之类的,那么就得好好检查一下自己的协议了,一般来说,协议没问题的话,在服务器上也会有显示。
对于在服务器看见了上传字样,但是客户端没有显示的话,首先需要看看是不是自己发送的数据是否在不能覆盖的区域,第一次实验的话可以整个start_x=600,start_y=600,然后end的话就给100-200试试(反正也只是试试自己画图的可行性,不需要对位这么仔细) 。
然后测试UI代码的时候需要做的事:
首先要把主控跟电源管理连起来,确保裁判系统能正常运行,然后串口线接学生端User,其他的东西完全不需要,也不会有影响,图传跟自定义UI是没有必然联系的!!然后将代码烧进板子就行了,测试的时候建议不要触发发送,最好就是一直发,将发送函数放在任务或者定时器都行,然后在服务器上去看发送情况,等服务器能看到上传信息了再打开客户端也不迟。
车跟服务器记得要先连上,服务器会有什么什么请求登录,然后什么什么登陆成功的字样的,完成好这步之后再进行操作。
————————————————
版权声明:本文为CSDN博主「Autism_Huang」的原创文章,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dbqwcl/article/details/115518917
文章标签
请问这篇文章对你有用吗?
【分享帖】自定义UI界面