概述
PlanningContext类是apollo planning模块下modules\planning\common\planning_context.cc/.h实现
从类名来看,应该是规划上下文类。
从代码来看PlanningContext类主要是实现:
储存了规划在各个场景下的详细的状态信息,如变道时的时间戳,状态(未完成/完成/失败),变道起始位置等。
主要是依靠数据成员PlanningStatus类变量planning_status_实现上述信息储存。
以及信息清空/设置操作函数。
planning_context.h
#pragma once
#include "cyber/common/macros.h"
#include "modules/planning/proto/planning_status.pb.h"
/**
* @brief PlanningContext是规划中的运行时前后背景环境?它持续多个frame?
*/
namespace apollo {
namespace planning {
class PlanningContext {
public:
//默认构造函数
PlanningContext() = default;
//清空类成员planning_status_里储存的信息
void Clear();
void Init(); //该函数代码为空
/*
* 请把所有的状态信息放在PlanningStatus中,以便于维护。
* */
//返回类成员 规划状态,不能修改
const PlanningStatus& planning_status() const { return planning_status_; }
//返回类成员 规划状态,能修改
//modules\planning\proto\planning_status.proto中定义了PlanningStatus类,由google protobuf用法,针对.proto文件生成的c++类
//PlanningStatus里面包含了规划在各个场景下的详细的状态信息,如变道时的时间戳,状态(未完成/完成/失败),变道起始位置等
PlanningStatus* mutable_planning_status() { return &planning_status_; }
private:
PlanningStatus planning_status_;
};
} // namespace planning
} // namespace apollo
planning_context.cc
#include "modules/planning/common/planning_context.h"
namespace apollo {
namespace planning {
void PlanningContext::Init() {}
void PlanningContext::Clear() { planning_status_.Clear(); }
} // namespace planning
} // namespace apollo