/* * 说明: 科三项目[通过公交站台]评判 * * 作者: 杨海洋 * 日期: 2024-03-21 * * *************************************************************************************** * * 补充知识-->可以人工触发的项目:直线行驶、变更车道、超车、会车、靠边停车、掉头:普通掉头(非路口项目定义的掉头) * 测绘及项目阶段定义 * * (1)测绘相关 * 公交站台内部代码:8,测绘点1个,通过项目距离结束项目。 * * (2) 标准评判内容 * 按定义的减速规则,评判减速。 * * (3)补充 * 如果外面配置了脚刹车、随机行人,需要评判是否有脚刹车动作,是否有停车让行动作。 * * (4)结束条件及扣分点。 * 如果启用了项目语音播报,SysSet[512]-->3 等于1,行驶60米后,检查减速。 * (如果设置了随机行人和脚刹车,处理对应的评判规则) * * 如果没有启用项目语音播报,SysSet[512]-->3等于0,行驶35米后,检查减速。 * (如果设置了随机行人和脚刹车,处理对应的评判规则) * * (5)减速规则讲解 * Ctl.JianSuLeiXing = 2 * a)30米前有刹车动作 * b) 30米前有降速,无增速 * c) 30米前有加速,有减速,速度不大于30 * d) 30米前,匀速行驶(无加速、无减速,速度不大于30) * Ctl.JianSuLeiXing = 1 * 速度低于设定的阈值,即完成减速。 * * * (项目初始化)、项目初始化 * 1)SysSet[509]-->5 得到限速,默认:30 * 2)SysSet[509]-->6 是否需要脚刹车动作。 * 3) SysSet[509]-->8 是否必须减速(不关心你是否在3车道及以上) * 4) 项目距离计算 * * 5) SysSet[334]-->2 随机行人相关的 * 如果没有设置此参数,Itmv8.tmp_xrtg:=true; (表示已经行人停车,停车让行过了) * //随机提示有行人通过(随机提示比例0~10) * //停车让行相关的 * * (一)、评判细则 * 1)实时更新是否需要评判减速 * //是否需要评判减速 * //SysSet[342]:车上是否能进行人工操作(0-能扣分和进项目 1-不能人工评判 2-可以人工评判 3-都不能) * //如果是人工扣分或者人工评判的,自动评判就不触发 需要评判减速相关的 * //科研所规定,公交站台当前车辆的车道号在3车道及以上的,不需要评判减速相关的 * //需要评判减速相关的 * //需要评判减速相关的 * * 2)停车让行赋值 * * 3)脚刹车动作和完成减速相关的赋值。 * 讲代码的时候讲解这块。 * * 4)是否行驶完项目距离 * * 5) 达到项目距离后,评判是否有减速动作、是否脚刹车(如果配置了),是否停车让行(如果配置了) * *(二)、轨迹跟踪 * * 快进到1840帧,然后步进跟踪项目。 * * 公交判断规则: * 1、509-8不为1 and 当前车道大于2,and (342参数为0,或为2,509-10为1):不扣分 * 2、500-13为2,按科研所规则判断是否减速; * 3、509-6为1,同时满足刹车和速度小于阈值(509-5); * 4、500-13为1,刹车和速度小于阈值,满足其中一个就不扣分; * 5、无上述参数,只判断刹车 * */ #ifndef SUB3JUDGE08GJZT_H #define SUB3JUDGE08GJZT_H #include "ISub3JudgeWrap.h" class JUDGE_API Sub3Judge08Gjzt : public ISub3JudgeWrap { public: explicit Sub3Judge08Gjzt(); virtual ~Sub3Judge08Gjzt(); DEAL_API bool dealJudgeEnter() override; DEAL_API void dealJudgeItem() override; protected: private: TSub3Item08Gjzt m_itemv; }; #endif // SUB3JUDGE08GJZT_H