feat: Service Registry + Bridge 解耦架构 + 全工程代码清理

## 架构升级:Service Registry + Bridge 模式

- 新增 PluginSDK/IPluginServices.h:10 个纯虚服务接口(IDataProvider/ILinkProvider/...)
- 新增 MavLinkServiceBridge:单 QObject 实现全部服务,隔离 MavLinkNode 依赖
- 升级 PluginManifest:支持 plugin.json 的 provides/consumes 声明式依赖
- 实现 ExtensionHost::autoWire():元对象自省自动连接信号槽
- 集成到 AppController:initModules() 中创建桥接器并注册到 ServiceRegistry
- CockpitPlugin 演示服务发现:initialize() 中通过 PluginContext 查找服务

## 代码清理

- Plugins/opmap:~280 行死代码(waypointsetting 100行注释块/tilematrix 54行/等27个文件)
- Plugins/MavLinkNode:~200 行 GBK 乱码注释翻译为 UTF-8 + 12 行注释死代码
- Plugins/ToolsUI:~222 行死代码(ECU.cpp 82行/INS.cpp 113行/Parse/ToolsUI 等)
- StatusUI/Setting/MissionUI:~65 行注释死代码
- Cockpit/leftladder.cpp:10 处 GBK 乱码翻译为中文
- 清理头文件注释掉的 #include(19 处)、空 if-else 分支、注释变量声明

## 编译验证

- [100%] Built target GCS 零错误
- 运行时 timeout 3s 正常退出,无崩溃
This commit is contained in:
2026-06-01 09:46:36 +08:00
parent 6fbb96dd9a
commit e7cf44504c
2188 changed files with 549867 additions and 45008 deletions
+243
View File
@@ -0,0 +1,243 @@
# 已完成
* <b>航点下载经纬度超限要处理</b>
# 想法
* 将界面拖出做成库
* 界面内的设置做成统一的接口,也做成库
* mavlink解析模仿nspector,做一个自动解析
* 设置界面模仿vscode的解析,支持ui和json,并且是下滑式
* 多航线任务
* 声音可以配置
* 航线平移
* 航点经纬度显示
* 连接界面需要早点完善
* 姿态显示,搞成一个一个模块,这样好响应鼠标事件
* 工具箱的接口采用安装的方式,这样可以导入和管理不同的工具
* 参数出现unknown是因为*char引起的
# 参数设置
* 串口连接
* udp连接
* 地面站ID设置
* 地图选择
* 地图缓存地址
* 指令文件地址
# 优先
* √等级告警
* √界面全部中文(所有说明)
* √文本显示白色,按键显示棕色
* √导航显示
* √小数点全部显示一位
* √颜色饱和度降低
* √按键颜色
* √绿色#98FB98
* √红色#EE9572
* √警示:正色
* √弹出日志界面
* √连接界面读取上一次没有做好
| xxx | cmd | par1 | par2 | par3 | par4 | par5 | par6 | par7 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| 纵向自动驾驶模式 | 180 | 1 | 1自动航线/2强制升降速率/3强制航迹角/4强制空速/5强制高度/6强制相对高度 | | | | | |
| 速度模式选择 | 180 | 2 | 0表速/1真空速/2马赫数/3快升速度/4下滑速度 | | | | | |
| BMU | 180 | 102 | bool | doc | doc | | | |
| ECU | 180 | 103 | doc | doc | | | | |
| CCM | 180 | 104 | ch | bool | time | | | |
| DAS | 180 | 105 | NUM | | | | | |
| SER | 180 | 106 | RA | RE | RU | LA | LE | |
|(紧急)开伞| 180 | 107 | 107/0| | | | | |
| 场高 | 889 | 0/1/2| | | | | | |
| 解锁 | 400 | 1 | | | | | | |
| 上锁 | 400 | 0 | | | | | | |
| 速度空速 | 178 | 0 | 值 | -1 | | | | |
| 速度地速 | 178 | 1 | 值 | -1 | | | | |
| 速度升降速率 | 178 | 2 | 值 | -1 | | | | |
| 设置油门 | 178 | -1 | | 油门值 | | | | |
| 空速管 | 20005 | mos开关(0/1) | 0/1 | 0/1 | 0/1 | | | |
| 风标归零(standby | 20006 | | | | | | | |
| bit测试模式选择 | 20007 | 0舵面测试/1增稳测试/2手控测试 | | | | | | |
| 20008 | ch | A(deg) | start/hz | stop/hz | K/(hz/s) | |
舵机顺序 le la ru re ra
# 疑问
* √HUD界面,侧偏距正负,高度差正负,升降速率正负
* √combox设置要判断是否有数
*
* √界面上
1. √再飞行界面显示增加 空速管加热,发动机停车,工具界面,增加电池剩余百分比
2. 日志显示所有操作
√伺服,状态下是不对
√舵机发送地面自检延时过大
√航点显示经纬度,指令点不需要显示
√去除真实高度显示
状态框跟随飞行,显示速度和高度经纬度
×多条航线
√舵面标定和检查
√惯导极性
√惯导和gps相关参数
√惯导选择,盖子不改颜色
√加航向角
√航线界面,导入时,航点不对,保存和导入不对,下载不对,上传
√界面加一个舵机指令
√舵机显示 int16
√指令界面加一个航点切换的下拉框
√指令按键需要自己实现一下,去掉键盘响应功能
航迹大于1000个点,就清除航迹多余的点
√ 一旦有新的设备连接就读取一次参数
参数查找功能
自动连接
遥控器
无人机图片上显示无人机编号
√ 马赫数2位小数
√表速
√真空苏
√地速
√马赫数
现在抬头显示器空速显示小于3ma,需要增加到9999米每秒
要求:人能够看得懂,没有隐藏操作
数据记录,要求5分钟存一次,这样内存就不会溢出(qgc存在这个溢出问题)
√scope 清除之后没有从零开始
√纵轴自适应,底层根据当前框内最小值修改,最大值根据框内最大值修改
√升降速率极性,目标没有
√数据链丢失,全部红色
(飞控)惯导极性需要检查
√电池显示顺序
√舵面需要单独归零,设置时保持以前的舵面不动
√航迹角数据来源确认
√状态界面复制到曲线图上
√海拔显示百位出现10,不允许大于9
√状态-俯仰显示问题
√状态-舵面范阔和指令有区别
√状态-表速
√状态-升降速率极性
√仪表盘有Nan 要去除
惯导:
内部惯导,滚转俯仰位置不对,角速度不对
SBG,需要设置坐标轴,坐标系存在问题
√油压,剩余油量
√曲线自适应,最小值无法自适应
√数据首次输入需要跳转到当前界面
×曲线界面线型设置没有成功
√ins 角速度单位 rad。deg
√曲线界面 做个checkbox 选择不同传感器
√曲线最大最小取整
指令按键位置有点奇怪
mavlink 不要用科学计数法
√指令界面弹出置顶
√伺服界面
√舵机状态显示顺序不对。
√舵机指令不要恢复
串口插入后打开界面,会导致短时间卡死,甚至死机(使用底层解决,插入时立即检查,)
自动连接
√GPS FIX如何计算?
√固定界面
√航迹改成0-360
空速管加热状态没有
参数清除后没有被清除
编写好之后需要对一下单位
连接保存有问题,需要查一查
地面站设置ID
历史指令显示两条,
日志里面显示所有操作
自定义地图缓存