906 lines
40 KiB
C++
906 lines
40 KiB
C++
/*
|
||
* 说明: 评判项目头文件
|
||
*
|
||
* 作者: 杨海洋
|
||
* 日期: 2023-05-11
|
||
*/
|
||
|
||
#ifndef HJUDGEITEM_H
|
||
#define HJUDGEITEM_H
|
||
|
||
#include "HUtility.h"
|
||
#include "IJudgeBrokerInterface.h"
|
||
|
||
struct StageArg
|
||
{
|
||
StageArg(short) {};
|
||
};
|
||
//using StageArg = short;
|
||
using IJudgeBrokerStage = IJudgeBrokerInterface<StageArg>;
|
||
|
||
|
||
#define SecondsBetween(x1, x2) int64(std::abs((x1)-(x2))/1000)
|
||
#define MilliSecondsBetween(x1, x2) int64(std::abs((x1)-(x2)))
|
||
|
||
//===============科目三考试过程结构体定义=================
|
||
|
||
struct TNS3PoseSysset
|
||
{
|
||
//左,右,低头,置信度,左后,右后
|
||
int left = 0;
|
||
int right = 0;
|
||
int low = 0;
|
||
int score = 0;
|
||
int leftBack = 0;
|
||
int rightBack = 0;
|
||
};
|
||
|
||
struct TNS3LKGreen //新科目三
|
||
{
|
||
bool isGreen = false;
|
||
int64 timeCount = 0;
|
||
bool ts_green_to = false;
|
||
bool markFlag = false;
|
||
};
|
||
struct TNS3LRObserve //新科目三
|
||
{
|
||
bool isJudge = false;
|
||
int64 obsTime = 0; //左右侧观察角度
|
||
};
|
||
|
||
struct TNS3BianDao //新科目三
|
||
{
|
||
bool isJudge = false;
|
||
int64 leftBack = 0;
|
||
int64 rightBack = 0;
|
||
};
|
||
|
||
struct TNS3Chaoche //新科目三
|
||
{
|
||
bool isJudge41401 = false;
|
||
bool isJudge41403 = false;
|
||
bool isJudge41405 = false;
|
||
int64 toLeft = 0; //向左变道时
|
||
int64 timeRight = 0; //在超车道上
|
||
int64 toRight = 0; //向右变道时
|
||
};
|
||
|
||
//TDiaoTouJianSuRec
|
||
struct TSlowDown
|
||
{
|
||
//减速慢行不扣分条件
|
||
//非1,2,3,4,-车速 Or 踩刹 Or 松油门
|
||
//1-车速 or 踩刹,
|
||
//2-车速,
|
||
//3-车速 and 踩刹
|
||
//4-脚刹车
|
||
//减速要求
|
||
bool Js_Passed = false; //是否减速成功
|
||
bool Js_Passed1 = false; //如果用到组合的子项1
|
||
bool Js_Passed2 = false; //如果用到组合的子项2
|
||
};
|
||
|
||
struct ISub3Item05Lkzx
|
||
{
|
||
int8 LuK_Type = 0; //路口类型 1-平交 2-环岛
|
||
int LuK_Fx_PointNo = INVALID_INDEX; //正确行驶方向 应该经过的 路口端点point_no
|
||
bool LuK_TcRx = false; //停车让行标记
|
||
int LuK_TCSJ = 0; //路口内禁止停车时间(秒)
|
||
double LuK_TCJL = 0; //越过停车线后X米后,不允许停车
|
||
int64 TC_TM = 0; //路口停车时的GetTickCountTest
|
||
bool ReadNextLuDuanFlag = false; //路口端点标志
|
||
int XMJL_Mi = 0; //项目距离 20151214
|
||
int64 StopLine_TCTM = 0; //穿越停车线xx距离之后停车时刻的时间(穿越停车线之后xx距离内不允许停车不允许停车超过的时间)
|
||
int StopLine_JLCM = 0; //穿越停车线时刻的距离 停止线时刻的距离
|
||
|
||
//减速类型: 减速慢行不扣分条件
|
||
// 非1,2,3,4,-车速 Or 踩刹 Or 松油门
|
||
// 1-车速 or 踩刹, //1: 30米前有刹车动作
|
||
// 2-车速, //2: 30米前车速降到了规定的速度(默认30KM/H)
|
||
// 3-车速 and 踩刹 //3: 30米前有刹车动作,并且车速降到了规定的速度(默认30KM/H)
|
||
// 4-脚刹车 //4: 30米前降过速度
|
||
int JianSu_LeiXing = 0; //对应参数Sysset522
|
||
int JianSu_SuDu = 0; //减速速度阈值,减速类型1和2会用到 //对应参数Sysset522
|
||
bool Cross_TZX_Flag = false; //穿越停止线标志
|
||
bool Judge_TCX = false; //停车线评判
|
||
bool Check_CheDao = false; //车道检查
|
||
bool LKTCKF = false; //路口停车扣分评判
|
||
bool OKFangXiangPt_SuccessFlag = false; //结束点标志
|
||
int Start_JL_CM = 0; //进项目时刻的累计距离
|
||
bool Step3Flag = false; //读到下一个路段标志
|
||
std::vector<int> Step3PtArr; //读到下一个路段的穿越点
|
||
std::string Step3RoadData; //读到下一个路段信息
|
||
bool Mark_20_73_Flag = false; //20_73 扣分标记
|
||
#if JUDGE_USE_INSPECT
|
||
bool Is_TCRX_Item = false;
|
||
bool TCRX_FinishFlag = false;
|
||
#endif
|
||
TNS3LKGreen green;
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item12Lkdt
|
||
{
|
||
int8 LuK_Type = 0; //路口类型 1-平交 2-环岛
|
||
int LuK_Fx_PointNo = INVALID_INDEX; //正确行驶方向 应该经过的 路口端点point_no
|
||
bool LuK_TcRx = false; //停车让行标记
|
||
int LuK_TCSJ = 0; //路口内禁止停车时间(秒)
|
||
double LuK_TCJL = 0; //越过停车线后X米后,不允许停车
|
||
int64 TC_TM = 0; //路口停车时的GetTickCountTest
|
||
bool ReadNextLuDuanFlag = false; //路口端点标志
|
||
std::string CSLuDuan; //初始路段
|
||
int XMJL_Mi = 0; //项目距离 20151214
|
||
int64 StopLine_TCTM = 0; //穿越停车线xx距离之后停车时刻的时间(穿越停车线之后xx距离内不允许停车不允许停车超过的时间)
|
||
int StopLine_JLCM = 0; //穿越停车线时刻的距离 停止线时刻的距离
|
||
|
||
//减速类型: 减速慢行不扣分条件
|
||
// 非1,2,3,4,-车速 Or 踩刹 Or 松油门
|
||
// 1-车速 or 踩刹, //1: 30米前有刹车动作
|
||
// 2-车速, //2: 30米前车速降到了规定的速度(默认30KM/H)
|
||
// 3-车速 and 踩刹 //3: 30米前有刹车动作,并且车速降到了规定的速度(默认30KM/H)
|
||
// 4-脚刹车 //4: 30米前降过速度
|
||
int JianSu_LeiXing = 0; //对应参数Sysset522
|
||
int JianSu_SuDu = 0; //减速速度阈值,减速类型1和2会用到 //对应参数Sysset522
|
||
bool Cross_TZX_Flag = false; //穿越停止线标志
|
||
int64 Enter_TK = 0; //进入时刻的时间TK
|
||
double LuK_Zx_Deg = 0; //变化角度阀值,转向方向灯
|
||
bool LuK_FXD_AngleOKFlag = false;
|
||
bool Judge_TCX = false; //停车线评判
|
||
bool Check_CheDao = false; //车道检查
|
||
bool LKTCKF = false; //路口停车扣分评判
|
||
bool OKFangXiangPt_SuccessFlag = false; //结束点标志
|
||
bool JudgeFXD_Flag = false; //路口评判方向灯标志
|
||
bool Temp_ZFXD = false; //左右方向灯标志
|
||
int Start_JL_CM = 0; //进项目时刻的累计距离
|
||
bool Step3Flag = false; //读到下一个路段标志
|
||
std::vector<int> Step3PtArr; //读到下一个路段的穿越点
|
||
std::string Step3RoadData; //读到下一个路段信息
|
||
bool Mark_12_42_Flag = false; //12_42 扣分标记
|
||
TSlowDown slowDown;
|
||
|
||
TNS3LKGreen green;
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item12Ptdt
|
||
{
|
||
int FinishDiaoTou_JiaoDu_Change = 0; //掉头角度阈值
|
||
int XMJL_Mi = 0; //项目距离
|
||
int CSJL_Mi = 0; //初始距离(单位:米)
|
||
int Max_DC_CiShu = 0; //倒车后退次数限制
|
||
double CS_GPS_D = 0.0; //GPS角度
|
||
bool FXD_TM_OK_Flag = false;
|
||
bool b_FXD = false; //是否打方向灯 20160405
|
||
bool b_JSC = false; //20170505
|
||
int Temp_XS = 0; //减速要求 20170824
|
||
int BianDaoJL = 0; //变道行驶距离(单位:米)
|
||
bool MarkFlag_12_42 = false; //扣分标识
|
||
bool MarkFlag_12_43 = false;
|
||
bool MarkFlag_12_45 = false;
|
||
bool MarkFlag_12_46 = false;
|
||
bool MarkFlag_20_73 = false;
|
||
bool MarkFlag_20_20 = false;
|
||
bool Judge_DengGuang_Flag = false;
|
||
TSlowDown slowDown;
|
||
|
||
Linei line; //用于新的角度变化计算方式
|
||
TMapping mapping;
|
||
};
|
||
|
||
struct TSub3Item15Lkzz
|
||
{
|
||
int8 LuK_Type = 0; //路口类型 1-平交 2-环岛
|
||
int LuK_Fx_PointNo = 0; //正确行驶方向 应该经过的 路口端点point_no
|
||
bool LuK_TcRx = false; //停车让行标记
|
||
int LuK_TCSJ = 0; //路口内禁止停车时间(秒)
|
||
double LuK_TCJL = 0.0; //越过停车线后X米后,不允许停车
|
||
int64 TC_TM = 0; //路口停车时的GetTickCountTest
|
||
bool ReadNextLuDuanFlag = false; //路口端点标志
|
||
int XMJL_Mi = 0; //项目距离 20151214
|
||
int64 StopLine_TCTM = 0; //穿越停车线xx距离之后停车时刻的时间(穿越停车线之后xx距离内不允许停车不允许停车超过的时间)
|
||
int StopLine_JLCM = 0; //穿越停车线时刻的距离 停止线时刻的距离
|
||
|
||
//减速类型: 减速慢行不扣分条件
|
||
// 非1,2,3,4,-车速 Or 踩刹 Or 松油门
|
||
// 1-车速 or 踩刹, //1: 30米前有刹车动作
|
||
// 2-车速, //2: 30米前车速降到了规定的速度(默认30KM/H)
|
||
// 3-车速 and 踩刹 //3: 30米前有刹车动作,并且车速降到了规定的速度(默认30KM/H)
|
||
// 4-脚刹车 //4: 30米前降过速度
|
||
int JianSu_LeiXing = 0; //对应参数Sysset522
|
||
int JianSu_SuDu = 0; //减速速度阈值,减速类型1和2会用到 //对应参数Sysset522
|
||
bool Cross_TZX_Flag = false; //穿越停止线标志
|
||
int64 Enter_TK = 0; //进入时刻的时间TK
|
||
double LuK_Zx_Deg = 0; //变化角度阀值,转向方向灯
|
||
bool LuK_FXD_AngleOKFlag = false;
|
||
bool Judge_TCRX_JianSu = false; //评判减速和停车让行
|
||
bool Judge_TCX = false; //停车线评判
|
||
bool Check_CheDao = false ; //车道检查
|
||
bool LKTCKF = false; //路口停车扣分评判
|
||
bool OKFangXiangPt_SuccessFlag = false; //结束点标志
|
||
bool JudgeFXD_Flag = false; //路口评判方向灯标志
|
||
bool Temp_ZFXD = false, Temp_ZFXD3s = false; //左右方向灯标志
|
||
int64 Temp_ZFXD_TM = 0; //打左方向灯时刻的时间
|
||
int Start_JL_CM = 0; //进项目时刻的累计距离
|
||
bool Step3Flag = false; //读到下一个路段标志
|
||
std::vector<int> Step3PtArr; //读到下一个路段的穿越点
|
||
std::string Step3RoadData; //读到下一个路段信息
|
||
bool ZhongXinDian3MarkFlag = false; //扣分标识
|
||
bool Mark_20_73_Flag = false; //扣分标识
|
||
#if JUDGE_USE_INSPECT
|
||
bool read5FlagShapeNo = false;
|
||
#endif
|
||
|
||
TNS3LKGreen green;
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item16Lkyz
|
||
{
|
||
int8 LuK_Type = 0; //路口类型 1-平交 2-环岛
|
||
int LuK_Fx_PointNo = 0; //正确行驶方向 应该经过的 路口端点point_no
|
||
bool LuK_TcRx = false; //停车让行标记
|
||
int LuK_TCSJ = 0; //路口内禁止停车时间(秒)
|
||
double LuK_TCJL = 0.0; //越过停车线后X米后,不允许停车
|
||
int64 TC_TM = 0; //路口停车时的GetTickCountTest
|
||
bool ReadNextLuDuanFlag = false; //路口端点标志
|
||
int XMJL_Mi = 0; //项目距离 20151214
|
||
int64 StopLine_TCTM = 0; //穿越停车线xx距离之后停车时刻的时间(穿越停车线之后xx距离内不允许停车不允许停车超过的时间)
|
||
int StopLine_JLCM = 0; //穿越停车线时刻的距离 停止线时刻的距离
|
||
|
||
//减速类型: 减速慢行不扣分条件
|
||
// 非1,2,3,4,-车速 Or 踩刹 Or 松油门
|
||
// 1-车速 or 踩刹, //1: 30米前有刹车动作
|
||
// 2-车速, //2: 30米前车速降到了规定的速度(默认30KM/H)
|
||
// 3-车速 and 踩刹 //3: 30米前有刹车动作,并且车速降到了规定的速度(默认30KM/H)
|
||
// 4-脚刹车 //4: 30米前降过速度
|
||
int JianSu_LeiXing = 0; //对应参数Sysset522
|
||
int JianSu_SuDu = 0; //减速速度阈值,减速类型1和2会用到 //对应参数Sysset522
|
||
bool Cross_TZX_Flag = false; //穿越停止线标志
|
||
int64 Enter_TK = 0; //进入时刻的时间TK
|
||
double LuK_Zx_Deg = 0; //变化角度阀值,转向方向灯
|
||
bool LuK_FXD_AngleOKFlag = false;
|
||
bool Judge_TCRX_JianSu = false; //评判减速和停车让行
|
||
bool Judge_TCX = false; //停车线评判
|
||
bool Check_CheDao = false; //车道检查
|
||
bool LKTCKF = false; //路口停车扣分评判
|
||
bool OKFangXiangPt_SuccessFlag = false; //结束点标志
|
||
bool JudgeFXD_Flag = false; //路口评判方向灯标志
|
||
bool Temp_YFXD = false, Temp_YFXD3s = false; //左右方向灯标志
|
||
int64 Temp_YFXD_TM = 0; //打右方向灯计时刻的时间
|
||
int Start_JL_CM = 0; //进项目时刻的累计距离
|
||
bool Step3Flag = false; //读到下一个路段标志
|
||
std::vector<int> Step3PtArr; //读到下一个路段的穿越点
|
||
std::string Step3RoadData; //读到下一个路段信息
|
||
bool Mark_20_73_Flag = false; //扣分标识
|
||
|
||
TNS3LKGreen green;
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item04Bgcd //变更车道
|
||
{
|
||
//Status:
|
||
//0,1,2: 未发生变道
|
||
//3:变道成功
|
||
//4: 结束项目(变道后10米)
|
||
//13:正在变道(未完成变道)(比如:SysSet[414]=1,然后GPS基准点已经变过来了,但是车轮还没有过来)
|
||
int8 Status = 0;
|
||
double Temp_Right_JL = 0.0; //进入项目时离右边线距离
|
||
int Temp_LJJL_1 = 0; //进入项目时的累计距离
|
||
int Temp_LJJL_2 = 0; //变道发生时的累计距离
|
||
int Temp_XMJL = 0; //项目距离 米
|
||
bool Temp_ZFXD3s = false, Temp_YFXD3s = false, Temp_ZFXD = false, Temp_YFXD = false;
|
||
int64 Temp_ZFXD_TM = 0, Temp_YFXD_TM = 0; //打左右方向灯时刻的时间
|
||
int Temp_BasePointInLaneNo = 0, Temp_BaseLaneCount = 0; //超车前的车道号,车道数
|
||
int8 Temp_No_BGCD = 0; //是否不需要变道,只要判断距离就可以了
|
||
int Temp_No_BGCD_YuZhi = 0; //不需要实际变道模式下,车辆离右边线距离变化阀值
|
||
bool Temp_No_BGCD_FinishFlag = false;
|
||
bool Temp_Add_XMJL_Flag = false; //是否要增加项目距离
|
||
bool Mark_4_42_Flag = false; //扣分标识
|
||
bool Mark_4_43_Flag = false; //扣分标识
|
||
bool LeftBianDaoFlag = false; //左侧变道标识
|
||
bool RightBianDaoFlag = false; //右侧变道标识
|
||
|
||
bool JudgeFXD = false;
|
||
|
||
//新科目三
|
||
TNS3BianDao bian;
|
||
};
|
||
|
||
struct TSub3Item10Ccxx //超车
|
||
{
|
||
//1:初始超车道阶段 2:初始普通车道阶段 3:左侧超车阶段 4:完成左侧超车阶段
|
||
//5:回原车道阶段 6:完成回原车道阶段
|
||
int8 Status = 0;
|
||
bool CS_CCD_Flag = false; //初始是否在超车到标记
|
||
int Temp_LJJL_CCD_PTCD = 0; //进入项目时的累计距离(超车道->普通车道)
|
||
int Temp_LJJL_2 = 0; //变道发生时的累计距离
|
||
int64 Temp_TM = 0; //变道、超车以前后轮都过线的时间
|
||
int Start_LJJL = 0; //(单位米)
|
||
int Temp_XMJL = 0; //项目距离 米
|
||
bool GuiZhou_ZFXD_Flag = false; //贵州地区左方向灯标志
|
||
bool Temp_ZFXD3s, Temp_ZFXD = false; //左右方向灯标志
|
||
int64 Temp_ZFXD_TM = 0; //打左方向灯计时刻的时间
|
||
int64 Temp_ZFXD_GZ_TM = 0; //贵州需求打左方向灯时间 20180903
|
||
int64 Lt_YJ_TM = 0; //远近光灯变化时间
|
||
int64 Lt_YJ_ID = false; //远近光灯变化
|
||
int St4_CCD_MinJL = 0; //超车后,超车道需要行驶的距离
|
||
int Temp_BasePointInLaneNo = 0, Temp_BaseLaneCount = 0; //超车前的车道号,车道数
|
||
int CS_CCD_Max_XSJL = 0; //超车道上最多可以行驶的距离
|
||
//初始超车道,二次超车最小行驶距离(如果初始在超车道上,需要驶离超车道,
|
||
//然后行驶规定的距离后,再次进入超车道超车)
|
||
int CS_CCD_ErCiChaoChe_Min_XSJL = 0; //初始在超车道行驶到普通车道,要行使一段距离才能再次进入超车道
|
||
bool CS_CCD_ErCiChaoChe_Min_XSJL_OK = false; //初始在超车道行驶到普通车道,要行使一段距离才能再次进入超车道状态
|
||
int64 St4_HuiYuanCheDao_TM = 0; //超车回原车道时刻
|
||
int St4_HuiYuanCheDao_Miao = 0; //超车回原车道时间
|
||
int Temp_CC_CSSJ = 0; //超车达到车速的持续时间 20150507
|
||
bool Temp_CC_SD_OKFlag = false; //超车达到车速的要求 20150507
|
||
int Temp_CC_CS = 0; //超车需达到的车速 20150507
|
||
bool Mark_CC_CS_Flag = false; //超车速度扣分
|
||
int Temp_CC_CSOK_LastHaoMiao = 0; //超车已达车速的时间 20150507
|
||
int64 Temp_CC_OK_KSSJ = 0; //超车已达车速的开始时间 20150507
|
||
int Temp_CS_GuiZhouKind = 0; //超车速度要求阶段(贵州)
|
||
bool Temp_LaBa_Flag = false; //超车过程中是否已按了喇叭 20151223 周口
|
||
int64 GuangXi_CCD_KSSJ = 0; //20181016 进入超车道时计时 广西梧州
|
||
int Temp_CCDW = 0; //超车挡位要求
|
||
int Temp_CCDW_Type = 0; //超车档位要求,格式:档位^类型 类型为0表示达到一次即可,为1表示超车道上要全程达到。
|
||
bool Temp_No_ChaoChe = false; //无需超车(比如:在最左侧车道上,lyggy需求)
|
||
int Temp_St2_CheDaoHao = 0; //普通车道的车道号
|
||
int Temp_St2_CheDaoCount = 0; //普通车道的车道数
|
||
bool Mark_20_60_Flag = false; //扣分标识
|
||
bool Mark_10_41_Flag = false; //扣分标识
|
||
bool Mark_10_42_Flag = false; //扣分标识
|
||
bool Mark_10_43_Flag = false; //扣分标识
|
||
bool Mark_20_42_Flag = false; //扣分标识
|
||
bool Mark_10_07_Flag = false; //扣分标识
|
||
bool Mark_10_02_Flag = false; //扣分标识
|
||
bool Mark_13_06_Flag = false; //扣分标识
|
||
|
||
bool pullingLane = false; // 是否播报驶离超车道语音
|
||
|
||
TNS3Chaoche observe;
|
||
};
|
||
|
||
struct TSub3Item03Zxxs //直线行驶
|
||
{
|
||
double KZCS = 0; //控制车速
|
||
double KZSDFW = 0; //控制速度范围
|
||
int BiaoZhun_CS = 0; //达标车速
|
||
int JianSu_YuZhi = 0; //减速阀值
|
||
int parm_hcjl = 0, parm_xmjl = 0;//直线行驶:缓冲距离,项目距离
|
||
int KouFen_JianGe_HaoMiao = 0, KFCS = 0; //扣分时间间隔 单位毫秒 20151218 河北沧州
|
||
int64 KFSJ = 0; //扣分时间,间隔多少秒内不能重复扣分
|
||
int Gps_Offset = 0; //直线行驶增加GPS校验(空或0-不起效;>0偏移距离cm,建议350)
|
||
int Init_LJJL = 0; //进项目时刻的累计距离
|
||
int Init_D = 0; //边距离限制阈值
|
||
int Max_CS = 0; //记录最高车速
|
||
double init_Jd = 0.0; //20171013 差分初始角度
|
||
int Kind = 0; //20171220 评判点类型(0-右边距离 1-左边距离)
|
||
double JiaoDu_BianHua_YuZhi = 0; //角度变化阈值
|
||
bool Judge_CS = false; //车速是否要评判 0:不评判 1:评判(默认为0) //20180323
|
||
int Judge_FXD = 0; //是否判方向灯
|
||
bool WavFlag2 = false; //语音提示,请保持直线行驶 标识
|
||
bool Mark_20_73_Flag = false; //扣分标识
|
||
bool Mark_3_04_Flag = false; //扣分标识
|
||
|
||
//新科目三
|
||
TNS3LRObserve observe;
|
||
|
||
};
|
||
|
||
struct TSub3Item06Rxhd //人行横道 6
|
||
{
|
||
int8 Status = 0; //1-进项目到人行横道之前 2-经过人行横道线 3-等待项目结束
|
||
int tmp_ljjlcm = 0; //经过人行横道对应经纬度时的累计距离CM 20140730
|
||
int tmp_xmjl = 0; //厘米
|
||
bool tmp_xrtg = false; //行人通过标识
|
||
int tmpljjl = 0; //进入项目时刻的累计距离
|
||
bool tmp_Face_ID = false; //是否已判断过面部
|
||
bool b_Jsc = false; //南京地区需要有脚刹车动作 20150120
|
||
int64 tcsj = 0; //停车时间,初始是0 integer 20190305
|
||
int jiansu_leixing = 0; //减速类型
|
||
int jiansu_sudu = 0; //减速速度阈值
|
||
int tmp_jskf = 0; //是否判减速扣分标识 连续的人行横道间隔不超过30米,不需判断减速
|
||
int last_jl = 0; //两个人行横道间隔小于50米不判减速
|
||
int WavKind = 0; //SysSet[512]-->3 学校、公交、人行横道模拟项目是否语音标识,0:不需要 1:需要 2024-03-18 yhy 增加
|
||
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item07Xxqy //学校区域 7
|
||
{
|
||
int Temp_LJJL_CM = 0; //进入项目时的累计距离 CM 20140730
|
||
int Temp_XMJL = 0; //项目距离 米
|
||
int Temp_XS = 0; //限速值
|
||
bool ShanDongKM3_JianSu_Flag = false;
|
||
bool HasMark_7_02 = false, JSC_Flag = false; //是否扣了速度分,是否脚刹动作
|
||
bool Temp_TCRX = false; //是否有行人通过 20160516
|
||
int tcsj = 0; //停车时间 20190305
|
||
bool Judge_JSC = false; //是否增加脚刹判断 20190314
|
||
bool SJXR_Flag = false; //是否有随机行人标记
|
||
int Temp_JL_NanJing = 0; //南京特殊地区用
|
||
bool Forbidden_LaBa_Flag = false; //学校区域是否禁止按喇叭:0(默认)-不扣;1-扣分(20-51)
|
||
int WavKind = 0; //SysSet[512]-->3 学校、公交、人行横道模拟项目是否语音标识,0:不需要 1:需要 2024-03-18 yhy 增加
|
||
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item08Gjzt //公交站台 8
|
||
{
|
||
int Temp_LJJL_CM = 0; //进入项目时的累计距离 CM 20140730
|
||
int Temp_XMJL_Mi = 0; //项目距离 米
|
||
int Temp_XS = 0; //限速值
|
||
bool Finish_JSC = false; //完成脚刹车动作
|
||
bool Finish_JianSu = false; //完成减速动作
|
||
int8 JudgeKind = 0; //0:不需要评判减速相关的 1:需要评判减速相关的
|
||
bool Temp_TCRX = false; //是否有行人通过 20160516
|
||
int64 Temp_TCSJ = 0; //停车时间 20190305
|
||
bool Judge_JSC = false; //是否增加脚刹判断 20190314
|
||
bool Must_JianSu_Flag = false; //必须减速标志
|
||
bool EndXMJL_Flag = false; //结束项目距离标志
|
||
int WavKind = 0; //SysSet[512]-->3 学校、公交、人行横道模拟项目是否语音标识,0:不需要 1:需要 2024-03-18 yhy 增加
|
||
|
||
int s509_10 = 0;
|
||
#if JUDGE_USE_INSPECT
|
||
bool inspectJSC = false; //完成脚刹车动作
|
||
#endif
|
||
|
||
TNS3LRObserve observe;
|
||
};
|
||
|
||
struct TSub3Item09Hcxx //会车 9
|
||
{
|
||
int64 Enter_TK = 0; //进项目的时刻
|
||
int Enter_Wheel_LF_ToRightEdge = 0; //左前轮离右边线距离
|
||
int Enter_JL = 0; //进项目时的距离
|
||
int Enter_LeftBodyCenter_JL = 0; //左车身中心点离左边线距离(特殊地点版本)
|
||
int Enter_CS = 0; //进入时刻的车速
|
||
bool Finish_YouCeXingShi = false; //完成右侧行驶标志(完成了会车动作)
|
||
int Temp_XS = 0; //速度限制
|
||
int HC_XMJL = 0; //会车项目距离 20160419
|
||
bool ZXLine_Flag = false; //中心虚线标志
|
||
int HeFa_YouBianJu = 0; //会车时候,最大右边线距离,必须小于等于这个值才认为右边距离是合法的
|
||
int YouBianJu_XSJL = 0; //会车靠右持续行驶距离(不设置就不做这块限制)
|
||
int Temp_YouBianJu_XSJL = 0; //靠右边行驶的临时距离
|
||
int JianSu_Timing = 0; //减速评判时机(进项目后的时间)秒
|
||
TSlowDown slowDown;
|
||
};
|
||
|
||
struct TSub3Item01Sczb //上车准备 1
|
||
{
|
||
int8 Status = 0;
|
||
int newtype = 0; //绕车一周模式
|
||
int time_tishi = 0; //时间提示
|
||
int time_raoche = 0;
|
||
int time_koufen = 0;
|
||
int time_tishi_js = 0;
|
||
int time_koufen_js = 0;
|
||
int time_guanmen_js = 0;
|
||
int time_raoche_js = 0;
|
||
//radarSignal: array[0..4] of String; //超声波信号数组
|
||
int radarCount = 0; //超声波数量
|
||
bool bsound_dh = false; //提示点火
|
||
bool FinishFlag = false;
|
||
};
|
||
|
||
struct TSub3Item41Mndg //模拟灯光 41
|
||
{
|
||
int P_zys = 0; //灯光操作允许总延时(毫秒)
|
||
int P_CSOK_YanShi = 0; //一开始灯光就是正确的评判延时(毫秒)
|
||
int P_YJGD_JT_YS = 0; //远近光灯交替操作延时
|
||
bool P_IF_Err_Kf = false; //灯光错了是否扣分
|
||
int8 P_Op_Cnt = 0; //操作次数
|
||
int P_yyjgsj = 0; //语音间隔时间(毫秒) 20170606
|
||
|
||
bool Lt_YesID = false;
|
||
int64 Lt_YJ_TM = 0; //远近光灯变化时间
|
||
int64 Lt_LastChange_TM = 0; //灯光最后变化时间
|
||
int Lt_YJ_cs = 0; //远近光灯变化次数 20150327
|
||
|
||
//std::array<std::string, 7> Lt_Change; //: array[0..6] of string; //0:未定义 1:示宽,2:双跳,3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
|
||
std::string Lt_Change;
|
||
|
||
std::string Lt_Change_Last;
|
||
|
||
int8 ItemNo = 0, ItemStatus = 0; //St 控制具体项目 St1控制指定项目的状态
|
||
int64 Snd_Wav_Start_TM = 0; //语音开始时间
|
||
int64 Snd_Wav_End_TM = 0; //语音结束时间
|
||
bool Valid = false;
|
||
int8 SubWav1 = 0, SubWav2 = 0; //语音序号
|
||
int8 Op_Step = 0; //操作到第几步
|
||
std::string Op_Rd_str, Op_Rd_str1; //: string[100]; //操作顺序字符串
|
||
|
||
int P_Ccopys = 0; //超车灯光时间 20140812
|
||
int Cc_Jd = 0; //超车阶段 0--语音阶段 1-左方向灯 2-交替 3-右方向灯 4-回归原位 20140812
|
||
std::array<int, 3> Cc_beforeYfd; //: array[0..2] of integer; //超车前是不是右方向灯 20140726 第一位表示右方向灯,第二位表示 双跳灯 第三位表示 雾灯 20140812
|
||
|
||
bool b3szfxd = false; //20150803
|
||
bool CheSu_KouFen = false; //有车速是否扣分
|
||
int lstcstd = 0; //20171009临时停车双跳灯要求 1:要打
|
||
int mndg_add_lukou = 0;
|
||
int64 stdjs = 0; //20171018 临时停车时双跳灯计时
|
||
std::vector<std::string> kflst; //: string[100]; //20171022 扣分列表
|
||
int64 yjjtbeg = 0, yjjtend = 0; //20171031
|
||
|
||
int LastSubItemNo = 0;
|
||
|
||
int64 endTick = 0;
|
||
bool endFlag = false;
|
||
|
||
};
|
||
|
||
struct TSub3Item02Qbxx //起步 2
|
||
{
|
||
int8 State = 0; //项目状态
|
||
bool Mark_2_09_Flag = false;
|
||
bool is_radar = false; //视觉相关的
|
||
//考点系统参数---地点版本参数
|
||
int Sys502_11 = 0;
|
||
int Sys524_4 = 0;
|
||
int sys502_8_1 = 0;
|
||
int sys502_8_2 = 0;
|
||
int Temp_JL_CM = 0;
|
||
bool Mark_ChuangDong = false;
|
||
int64 ZhunBeiQiBuTK = 0; //Cardinal;
|
||
int QiBu_LJJL_CM = 0;
|
||
|
||
bool Error_SSC_Flag = false;
|
||
|
||
|
||
//以下是溜车评判需要用到的变量
|
||
int PubMaxLCValue = 0;
|
||
Pointi PubLCTCPtt;
|
||
bool PubCanMarkLC50Flag = true; //注意初始必须是true
|
||
|
||
//新科三参数
|
||
int64 obsTime = 0;
|
||
};
|
||
|
||
|
||
struct TDwCs_Range
|
||
{
|
||
int High_Cs = 0;
|
||
int Low_Cs = 0;
|
||
};
|
||
struct TSub3Item14Jjdw //加减档 14
|
||
{
|
||
int ItemPosI = 0;
|
||
int Status = 0;
|
||
int64 Enter_Tk = 0; // Cardinal;
|
||
int Enter_Ljjl = 0;
|
||
int JJDXS = 0; //加减挡位限时
|
||
int XMJL = 0;
|
||
std::string dwsx_str = ""; //: string[100];
|
||
int Last_Dw = 0;
|
||
int Last_Dw_kf = 0; //扣分时的最后档位
|
||
std::array<TDwCs_Range, 11>DwCs_Range; //: array[0..10] of TDwCs_Range;
|
||
int Enter_Dw = 0; //进项目时的档位 20140617
|
||
int Last_Lhq = 0; //离合器 20141030
|
||
// bSgXm: boolean; //手工进入项目 20141101
|
||
int bSgFs = 0; //手工进入方式,1:先加后减 2:先减后加
|
||
bool bMaxDwCs = false; //最高档时,车速没有达到要求值 20150201
|
||
int maxdw = 0; //要求加到最高的档位 20150201
|
||
int Ddsj = 0; //档位停留时间 20150526
|
||
int yysj = 0; //语音时间 20150526
|
||
// maxDwCssj: integer; //最高挡,车速达到要求持续时间 20160623
|
||
int64 maxDwCssc = 0; //: Cardinal; //最高挡,车速达到的持续时长 20160623 20200709
|
||
|
||
};
|
||
|
||
struct TSub3Item11Kbtc //靠边停车
|
||
{
|
||
int8 Status = 0; //0-播报语音 1-语音结束,开始评判 到停车前 2-停车了但未确认,可能继续行驶 3-确认停车了 4-下车评判
|
||
int PPFXD = 0; //评判方向灯时机 0-达到指定的角度变化 1-停车前
|
||
int parm_xmjl = 0; //项目距离
|
||
double parm_Rtk_Ag = 0.0; //: real; //方向灯角度 20151013 差分角度
|
||
int parm_KaiMen_Status6 = 0; //开门后,多长时间,自动进入Status6( 关门处理阶段)
|
||
int parm_Fxd3s = 0;
|
||
int parm_ZSj = 0; //总用时 20160613
|
||
|
||
int Enter_ljjl= 0; //进项目累计距离
|
||
int64 Enter_Tk = 0; //: Cardinal; //进项目时间
|
||
int Entet_SJ = 0; //靠边时时间 20160613
|
||
|
||
double Enter_Rtk_Ag = 0.0;// real; // 进项目差分角度 20151013
|
||
|
||
bool yfxd = false, yfxd3s = false;
|
||
int64 yfxd_tk= 0; // Cardinal;
|
||
bool HasJudgeFXD = false; //方向动了标志
|
||
|
||
bool bJc = false, bJc1 = false, bJc2 = false; ///20150304 贵州考试结束下车关门前增加调整内外后视镜
|
||
|
||
int TingCheJiShi = 0; //20170215 停车计时
|
||
int jscnt = 0; //20170215 记次,控制语音
|
||
int tclssjs = 0, tclsscnt = 0; //20170223 茂名 停车拉手刹
|
||
int kbtcwc = 0; //20170310
|
||
|
||
|
||
int Parm_HanZhong_KBTC_SJ = 0; //靠边允许停车时间秒,必须在这个时间内拉手刹
|
||
//xhzt: integer; //20171020 //熄火状态
|
||
int kbtccs = 0; //20180317 靠边停车评判距离的次数,防止当时信号不好
|
||
|
||
int dcykkb = 0; //大车夜考模式 0:不启用 1:启用 20181015
|
||
int KaoShiJieShu_JS = 0; //考试结束计时 20181016
|
||
int Parm_BaoDing_TC_CheDaoJuLi = 0; //保定等特殊地区允许停车的车道距离
|
||
bool chongxindianhuo = false; //重新点火
|
||
int64 chongxindianhuo_tk = 0; //: Cardinal;
|
||
int Parm_TC_KaiCheMen_ShiJian = 0; //停车后,多长时间内必须开车门
|
||
int64 TCZT_Tk = 0; // Cardinal; //进项目时间
|
||
|
||
//扣分相关的
|
||
bool Kf03 = false;
|
||
bool Kf10 = false;
|
||
bool Kf05 = false;
|
||
bool Kf06 = false;
|
||
|
||
//ZDTC: Boolean; //主动停车,不是因为熄火造成的停车
|
||
|
||
//以下是新科目三
|
||
int64 stopPose; //停车前内头部姿态
|
||
int64 doorPose; //打开车门前头部姿态
|
||
|
||
};
|
||
|
||
struct TRoad_Attr
|
||
{
|
||
std::string Road_Code; //: string[10];
|
||
std::string Attr_Str; //: string[30];
|
||
};
|
||
|
||
struct TDWErrorRec
|
||
{
|
||
int64 djtkCnt = 0; //切换计时时间毫秒
|
||
int djsc = 0; //切换时累计时长 毫秒
|
||
int Ljsc = 0; //累计时长 毫秒
|
||
};
|
||
|
||
struct TSub3Item20Comm_CJH //标准科目三综合评判 TKm3Itm20_CJH
|
||
{
|
||
int tmp_ljmc = 0;
|
||
int oldlc, lcmc = 0; //历史溜车距离, 溜车累计脉冲
|
||
bool lcppks = false; //溜车评判开始
|
||
std::string currpos; //: string[100]; //获得gps的当前位置名称
|
||
int izz = 0, iyz = 0, ifxpidx = 0, ifxpflag = 0; // 原左转, 原右转计数, 方向盘数组指针, 方向盘标记: -1 左, 0: 中, 1: 右
|
||
std::array<int, 5> ibtkt; //: array[1..4] of Integer;
|
||
|
||
int ifxdflag = 0, ifxdtkt = 0; //方向灯方向 方向灯开始时间
|
||
bool bqbfxd = false, bkbfxd = false; //起步方向灯, 靠边方向灯检查情况
|
||
|
||
int xhcs = 0; //熄火次数
|
||
int64 xhkftk = 0; //: Cardinal; //熄火扣分时间
|
||
int ItemNo = 0;
|
||
int64 dtfxpmark; //: Cardinal;
|
||
int64 lhqjs = 0, lhqjl = 0; //离合器计时
|
||
|
||
int kdhx = 0;
|
||
int64 kdhx_tk = 0, kdhx_tk_lhq = 0; //: Cardinal; //20180209
|
||
|
||
int kdhx_dw = 0;
|
||
int64 SongKaiShaChe_tk = 0; //: Cardinal;
|
||
|
||
bool JieDaoFXD_Flag = false;
|
||
|
||
int lhqxs = 0, lhqxjl = 0, lhq_kdhxxs = 0; //离合器限定时长 s 离合器限定距离 m
|
||
int zdxhkf = 0; //20180608 由boolean 改成integer 型 熄火次数扣分, 1:根据PLC熄火次数 2:根据点火2,其它值:根据发动机转速为0或点火2+转速小于100
|
||
int fscys = 0; // 踩副刹时长
|
||
|
||
|
||
int DWKF_SJ = 0;
|
||
int64 Mark_DW_CS_ZS_TK = 0; //: Cardinal; //挡位与车速或者转速不匹配扣分TK
|
||
int KongYouMen_FDJ_YZ = 0; //空油门 发动机转速阀值
|
||
int KonbYouMen_FDJ_BS = 0;
|
||
|
||
|
||
int ZXD_BGB_JL = 0; //转向灯不关闭距离
|
||
int ZXD_BGB_SJ = 0; // //转向灯不关闭时间
|
||
//制动不平顺时间
|
||
int ZDBPS_SJ = 0;
|
||
int ZXD_Open_TempJL = 0; //记录转向灯打开一瞬间的累计距离
|
||
int zxd_bgbsj = 0;
|
||
int zxd_kssj = 0;
|
||
|
||
//档位车速控制
|
||
int8 dw_cs_dw2 = 0;
|
||
int8 dw_cs_cs2 = 0;
|
||
int8 dw_cs_sj2 = 0;
|
||
short dw_cs_sl2 = 0; //: smallint;
|
||
|
||
int8 dw_cs_dw1 = 0;
|
||
int8 dw_cs_cs1 = 0;
|
||
int8 dw_cs_sj1 = 0;
|
||
short dw_cs_sl1 = 0; //: smallint;
|
||
|
||
|
||
//方向控制不稳
|
||
double fxkzbwjd = 0.0; //: Single;
|
||
double fxkzbwxz = 0.0; //: Single;
|
||
|
||
//1,2挡距离限制
|
||
int dw12_1d_jl = 0; //1档距离
|
||
int dw12_2d_jl = 0; //2档距离
|
||
int dw12_3d_jl = 0; //1+2档累计距离
|
||
bool dw12_1d_kfrep = false, dw12_2d_kfrep = false, dw12_3d_kfrep = false; // 1,2挡重复扣分
|
||
int dw12_Ljjl1 = 0; //起效累计距离
|
||
int dw12_Ljjl1_new = 0; //
|
||
bool dw12_Ljjl1_new_iskf = false;
|
||
int dw12_Ljjl2 = 0; //起效累计距离
|
||
std::string dw12_1d_kf; //: string[100]; //扣分项
|
||
std::string dw12_2d_kf; //: string[100]; //扣分项
|
||
std::string dw12_3d_kf; //: string[100]; //扣分项
|
||
//20140529
|
||
int dw12_1d_sj = 0; //1档时间
|
||
int dw12_2d_sj = 0; //2档时间
|
||
int dw12_3d_sj = 0; //1+2档累计时间
|
||
int dw12_Ljsj1 = 0; //起效累计时间
|
||
int dw12_Ljsj2 = 0; //起效累计时间
|
||
int low_speed = 0;
|
||
int low_speed_jl = 0;
|
||
int low_speed_jl_count = 0;
|
||
|
||
bool Gbdg_ID = false; //关闭灯光提示标志
|
||
int64 Gbdg_SndTk = 0; //: Cardinal; //关闭灯光提示时间
|
||
int64 Gbdg_EndTk = 0; //: Cardinal;
|
||
int64 Gbdg_Kfyy = 0; //关闭灯光扣分延时
|
||
|
||
int BeforeBgcd_LaneNo = 0; //0-表示变更车道前没有在车道内,不判方向灯;判完方向灯将其置为0
|
||
bool BeforeBgcd_zfxd = false, BeforeBgcd_yfxd = false; //左右方向灯是否已开
|
||
bool BeforeBgcd_zfxd3s = false, BeforeBgcd_yfxd3s = false; //左右方向灯是否已3s
|
||
int bgcd_fangxiang = 0;
|
||
//bgcd_zidongchaoche: boolean; //
|
||
|
||
int DW_CS_ERROR_DW = 0; //档位车速不匹配的 档位 ,dw_cs_err_dw_gd 高档 20150526
|
||
bool DW_CS_High_Flag = false; //低档车速过高
|
||
int64 DW_CS_ERROR_TK = 0; //: Cardinal; //档位车速不匹配的 开始时间
|
||
|
||
//20151029
|
||
|
||
bool dw_cs_err_LowDw_csj = false, dw_cs_err_LowDw_gd_csj = false; //低档车速过高
|
||
int64 DW_FDJZS_ERROR_TK = 0; // Cardinal; //档位与发动机转速不匹配的 开始时间
|
||
|
||
int DW_FDJZS_ERROR_DW = 0; //挡位与发动机转速不匹配的挡位
|
||
|
||
int Road_Attr_MaxCS = 0;
|
||
int64 Road_Attr_MaxCS_Tm = 0; //: Cardinal;
|
||
bool Road_Attr_NoDiaotou = false;
|
||
std::array<TRoad_Attr, 501> Road_Attr; //: array[0..500] of TRoad_Attr;
|
||
|
||
int Road_Attr_LEN = 0;
|
||
|
||
int Rxd_Face_Ljjl = 0;
|
||
|
||
int Last_Dw = 0; //最后一次的有效档位
|
||
int Cs_ljZ = 0, Cs_lj0 = 0, Cs_lj1 = 0, Cs_lj2 = 0, Cs_js0 = 0, Cs_js1 = 0, Cs_js2 = 0; //20140418 sysset[400] 20180810
|
||
int Last_Wlzt = 0; //最后围栏状态
|
||
|
||
int cwlsj = 0; //出围栏时间 20140724
|
||
|
||
bool bZdKbTc = false; //项目结束后,自动报靠边停车项目 20140728
|
||
int ZdKbTcJl = 0; //自动报靠边停车的距离 20140728
|
||
int KbTcJl = 0; //符合自动报靠边停车的当前距离
|
||
|
||
int fdjdsint = 0; //发动机怠速计算因子 20140904
|
||
|
||
std::array<TDwCs_Range, 11> DwCs_Range; //: array[1..10] of TDwCs_Range; //20141027
|
||
bool bXhBycs = false; //20141216;根据熄火次数扣熄火
|
||
int XhJgSj = 0; //20141218 熄火间隔时间
|
||
//parm_Z_Ac: real; //Z轴加速度阀值 20150112
|
||
//Parm_Z_sj: integer; //制动不平顺扣分时间 20150112
|
||
int zdsj = 0; //20150112
|
||
int cfssj = 0; //20150327 踩副踩时间
|
||
|
||
int zbksddsj = 0; // 准备考试允许等待时间 20150721
|
||
int zbksddtscs = 0; // 准备考试允许等待时间提示最大次数 20170508
|
||
bool bKsAqd = false; //是否一上车就系了安全带 20150722
|
||
int xsfx = 0; //0 上山, 1下山 20150817 贵州
|
||
int xsldh = 0; //开始下山路段号 20151112 贵州
|
||
std::string yjdg_road_code; //: string[100]; // 夜间需要灯光操作路段名 20151112
|
||
|
||
|
||
std::string lstc_road_code; //: string[100]; //临时停车路段名 20151116
|
||
int lstc_kssj = 0, lstc_tcsj = 0; //进入临时停车时间 20151116
|
||
int lstc_zt = 0; //0 进入区域 1停车状态 2准备起步 2015116
|
||
int lstc_yfxd = 0, lstc_zfxd = 0; //临时停车是否打了右方向灯
|
||
int lstc_lb = 0;
|
||
bool lstc_kf = false ; //20170711 临时停车是否扣分
|
||
int yxkfsj1 = 0, yxkfsj2 = 0; //20151120 压线扣分时间
|
||
bool bOpenDoor = false; //20160323 是否开门
|
||
|
||
int gc_kssj = 0; // 进入同方向近距离跟车 20160617
|
||
int gc_zt = 0; // 0进入项目 -1结束 20160617
|
||
|
||
int rxhd_kssj = 0, rxhd_zt = 0; //进入人行横道时间 状态 20160617
|
||
int wxhd_kssj = 0, wxhd_zt = 0; //没有交通信号灯的路口
|
||
int hc_kssj = 0, hc_zt = 0; //模拟会车
|
||
int cc_kssj = 0, cc_zt = 0; //模拟超车
|
||
int yjdw = 0; //20160801 越级档位
|
||
|
||
std::string kf64; //: string[100]; //20160929
|
||
int jscnt = 0; //20170215 汉中
|
||
//hffdyysj: integer; //20160307 合肥肥东语音时间
|
||
int dddhkf = 0, dddhsj = 0; // 20170223 点火等待扣分 1表示准备扣分 dddhsj 等待点火时间 秒 茂名
|
||
int kf06sj = 0; //20170517 30108扣分的时间
|
||
bool bXhKf = false; //: boolean; //是否可以根据点火2熄火扣分
|
||
std::string WzmKFRoad; //: string[100]; //y夜间无照明扣分路段 20170817
|
||
int64 L_Csb_tk = 0, R_Csb_tk = 0, L_Csb_tk4 = 0, R_Csb_tk3 = 0; //: Cardinal; //20170827 20171113
|
||
int dwjs = 0; //20170906
|
||
int dh1 = 0, fdjzs = 0; //20170911
|
||
int yjjdcxsj = 0; //20171023
|
||
int yjjdkfjs = 0; //20171023 越级加档扣分时间
|
||
|
||
int qbjxmsj = 0; //20171107 起步进项目时机 0表示只要停车满足5秒就进入起步状态 1表示只有差分才能进项目
|
||
int qbsjcs = 0; //20171107 停车多长时间进入起步状态 ,单位秒
|
||
|
||
int qcyjjdkf = 0; //20171127全程越级加挡扣专项扣分 0:扣通用分 1:扣专项分
|
||
|
||
|
||
std::array<TDWErrorRec, 11> DWErrArr; //: array[0..10] of TDWErrorRec; //20171130
|
||
int mndgddsj = 0; //20180104 模拟灯光触发等待时长,单位秒(插了安全带后等待时长再触发模拟灯光)
|
||
|
||
int MnYj_Tk = 0; //20180104
|
||
int bdfxdsj = 0; //变道方向灯评判时机 0:以变道时判灯 1:以压线时记录打灯记录 ,变道时评判
|
||
int CheLunYaXian_St = 0; //车轮压线状态 0未压,1压线 20180415
|
||
|
||
int xsfxtype = 0; //行驶方向类型 0:正向 1:逆向 20180530
|
||
bool zdbd = false; //是否主动变道 20180531
|
||
bool zdbd3 = false;
|
||
int dtzzj = 0; //20180830 501参数第4个
|
||
bool qdfdjpp = false; //20181016 广西梧州 开始考试要在2分钟内启动发动机
|
||
bool ksrcpp = false; //20190305 开始绕车一周触发的评判
|
||
int64 NoFace2S = 0; //2019-4-111
|
||
|
||
int kaishikaoshi_fadongji = 0;
|
||
bool bJc1 = false, bJc2 = false, bJc3 = false; //是否检查了座椅 20150206
|
||
bool blichengyuying = false;
|
||
int feijidongchedaojuli = 0;
|
||
int FeiJiDongCheDaoJuLi_Tail = 0;
|
||
int mark_Point_No = 0; //绕路点扣分
|
||
int64 NoHandsSj = 0; //双手离开方向盘时间
|
||
|
||
// 老的新科三注释掉没用了
|
||
// int sslkfxp_sj = 0, sslkfxp_kfbj = 0; //双手离开方向盘时间参数
|
||
// int dslkfxp_sj = 0, dslkfxp_jlpc = 0, dslkfxp_kfbj = 0; //单手离开方向盘时间秒,右边距离偏差cm
|
||
// int sccw_sj = 0, sccw_kfbj = 0; //伸出窗外时间秒
|
||
// int kfsj_43 = 0, kfsj_76 = 0, kfsj_903 = 0, kfsj_20_62 = 0; //20,43扣分时间
|
||
// int64 no_singletime = 0; //: cardinal;
|
||
};
|
||
|
||
struct TSub3Item20Comm_XLG //标准科目三综合评判 TKm3Itm20_XLG
|
||
{
|
||
bool XH_Enabled = false;
|
||
bool CSH_QBDW_Flag = false; //初始化起步挡位标志
|
||
int QB_CSJL_CM = 0; //起步时刻初始距离(厘米)
|
||
bool Mark_20_77_Flag = false;
|
||
bool qdysFlag = false; //启动钥匙标志
|
||
bool aqd_kfid = false; //安全带扣分
|
||
int CGD_Nums = 0; //达到次高挡的次数
|
||
|
||
bool rmndg2 = false; //无锡地区在发动机未启动点切换,提示启动发动机,启动发动机之后播报模拟灯光
|
||
struct TSub3SpeedDistance
|
||
{
|
||
int speed = 0;
|
||
int limit = 0; //单位米
|
||
int distance = 0; //单位米
|
||
};
|
||
|
||
std::map<int, TSub3SpeedDistance> SDs534;
|
||
std::map<int, TSub3SpeedDistance> SDs535;
|
||
};
|
||
|
||
struct TSub3Item20Comm_NS3 //新科目三
|
||
{
|
||
int64 offSteer = 0; //时间超过双手脱离方向盘安全时间
|
||
int oneHand = 0; //单手控制方向盘,且车辆发生偏移,初始偏移距离CM
|
||
int64 sight = 0; //视线离开行驶方向时间
|
||
int64 outWindow = 0; //手伸出窗外时间
|
||
|
||
bool isJudgeRainfall = false;
|
||
bool isJudgeIllum = false;
|
||
int64 rainfall = 0; //降雨量
|
||
int64 illumination = 0; //光照
|
||
};
|
||
|
||
|
||
#endif // HJUDGEITEM_H
|
||
|
||
|