订阅各节点中的数据,统一生成状态机,再根据配置中的状态、阈值和转换条件发布当前状态、HUD 状态、状态样本和事件。
当前的状态是各模式通用的状态,一些模式的特定状态还有待增加。
SYS_INIT -> GROUND_PREP -> CARRIER_BORNE -> EXIT_READY -> SEPARATION_TRANSITION -> FREEFALL -> DEPLOYMENT -> CANOPY -> APPROACH -> LANDED

其中 UNKNOWN 是看门狗保护状态。当关键传感器超时、高度跳变、GPS 与气压高度差过大或状态长期不可信时,节点会进入 UNKNOWN;数据恢复并稳定后,再回到可信状态或地面准备状态。
使用时间窗口生成派生信号,长时间持续判定所有条件是否满足。
状态转换条件写在配置文件中,通常由速度、高度、下降趋势、冲击峰值、姿态稳定、GPS 锁定和持续时间共同决定。
整体原则是:能快速识别明显阶段,但优先避免误判;所有关键转换尽量依赖一组可解释的窗口特征,而不是单个阈值。
通过几组实际的跳伞数据,确定判断条件是否可行,对阈值进行归纳汇总,并且用其中一组数据进行测试,状态机流程完整,判定延迟符合预期。
本文章使用limfx的vscode插件快速发布