#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
顾问rjgawuie
2021-4-12 13:17:57 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
首先感谢论坛里其他几位坛友的帖子,参考了他们的帖子之后,反复折腾了3,4天,终于把自定义UI调出来了,尽管目前还是有一些小问题,但是还算是能用。。(求大佬轻喷)
因为要通过UI向操作手反馈一些数据,所以UI的存在还是很有必要的,于是我开始上手扒裁判系统的协议。这个协议和TCP/IP协议类似,但是简单很多,所以构思并不费劲,但是邪门的是我自己写的数据结构居然 不 能 用。。。反复折腾了几天,最后终于还是把官方协议手册上的结构体拷上去了。

工欲善其事必先利其器,看到不少RM战友还是没能调出自定义UI来,所以说我把这些代码封装成库的形式,供大家使用。

这些代码都是在联盟赛程序上扒下来的,修改了一些小地方,还没经过测试。
另外,这个库无法在客户端界面上画出字符和浮点型数据,还有无法一次性刷新7个图形,希望大佬们修改以后拜托一定要回帖告知原因,球球了。


废话不多说,直接开始正题

先上示例代码
  文件开头部分
#include "RM_Cilent_UI.h"
#include "string.h"

Graph_Data G1,G2,G3,G4,G5;


main函数内容
memset(&G1,0,sizeof(G1));
memset(&G2,0,sizeof(G2));
memset(&G3,0,sizeof(G3));
memset(&G4,0,sizeof(G4));
memset(&G5,0,sizeof(G5));

Line_Draw(&G1,"001",UI_Graph_ADD,9,UI_Color_Orange,3,960,570,960,200);
Rectangle_Draw(&G2,"002",UI_Graph_ADD,9,UI_Color_Pink,5,700,450,1000,650);
Arc_Draw(&G3,"003",UI_Graph_ADD,9,UI_Color_Green,70,180,5,960,400,80,80);
Circle_Draw(&G4,"004",UI_Graph_ADD,9,UI_Color_Cyan,8,700,700,100);
Line_Draw(&G5,"001",UI_Graph_ADD,9,UI_Color_Orange,3,1100,800,700,800);
UI_ReFresh(5,G1,G2,G3,G4,G5);                          //绘制图形

while(1)
{
        delay(700);
    Circle_Draw(&G4,"004",UI_Graph_Change,9,UI_Color_Pink,8,700,700,100);
    UI_ReFresh(1,G4);
        delay(700);
        Circle_Draw(&G4,"004",UI_Graph_Change,9,UI_Color_Cyan,8,700,700,100);
    UI_ReFresh(1,G4);                                                     //刷新圆形颜色
}

UI.rar

5.69 KB, 下载次数: 841

跳转到指定楼层
推荐

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
顾问bbq
2021-4-14 11:41:25 只看该作者
rjgawuie 发表于 2021-4-14 06:56
服务器有消息吗,有的话先检查Data字段,因为这个字段是发给客户端解析的,如果服务器有反应说明信息已经 ...

已经解决了,但是又出现了新的问题,我发送给最新的客户端的字符有乱码,但是给旧版的客户端发字符就不会有乱码,懵逼。。。。
回复 支持 3 反对 0

使用道具 举报

推荐

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
顾问rjgawuie
 楼主| 2022-4-4 17:53:36 只看该作者
木匠马克一 发表于 2022-3-28 22:30
挖坟抱歉,请问浮点型和七个图形的问题解决了吗

不好意思兄弟,一直没看论坛也没回消息。这两个我们一直没有用,所以没有改,这个赛季还有其他事情做所以一直没更新,浮点数的话请用sprintf格式化字符串实现吧,实在抱歉!!!
回复 支持 2 反对 0

使用道具 举报

推荐

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
梯队队员断缕
2021-4-14 09:22:26 来自手机 只看该作者
自己的结构体不管用会不会是因为内存对齐导致的,因为官方的结构体用了packed来对齐内存
回复 支持 2 反对 0

使用道具 举报

推荐

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
梯队队员会玩stm32的菜鸡
2023-4-15 17:18:47 只看该作者
如何确定绘制图形的位置?
回复 支持 0 反对 1

使用道具 举报

推荐

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
顾问bbq
2021-4-18 10:54:57 只看该作者

还是仔细对照协议写,有乱码的原因是我自己配置的字符串长度不是30,字符串长度按照协议给它分配一个30个字节的空间即可
回复 支持 1 反对 0

使用道具 举报

推荐

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
步兵ArFFy
2021-4-16 15:17:25 只看该作者
rjgawuie 发表于 2021-4-15 13:37
头文件里有机器人和客户端选择的宏,别忘了改/狗头

字符确实发不了
回复 支持 1 反对 0

使用道具 举报

19#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
梯队队员djiuser_d7n3Cdv
2023-5-8 23:36:31 只看该作者
已解决
回复

使用道具 举报

18#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
顾问rjgawuie
 楼主| 2023-4-18 13:21:47 只看该作者
好长时间没来论坛,今天看见群里有兄弟还在用这个库,这个库确实问题有不少,今天看到了简单总结一下:
  当时我写这个库的时候为了一个库给好几个机器人用,所以涉及到库函数和寄存器的东西能不用就不用,所以串口发送用的是轮询发送,如果轮询周期比较短是没有问题的,但是长了就不好说了,建议大家用的时候改个中断发送,如果是HAL库的话最好还是不要用库函数一个字符一个字符的发,裁判系统收数据的时候应该是用空闲中断来接收数据包的,一帧数据中间断开的话可能会导致收不到。
  另外就是画字符串的问题,字符串字符个数传参应该是字符个数+1,1是‘\0’,否则可能会出乱码。
  还有有些兄弟说串口配好了还是没有图形,如果服务器有提示收到包的话那可能是数据的问题,可以查一下机器人ID之类的对不对,如果没有的话建议查一下第一条、接线和wifi有没有配对。

这个库应该很长一段时间不会更新(因为要考研),明年这个时间如果有条件的话我会把这个坑填完。
17#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
梯队队员会玩stm32的菜鸡
2023-4-5 18:01:24 只看该作者
楼主你好,这个Graph_Data G1,G2,G3,G4,G5;是用于干什么的?
16#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
正式队员木匠马克一
2022-3-28 22:30:38 只看该作者
挖坟抱歉,请问浮点型和七个图形的问题解决了吗
15#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
梯队队员Linco
2021-6-23 14:48:00 只看该作者
谢谢大佬
回复

使用道具 举报

14#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
正式队员M清秋M
2021-4-25 23:12:41 只看该作者
你们怕是没有好好看程序啊吧,程序里面的那个Char_ReFresh中的Data_ID要改成你们的那个机器人的ID
13#

[开源汇总] 【RM2021-自定义UI开源】山东理工大学

[复制链接]
英雄南新小白
2021-4-23 13:47:13 只看该作者
插眼,看看这个不会
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表