subject-two/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.h

230 lines
6.9 KiB
C
Raw Normal View History

2024-05-15 16:10:18 +08:00
/*
* : []
*
* :
* : 2024-04-26
*
* ***************************************************************************************
*
*
*
*
* 1
* 2
* 1
* , KM3AllPass() = True> 5s 25
* 2
* Set_FDJ_DS();
* 3()
* doCheck_ZuoYi(JudgeKM3Obj);
*
* 3
* if (Itmv20_CJH.qbjxmsj = 0) or
* ((Itmv20_CJH.qbjxmsj <> 0) and (cg.Rtk_Enabled = True) and (lscg[zj(1)].Rtk_Enabled = True)
* and (lscg[zj(2)].Rtk_Enabled = True)) then
* begin
* CallQiBu(Itmv20_CJH.qbsjcs);
* end;
*
* 4
* Call_Auto_KBTC(JudgeKM3Obj);
*
* 5
*
*
* 1
*
* 1PubLCTCptt.X=0PubLCTCPtt.Y=0(X,Y)PubMaxLCValue := 0;0
* 2GPS对应的X1,Y1 PubLCTCptt对应的(X,Y) PubMaxLCValue3030
* 321030PubMaxLCValue:=0; PubLCTCPtt.X=0;
* PubLCTCPtt.Y:=0;
*
* 2
* 1
* 2SysSet[507]>5: 2
* 3(LS2的挡位)
* 45LS3往前推1
* 54LS2的挡位2
* 6501
*
* 3
*
* 4
* 5线
* 6
* 7
*
* Is_Lxbd_New()
* 1102
* 22
* 8线
* 9使
* 10
* 11
* 12
* 132
* 14
* 15
* 16使50
* 17
* 18
* 19
* 20
* 21
* 22
* 23
* 24
* 25
* 26
* 27
*
*/
#ifndef SUB3JUDGE20COMM_H
#define SUB3JUDGE20COMM_H
#include "ISub3JudgeWrap.h"
class JUDGE_API Sub3Judge20Comm : public ISub3JudgeWrap
{
public:
explicit Sub3Judge20Comm();
virtual ~Sub3Judge20Comm();
DEAL_API bool dealJudgeEnter() override;
DEAL_API void dealJudgeItem() override;
protected:
//综合评判初始化
void Init_ZongHe();
void ResetFxp();
void itm20_ckfxd();
//设置发动机怠速
void Set_FDJ_DS();
//检查座椅
void doCheck_ZuoYi();
//加载模拟灯光项目
void CallMoNiDengGuang();
//调用起步
void CallQiBu(int qbsj = 5);
//=======================================
//1、溜车评判
void Judge_LiuChe();
//2、连续两次挂挡不进
void Judge_GuaDangBuJin();
//3、空挡滑行
void Judge_KongDangHuaXing();
//4、不按规定速度
void Judge_GuiDingSuDu();
//5、压线评判重点
void Judge_YaXian_30120();
//5、压边缘线 (重点)
//长时间骑轧车道分界线行驶
void Judge_YaXian_10S_XuXian();
//6、起步方向灯、喇叭
void Judge_QiBu_FXD_LaBa();
2024-05-21 19:45:15 +08:00
//7、连续变更两条以上车道 //重点
2024-05-15 16:10:18 +08:00
void Judge_LianXuBianDao();
2024-05-21 19:45:15 +08:00
bool Is_Lxbd_New(); //是否是连续变道 //徐连刚实现 ***暂时没用到
bool Is_Lxbd_New2(); //是否是连续变道 //老的实现
bool Is_Lxbd_New3(); //是否是连续变道 //杨海洋实现 ***暂时没用到
2024-05-15 16:10:18 +08:00
//8、不能停止人行横道网格线内 //禁停评判
void Judge_ForbiddenTC();
//9、加速踏板错误
void Jugde_JiaSuTaBan();
//10、半联动
void Judge_BanLianDong();
//11、制动不平顺
void Judge_ZhiDongBuPingShun();
//12、操作完成后不关闭灯光
void Judge_BuGuanBiDengGuang();
//13、变道方向灯评判2重点翻译
void Judge_BianDaoFangXiangDeng2();
void Mark_FXD_42_43(bool Flag42);
void HandleSysSet409_1_Common();
void HandleSysSet409_1_Special();
bool CheckJL_CS_Itmv20(int jl, int cscs = 30); //从当前位置向倒退jl米的距离内是否减速低于30
//14、副刹车评判
void Judge_FSC();
//15、越级加减档
void Judge_YueJi_JiaJianDang();
//16、起步挡50
void Judge_QiBuDang_50();
//17、熄火评判
void Judge_XiHuo();
//18、启动发动机挡位未置空挡
void Judge_DW_KongDang();
//19、长时间启动钥匙
void Judge_ChangShiJian_QiDongYaoShi();
//20、安全带
void Judge_AnQuanDai();
//21、打开车门
void Judge_DaKaiCheMen();
//22、起步挂错挡
void Judge_QiBu_GuaCuoDang();
//23、挡位与车速、转速不匹配
void Judge_DangWei_CS_ZS();
//24、全程次高挡评判
void Judge_CiGaoDang();
//25、自动靠边停车重点
void Call_Auto_KBTC();
//26、夜间行驶及其他业务逻辑
void Judge_Extra();
bool Check_Diaotou(int jl, int dtjd);
private:
TSub3Item20Comm_CJH m_itemvCJH;
TSub3Item20Comm_XLG m_itemvXLG;
int m_sys360liji = 0;
bool m_CSHItmv20_Flag = false;
//std::string m_PubTongYong_Msg;
int m_sfyz_state = 0; //模拟灯光是否需要人脸验证
bool m_qbjc_zuoyi = false; //20151207 贵州起步检查
//以下是溜车评判需要用到的变量
int m_PubMaxLCValue = 0;
Pointi m_PubLCTCPtt;
double m_PubLCTC_GPS_JD = 0.0;
double m_PubLCTC_GPS_WD = 0.0;
2024-05-21 19:45:15 +08:00
bool m_PubCanMarkLC50Flag = true; //注意初始必须是true
2024-05-15 16:10:18 +08:00
bool m_Pub_First_QiBu_Flag = false;
//int Pub_JSC_JL = 0; //in car
//bool PubCanJudge_XiHuoFlag = true; //in car
//int PubKaoBianTCFinish_LJJL = 0; //in car
int m_DiaoTou_ID = 0;
int64 m_PubLastMark_XuXian_TK = 0;
2024-05-21 19:45:15 +08:00
const int m_LaneChangeTime = 10; //连续变道时间 单位秒 杨海洋增加
2024-05-15 16:10:18 +08:00
};
#endif // SUB3JUDGE20COMM_H