|
|
17 ore fa | |
|---|---|---|
| dist | 17 ore fa | |
| generated | 20 ore fa | |
| image | 17 ore fa | |
| mavlink @ 095510067e | 20 ore fa | |
| tests | 17 ore fa | |
| .gitignore | 17 ore fa | |
| .gitmodules | 20 ore fa | |
| README.md | 17 ore fa | |
| app.py | 17 ore fa | |
| build.ps1 | 20 ore fa | |
| generate_dialect.py | 20 ore fa | |
| requirements.txt | 20 ore fa |
基于 PyQt6 的 Windows 串口上位机。除请求飞控 SN 外只接收 MAVLink,不发送心跳、参数、解锁或飞行控制命令。支持 MAVLink 2 VKFly 自定义方言及其包含的标准消息;校验失败的帧丢弃。连接后从串口收到的数据源并不自动区分多架飞机,多机共用链路时请勿把仪表作为单机状态依据。
未连接时的初始界面:
连接飞控后的遥测监控界面,包含姿态、电源和消息字段:
连接界面截图来自真实飞控遥测,地理位置和 SN 已隐藏;实际显示内容以飞控返回的数据为准。
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。
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
测试包含标准/自定义方言的打包与解析及噪声后恢复;测试结果不等于对实机全部消息、视觉效果或飞行安全的验证。