Lane Change App 车道变化app

LCApp属于D130下属的一个用于车道变换的状态机,核心功能在于综合检测车机状态,并对各个状态跳转条件进行判断,实现车道变换指令的下发或终止。

现阶段的主要工作是逻辑上重构原先臃肿的状态机,对状态机跳变条件进行解耦,并在代码上重新实现新版状态机。

新版状态机的实现主要基于三部分:条件检查函数 checker , 状态跳变的更新函数 update 与 存储状态跳变的结构体数组 table_t 。

新版状态机的实现是一张邻接表,通过 checker 不断维护所有状态跳变路线,检查可以被满足的跳变方向,并完成状态的跳变。

在结构体数组 table_t 中存储的核心内容包括:状态机当前状态 from,当前状态可调变的状态 to,跳变条件逻辑关系 logic, 以及存储跳变条件的另一个结构体数组 conditions,而conditions 中则具体包含了当下状态发生跳转的条件,并携带每个条件各自的检查函数指针用于 checker 函数调用。

目前已经完成了对结构体数组的实现和状态检查组函数,已经实现了初步的状态跳变更新,但逻辑上存在一定问题,需要进一步优化完善状态跳变更新逻逻辑。

发表评论