Няма описание

zhuts fdfad4f24a Track distribution and add interface screenshots преди 17 часа
dist fdfad4f24a Track distribution and add interface screenshots преди 17 часа
generated c6b47ac5f4 feat: add VK MAVLink telemetry monitor преди 20 часа
image fdfad4f24a Track distribution and add interface screenshots преди 17 часа
mavlink @ 095510067e c6b47ac5f4 feat: add VK MAVLink telemetry monitor преди 20 часа
tests 53397c03ce Fix voltage display and request flight controller SN преди 17 часа
.gitignore fdfad4f24a Track distribution and add interface screenshots преди 17 часа
.gitmodules c6b47ac5f4 feat: add VK MAVLink telemetry monitor преди 20 часа
README.md fdfad4f24a Track distribution and add interface screenshots преди 17 часа
app.py 53397c03ce Fix voltage display and request flight controller SN преди 17 часа
build.ps1 c6b47ac5f4 feat: add VK MAVLink telemetry monitor преди 20 часа
generate_dialect.py c6b47ac5f4 feat: add VK MAVLink telemetry monitor преди 20 часа
requirements.txt c6b47ac5f4 feat: add VK MAVLink telemetry monitor преди 20 часа

README.md

VK 飞控遥测监控

基于 PyQt6 的 Windows 串口上位机。除请求飞控 SN 外只接收 MAVLink,不发送心跳、参数、解锁或飞行控制命令。支持 MAVLink 2 VKFly 自定义方言及其包含的标准消息;校验失败的帧丢弃。连接后从串口收到的数据源并不自动区分多架飞机,多机共用链路时请勿把仪表作为单机状态依据。

界面展示

未连接时的初始界面:

上位机未连接界面

连接飞控后的遥测监控界面,包含姿态、电源和消息字段:

上位机连接飞控界面

连接界面截图来自真实飞控遥测,地理位置和 SN 已隐藏;实际显示内容以飞控返回的数据为准。

功能

  • 选择串口和波特率,显示连接状态。
  • 图形化姿态仪、机体朝向避障雷达;显示位置、地速、高度、GPS、电池、惯导状态和可用的 SN。
  • 消息观察器列出收到的所有已识别消息、ID、数量和最近状态;点击可查看原始字段。3 秒未更新的消息标记为陈旧。
  • 电源卡片使用最后收到的 SYS_STATUS 或 VK_BMS_STATUS:前者按 VKFly 协议的 cV 换算(不同于标准 MAVLink 的 mV),后者按 mV 换算;两者分别表示飞控供电与 BMS 电压。
  • 连接后首次收到飞控心跳时,向该飞控发送一次 MAV_CMD_REQUEST_MESSAGE,请求飞控的 VK_COMP_VERSION;收到回复后显示其中的 SN。未回复时可点击“重新请求 SN”,不自动请求其他消息;多机链路会选择第一个识别到的飞控。
  • 避障图只按 BODY_FRD(12)解释数据,过滤协议无效距离;其他坐标系不画图。10m 是显示量程,不代表传感器上限。

安全说明:此软件是监视工具,不能替代地面站及飞行安全检查。页面卡片暂显示最后收到的值;判断实时性请看消息观察器中的更新时间。不要在旋翼安装螺旋桨时进行桌面调试。

从源码运行

在仓库根目录(先安装 Python,并初始化子模块):

git submodule update --init --recursive
python -m venv venv
.\venv\Scripts\python.exe -m pip install -r requirements.txt
.\venv\Scripts\python.exe generate_dialect.py
.\venv\Scripts\python.exe app.py

关闭其他占用相同 COM 口的程序,再选择端口和波特率。MAVLink 串口(例如 GCS/LINK 或 OBV)必须有遥测输出;USB 控制台不一定是 MAVLink。

更新协议并构建 EXE

powershell -NoProfile -ExecutionPolicy Bypass -File build.ps1

默认构建流程:初始化 MAVLink 子模块;检查子模块无本地文件更改;抓取 origin/main;只有当前子模块提交是远端祖先时才切到远端最新提交;安装依赖;从 VKFly.xml 生成 Python 方言;运行测试;调用 PyInstaller。子模块如有脏文件或本地分叉提交会停止,避免覆盖工作;更新后主仓库会显示子模块指针变化,应由开发者决定是否提交。网络、远端权限或依赖安装失败会使构建失败。脚本不会执行主仓库 git pull。

如果 Git 代理不可用、但内网仓库可直连,可仅对本次构建绕过 Git 代理(不会修改全局配置):

powershell -NoProfile -ExecutionPolicy Bypass -File build.ps1 -NoGitProxy

如果需要严格使用主仓库当前检出的子模块版本或暂不更新:

powershell -NoProfile -ExecutionPolicy Bypass -File build.ps1 -SkipSubmoduleUpdate

构建产物是 dist\VKGroundStation\VKGroundStation.exe 及其旁边依赖目录(PyInstaller --onedir),发布时需一起复制整个 VKGroundStation 文件夹。首次安装 PyQt6 体积较大;需要网络访问 PyPI 和子模块远端。

测试

.\venv\Scripts\python.exe -m unittest discover -s tests -v

测试包含标准/自定义方言的打包与解析及噪声后恢复;测试结果不等于对实机全部消息、视觉效果或飞行安全的验证。