Robomaster 画客户端UI

本人写此博客之目的,主要用于启发后人,抛砖引玉。核心代码本人不做深究讨论。(ps:CSDN和博客园是本人长期更新的地方。在官方论坛写这个,更多的是方便晚辈查找资料。因为之前鄙人在此学习过程中,走了很多弯路,但却未找到较为适合的教程便萌发了写这个东西的想法。)

1.客户端UI该怎样画?
答:首先客户端UI本质上是裁判主控与服务器之间数据传输的体现,所以你首先得知道他们之间的通信协议。至少先把两者连接成功再说画UI的事情。
通过电源模块上的串口(裁判主控已与电源管理模块连接)与机器人主控板进行串口通信来实现收发数据
2.那该如何通过通信协议画UI呢?
答:我们首先需要明白它的协议格式:frame_header (5-byte)+ cmd_id (2-byte) +data (n-byte) +frame_tail (2-byte,CRC16,整包校验)
这其中除了数据段本身就有13个字节被分配了,它先声明枕头以及数据长度+包序号+CRC8校验:之后的cmd_id你可以把它当成一个目录索引,这个很重要不论收发数据都不能搞错。(你想啊,你原本想买本《信号与系统》,结果你却跑到人文区不停翻找,你说这能找到吗?) 之后数据段那没的说,最后再来个CRC16校验就可以了。
具体通信格式可参考:官方的 https://bbs.robomaster.com/forum.phpmod=viewthread&tid=5853 以及最新的裁判系统手册,串口协议。
3.是不是一定要客户端登录了裁判主控才能与服务器相连接?裁判主控与服务器怎样才算连接好?
答:客户端连接与否,不影响裁判主控与服务器的连接。但是当三者都连接上后,客户端可令二者短暂断开连接。(客户端突然断网,裁判主控与服务器依然连接)
因此,我们先单独把裁判主控与服务器连接好,再去连客户端。具体连接方式可参考最新的官方手册。(裁判系统,软硬件最好都是最新版)
这里有两个参考量,一个是裁判主控上可直接观察连接正常与否,另一个就是服务器Sever上会有显示。图片:

4.怎样写UI?
答:首先确定你要画的图像个数,并且最好把它们都放到同一层,然后算好你所需要发送的数据大小。数据大小:13+n*15字节(n为你的图像个数,最多一次七个图,也就是128字节。
发送方式,我是先封装好之后一次性把它发出去,速度10HZ。
先封装好frame_header这五字节,之后CRC8+交互数据段数据(确定收发机器人,二者需保持一致,画几个图)+图形配置,最后将其封装好存放到发送给串口的数组中,再CRC16。最后全部发送就可以了。
5.怎样判断客户端U接收到发送的UI?
答:强调一下,不要一来就七图,先画个直线试试水即可。(经量不要用数字)
判断方法,连接好服务器后,客户端不连也可以,盯着服务器Sever是否有反应就行了。(见图片,服务器收到UI.jpg)
在这里插入图片描述

6.可以用自定义UI搞个击杀图像吗?
答;可以,但是你先明白,图像实际上是一条线一条线发过去的。一次最多七根线,就是128字节,有九层可供你画。你算算,这个动态UI对你系统的延时有多大。有这么多带宽,我还不如用到功率限制,热量限制上面。其实,你画静态的UI的话,慢慢的画9层问题不大。动态一直发,哪受得了啊。
7.画UI有限制吗?
答;有自定义图像也不是你想放哪儿就放哪儿的。个人建议,你最好把它放在准心周围。
建议范围,坐标,x:(960±1202.75),y:(540±280);内圆:半径为100.中心坐标(960,540)。
ps:x轴我只是粗略的量了下。r1=120
2.75,r2=280,内圆120.在这里插入图片描述

8.怎样设计好UI,设计好后如何配置图像?
答:我就很菜鸡,直接用电脑自带的画图,设置好分频率:1920*1080。之后随便画画,再将其坐标记下。
配置图像参考官方手册,首先定好是直线还是圆还是,弧线。之后再确定坐标发送即可。(见图片,画图设计UI.jpg
程序部分代码,参考:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图形配置:
在这里插入图片描述
这条线就是我上面那个图,最长的那根横线。
代码部分就这样吧,我这个写得有点菜鸡就不全发出来献丑了。

注;此次教程仅交流学习,我这个代码写这个有点菜鸡了,但具体流程是这样,如果看完还是比较迷,可以参考深大19开源步兵,个人很是推荐。
蹲个UI能显示数字的兄弟。(我数字显示不了)。
转载请注明出处,谢谢。

  • 19
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值