新建 Linux/Python 服务。本期只实现原始字节块透传,不解析 MAVLink 帧,也不转换起飞、航线等业务指令。
/OBTAIN/<SystemID>,仅将 DataType=526、设备标识匹配、Data 为合法 HEX 的 Base JSON 解码后写入串口;拒绝 retained 消息。DataType=526 的 Base JSON 发布到 /PUBLISH/<SystemID>;UAVType、SystemID 来自配置,TimeStamp 使用带时区时间。使用正确字段名 DataType,不沿用文档示例的尾随空格。DataType 注册回调和通用上报 API;未实现的非 526 指令只记录日志并丢弃,不发送未定义的应答。使用模拟 MQTT 和串口验证双向字节一致性、JSON Base 字段、非法数据及 retained 消息拒绝、断线丢弃、重连恢复和扩展回调分派。取得实际设备及平台参数后进行现场联调。
协议未提供 /PUBLISH/<SystemID> 的载荷样例;上行暂定 Base JSON + 526 + HEX Data,正式接入前须平台确认。UAVType 正式值由平台分配,不猜测。
msg_definitions Git 子模块中的 msg_definitions/VKFly.xml 及其包含文件生成 MAVLink 2 Python 方言,解析串口完整帧;只被动接收并自动绑定首个飞控 HEARTBEAT,串口重连时重置。/RECEIVE/<SystemID> 增加 #258 飞行状态(1 秒合并)、#257 厂商 BMS 电池(有更新时至多每秒一次)、#260 STATUSTEXT 提示、#274 解锁/上锁布尔事件。只上报有效的已知字段;心跳或其他来源超过 5 秒即停止使用旧数据。publish_raw_mavlink 配置开关,默认为开启。