您当前的位置: 首页 >  ui

Autism_Huang

暂无认证

  • 6浏览

    0关注

    27博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Robomatser 画自定义UI界面

Autism_Huang 发布时间:2021-04-08 14:45:42 ,浏览量:6

自定义UI

在这里插入图片描述

声明:写这个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) 自定义帧头 然后就是cmd_id命令码了,机器人信息交互固定都是0x0301,按着官方给的协议写就行了, 然后关于data这一数据段:我们需要知道它的数据段的段头结构:内容ID,发送者ID,以及接收者ID(总不能发到别人到对面去吧) 在这里插入图片描述 设计UI的时候我们需要操作的就是上图数据段中的那部分。假设你要画一个图,我们需要怎么做? 在这里插入图片描述 上面框中的部分就是我们要操作的内容 关于图形配置官方已经给得很清楚了,按照官方协议上给的操作就行了。如图: 在这里插入图片描述 这一段代码是上面示例图中的字符:Shoot_LV:的示例 我们弄完图形配置之后还需要做的就是打包发送,我是用一个数组将我配置好的信息存起来,然后通过串口发送给电源管理然后再转发给我的客户端。 注意帧尾要填整包CRC16的校验

对于在服务器中没有看见上传数据的字样:像红色3号步兵传给客户端43之类的,那么就得好好检查一下自己的协议了,一般来说,协议没问题的话,在服务器上也会有显示。 对于在服务器看见了上传字样,但是客户端没有显示的话,首先需要看看是不是自己发送的数据是否在不能覆盖的区域,第一次实验的话可以整个start_x=600,start_y=600,然后end的话就给100-200试试(反正也只是试试自己画图的可行性,不需要对位这么仔细) 。

然后测试UI代码的时候需要做的事: 首先要把主控跟电源管理连起来,确保裁判系统能正常运行,然后串口线接学生端User,其他的东西完全不需要,也不会有影响,图传跟自定义UI是没有必然联系的!!然后将代码烧进板子就行了,测试的时候建议不要触发发送,最好就是一直发,将发送函数放在任务或者定时器都行,然后在服务器上去看发送情况,等服务器能看到上传信息了再打开客户端也不迟。

车跟服务器记得要先连上,服务器会有什么什么请求登录,然后什么什么登陆成功的字样的,完成好这步之后再进行操作。

关注
打赏
1655915590
查看更多评论
立即登录/注册

微信扫码登录

0.0380s