RoboMaster

标题: 【RM2021-辽宁科技大学-自定义UI从入坑到入土 动态装甲板】 [打印本页]

作者: ArFFy    时间: 2021-4-19 20:37
标题: 【RM2021-辽宁科技大学-自定义UI从入坑到入土 动态装甲板】
    首先,感谢山东理工大学的UI开源文档【山东理工大学】自定义UI开源,让我少走了许多弯路,并且在其基础上小小完善了封装的UI库文档,不得不说山理工的封装还是极其优秀的。其次,感谢帅帅的麦兜子淇的帮助,让我完善了代码,理清了行文思路。为了解决很多童鞋配置UI错误的问题,我得到山理工的首肯后,写了这篇站在巨人的肩膀上的开源帖子,希望能对大家有所帮助。作为辽宁科技大学COD战队大四的老学长,四年里第一次发开源文档,还是很忐忑的,我尽量以简明扼要的语言来介绍怎么使用UI开源,并且部署静态UI和动态UI。也希望此贴不要沉在深海里,让更多的小伙伴少走弯路,为比赛省下宝贵的时间。希望各位大佬,有更好的提高UI帧率的方法来一起研讨。

    开门见山讲方法,先下山理工的开源文档,[attach]30147[/attach]看到这个下载量,也知道很多小伙伴卡在了这里。
下载解压完成之后,[attach]30148[/attach],把这源文件和头文件添加进keil,过程不再赘述,在使用之前,先来做一下修改,[attach]30155[/attach],这样就可以配置发送者和接收者的ID了,修改为对应的兵种和操作手就行,别着急,还有个地方要修改一下[attach]30154[/attach],推送字符的这个也需要改下ID,改成字符的,相应的去.h文件中寻找就可以,这里不做太多解释。接下来必要的初始化[attach]30149[/attach]这样做好必要准备之后就可以写自己的UI了,[attach]30150[/attach],函数名已经被封装在.h头文件,可以自行调用,值得一提的是,动态UI需要先在初始化里添加一下图形,才可以显示,原因未知。
首先做出来静态装甲,[attach]30151[/attach],一个瞄准镜,一个摩擦轮标志位,还有四块装甲板,并用字母标明装甲块,接下来就是图像的旋转了,旋转的时候默认云台为基准,用底盘正装甲朝向角度与云台枪口的差值来模拟装甲板的移动,可以用二维旋转矩阵,先平移到零点后旋转差值角度再平移回屏幕中心,但考虑到计算的问题,就拿上图半径直接生成的装甲所在坐标圆正余弦变换就可以,这里需要说明一下,电脑的坐标零点是左上角,UI的坐标零点是左下角,要注意一下,[attach]30152[/attach] 这是装甲受打击的视频[attach]30153[/attach],会标明装甲提示操作手。
其他需要注意的地方就是通信频率不能过快,经过各位论坛大佬的调教,一般10hz就可以,一共可以发送7*9=63个初定义图形,后续可以修改删除,暂时未发现图层覆盖的问题。
为了保护山理工的开源和方便广大工程师下载完善代码,将修改后源库和动态UI收费1金币,谢谢大家了,望体贴
[attach]30157[/attach]


作者: rjgawuie    时间: 2021-4-19 20:47
顶顶,想法不错
作者: 泪花故    时间: 2021-4-19 21:14
感谢开源,我方操作手说非常奈斯!
作者: 赫萝    时间: 2021-4-19 21:31
大家多多支持呀
作者: Tune    时间: 2021-4-19 21:45
虽然我是哨兵,但觉得很赞
作者: summerpray    时间: 2021-4-19 22:01
顶!感谢大佬

作者: 木木白    时间: 2021-4-19 23:03
顶顶顶顶顶
作者: AKA_firework    时间: 2021-4-19 23:05
看起来感觉挺不错,有空试试,谢谢大佬
作者: djiuser_11jmUHZ    时间: 2021-4-19 23:09
感谢大佬救我于画UI的水深火热之中
作者: 帅帅的麦兜    时间: 2021-4-20 10:28
本帖最后由 帅帅的麦兜 于 2021-4-20 10:30 编辑

动态UI,本质就是不断地修改原先的图形(需图姓名相符合,图配前三位是图形名字)。故,你首先需要初始化图像才可。不然一上来就修改图形,但它那边又没收到相应的图形名自然就修改不了了。





作者: 帅帅的麦兜    时间: 2021-4-20 10:32
这个动态装甲显示非常nice!
作者: ArFFy    时间: 2021-4-20 10:49
本帖最后由 ArFFy 于 2021-4-20 10:50 编辑
帅帅的麦兜 发表于 2021-4-20 10:32
这个动态装甲显示非常nice!

受教了,你所说的需要添加图形,我是知道的,我测试的时候,只需要一次添加,然后你再把添加图形删了,再修改图形下载程序,还能运行,正常出图,就很迷,所以我也不太敢说必须要添加图形。也可能是裁判系统会保留添加图形的初始化,或许需要清除一下自定义UI,这个当时没有仔细探究,只是防止出错,在文档里这样注明
作者: 胜天半子    时间: 2021-4-20 16:03
感谢大佬的代码总结
作者: 叶子铣剪锤    时间: 2021-4-20 20:17
机械队员路过点个赞!
作者: 帅帅的麦兜    时间: 2021-4-21 12:02
ArFFy 发表于 2021-4-20 10:49
受教了,你所说的需要添加图形,我是知道的,我测试的时候,只需要一次添加,然后你再把添加图形删了,再 ...

哦哦,原来如此,受教了。
我的解决方法是:不删除,将其图形空化,也就是将数据及其配置定时清零化,自然就不会显示。
作者: 青灯不归客    时间: 2021-5-19 15:33
求问一下怎么发送整型和浮点型数据啊  其他的我都搞懂了  就是搞不出来整型和浮点型
作者: 赤道便于    时间: 2024-3-16 23:29
请问各位大佬,按这个文件写的话,动态ui要烧入一次才显示一个字符,还要L的字符一直显示不出来,这是为什么呢,而且装甲板的圆圈不会动哎




欢迎光临 RoboMaster (https://bbs.robomaster.com/) Powered by Discuz! X3.2