This commit is contained in:
lvyuankang 2024-07-16 09:59:01 +08:00
parent 40db7bbc9a
commit af40efb3f6
13 changed files with 280 additions and 233 deletions

View File

@ -1,4 +1,4 @@
# judge library build
# FFmpeg build
import("//build/ohos.gni")
@ -14,21 +14,24 @@ ohos_source_set("judge_dynamic") {
"sdk/api/js/JSTypedef.cpp",
"sdk/api/platform/JudgeApiFactory.cpp",
"sdk/api/platform/JudgeSdk.cpp",
"sdk/common/CostTimeHelper.cpp",
"sdk/common/CleverHelper.cpp",
"sdk/common/CryptoAlgorithm.cpp",
"sdk/common/HSystem.cpp",
"sdk/common/HVersion.cpp",
"sdk/common/Loggerxx.cpp",
"sdk/common/ProfilerHelper.cpp",
"sdk/common/TAssert.cpp",
"sdk/common/TQueue.cpp",
"sdk/common/TimerPool.cpp",
"sdk/common/Tools.cpp",
"sdk/database/IDBTables.cpp",
"sdk/database/carinfo/CarInfoTable.cpp",
"sdk/database/mark/MarkItemRule.cpp",
"sdk/database/iteminfo/ItemInfoTable.cpp",
"sdk/database/mappoint/MapPointItemTable.cpp",
"sdk/database/mappoint/MapPointTable.cpp",
"sdk/database/mark/MarkTable.cpp",
"sdk/database/sysparm/SysParmTable.cpp",
"sdk/database/sysset/SysSetTable.cpp",
"sdk/database/sysset/XSysSet.cpp",
"sdk/exam/ExamCar.cpp",
"sdk/exam/ExamCarSub2.cpp",
"sdk/exam/ExamCarSub3.cpp",
"sdk/exam/ExamDatagram.cpp",
"sdk/exam/ExamHistory.cpp",
"sdk/exam/ExamSensor.cpp",
@ -39,29 +42,55 @@ ohos_source_set("judge_dynamic") {
"sdk/graphic/IGraphicAbstract.cpp",
"sdk/judge/IJudgeBrokerInterface.cpp",
"sdk/judge/IJudgeItem.cpp",
"sdk/judge/JudgeItemFactory.cpp",
"sdk/judge/sub2/ISub2Judge.cpp",
"sdk/judge/sub2/Sub2JudgeCftc.cpp",
"sdk/judge/sub2/Sub2JudgeComm.cpp",
"sdk/judge/sub2/Sub2JudgeDcrk.cpp",
"sdk/judge/sub2/Sub2JudgePdqb.cpp",
"sdk/judge/sub2/Sub2JudgeQxxs.cpp",
"sdk/judge/sub2/Sub2JudgeZjzw.cpp",
"sdk/judge/sub3/ISub3Judge.cpp",
"sdk/judge/sub2/ISub2JudgeItem.cpp",
"sdk/judge/sub2/ISub2JudgeWrap.cpp",
"sdk/judge/sub2/Sub2Judge00Dcrk.cpp",
"sdk/judge/sub2/Sub2Judge02Pdqb.cpp",
"sdk/judge/sub2/Sub2Judge03Cftc.cpp",
"sdk/judge/sub2/Sub2Judge05Qxxs.cpp",
"sdk/judge/sub2/Sub2Judge06Zjzw.cpp",
"sdk/judge/sub2/Sub2Judge20Comm.cpp",
"sdk/judge/sub3/ISub3JudgeItem.cpp",
"sdk/judge/sub3/ISub3JudgeWrap.cpp",
"sdk/judge/sub3/Sub3Judge01Sczb.cpp",
"sdk/judge/sub3/Sub3Judge02Qbxx.cpp",
"sdk/judge/sub3/Sub3Judge03Zxxs.cpp",
"sdk/judge/sub3/Sub3Judge04Bgcd.cpp",
"sdk/judge/sub3/Sub3Judge05Lkzx.cpp",
"sdk/judge/sub3/Sub3Judge06Rxhd.cpp",
"sdk/judge/sub3/Sub3Judge07Xxqy.cpp",
"sdk/judge/sub3/Sub3Judge08Gjzt.cpp",
"sdk/judge/sub3/Sub3Judge09Hcxx.cpp",
"sdk/judge/sub3/Sub3Judge10Ccxx.cpp",
"sdk/judge/sub3/Sub3Judge11Kbtc.cpp",
"sdk/judge/sub3/Sub3Judge12Dtxx.cpp",
"sdk/judge/sub3/Sub3Judge12Lkdt.cpp",
"sdk/judge/sub3/Sub3Judge12Ptdt.cpp",
"sdk/judge/sub3/Sub3Judge13Yjxs.cpp",
"sdk/judge/sub3/Sub3Judge14Jjdw.cpp",
"sdk/judge/sub3/Sub3Judge15Lkzz.cpp",
"sdk/judge/sub3/Sub3Judge16Lkyz.cpp",
"sdk/judge/sub3/Sub3Judge20Comm.cpp",
"sdk/judge/sub3/Sub3Judge41Mndg.cpp",
"sdk/parser/XIParser.cpp",
"sdk/parser/XParser.cpp",
"sdk/parser/XParser2.cpp",
"sdk/survey/ISurveyCar.cpp",
"sdk/survey/ISurveyItem.cpp",
"sdk/survey/SurveyFactory.cpp",
"sdk/survey/ISurveySubject.cpp",
"sdk/survey/car/SurveyCar.cpp",
"sdk/survey/sub2/ISub2SurveyFactory.cpp",
"sdk/survey/sub2/ISub2SurveyItem.cpp",
"sdk/survey/sub2/Sub2SurveyCftc.cpp",
"sdk/survey/sub2/Sub2SurveyDcrk.cpp",
"sdk/survey/sub2/Sub2SurveyPdqb.cpp",
"sdk/survey/sub2/Sub2SurveyQxxs.cpp",
"sdk/survey/sub2/Sub2SurveyZjzw.cpp",
"sdk/survey/sub3/ISub3SurveyFactory.cpp",
"sdk/survey/sub3/ISub3SurveyItem.cpp",
"sdk/survey/sub3/Sub3MeshDefines.cpp",
"sdk/survey/sub3/Sub3SurveyRoads.cpp",
"sdk/survey/sub3/Sub3SurveySharps.cpp",
"sdk/track/TrackReader.cpp",
"sdk/track/TrackWriter.cpp",
"sdk/utility/Geometry.cpp",
@ -79,7 +108,7 @@ ohos_source_set("judge_dynamic") {
"third/libb64/base64.cpp",
"third/libb64/cdecode.c",
"third/libb64/cencode.c",
"third/tinyxml2-9.0.0/tinyxml2.cpp"
"third/tinyxml2-9.0.0/tinyxml2.cpp",
]
include_dirs = [
"sdk",
@ -92,6 +121,8 @@ ohos_source_set("judge_dynamic") {
"sdk/common",
"sdk/database",
"sdk/database/carinfo",
"sdk/database/iteminfo",
"sdk/database/mappoint",
"sdk/database/mark",
"sdk/database/sysparm",
"sdk/database/sysset",
@ -133,24 +164,30 @@ ohos_source_set("judge_dynamic") {
"__OHOS_FAMILY__",
]
cflags = [
"-Wno-implicit-fallthrough",
"-Wno-unused-private-field",
"-Wunknown-warning-option",
"-Wno-unused-const-variable",
"-Wno-unused-variable",
"-Wno-deprecated-declarations",
"-Wno-unused-command-line-argument",
"-Wno-tautological-constant-out-of-range-compare",
"-Wno-unused-function",
"-Wno-unused-parameter",
"-Wno-unused-but-set-variable",
"-fexceptions",
]
cflags_cc = [
"-Wno-implicit-fallthrough",
"-Wno-unused-private-field",
"-Wunknown-warning-option",
"-Wno-unused-const-variable",
"-Wno-unused-variable",
"-Wno-deprecated-declarations",
"-Wno-unused-command-line-argument",
"-Wno-tautological-constant-out-of-range-compare",
"-Wno-unused-function",
"-Wno-unused-parameter",
"-Wno-unused-but-set-variable",
"-fexceptions",
"-std=c++17",
"-stdlib=libc++",

View File

@ -8,23 +8,24 @@
"sdk/api/js/JSTypedef.cpp",
"sdk/api/platform/JudgeApiFactory.cpp",
"sdk/api/platform/JudgeSdk.cpp",
"sdk/common/CostTimeHelper.cpp",
"sdk/common/CleverHelper.cpp",
"sdk/common/CryptoAlgorithm.cpp",
"sdk/common/HSystem.cpp",
"sdk/common/HVersion.cpp",
"sdk/common/Loggerxx.cpp",
"sdk/common/ProfilerHelper.cpp",
"sdk/common/TAssert.cpp",
"sdk/common/TQueue.cpp",
"sdk/common/TimerPool.cpp",
"sdk/common/Tools.cpp",
"sdk/database/IDatabaseTable.cpp",
"sdk/database/IDBTables.cpp",
"sdk/database/carinfo/CarInfoTable.cpp",
"sdk/database/iteminfo/ItemInfoTable.cpp",
"sdk/database/mappoint/MapPointItemTable.cpp",
"sdk/database/mappoint/MapPointTable.cpp",
"sdk/database/mark/MarkItemRule.cpp",
"sdk/database/mark/MarkTable.cpp",
"sdk/database/sysparm/SysParmTable.cpp",
"sdk/database/sysset/SysSetTable.cpp",
"sdk/exam/ExamCar.cpp",
"sdk/exam/ExamCarSub2.cpp",
"sdk/exam/ExamCarSub3.cpp",
"sdk/exam/ExamDatagram.cpp",
"sdk/exam/ExamHistory.cpp",
"sdk/exam/ExamSensor.cpp",
@ -35,15 +36,36 @@
"sdk/graphic/IGraphicAbstract.cpp",
"sdk/judge/IJudgeBrokerInterface.cpp",
"sdk/judge/IJudgeItem.cpp",
"sdk/judge/JudgeItemFactory.cpp",
"sdk/judge/sub2/ISub2Judge.cpp",
"sdk/judge/sub2/Sub2JudgeCftc.cpp",
"sdk/judge/sub2/Sub2JudgeComm.cpp",
"sdk/judge/sub2/Sub2JudgeDcrk.cpp",
"sdk/judge/sub2/Sub2JudgePdqb.cpp",
"sdk/judge/sub2/Sub2JudgeQxxs.cpp",
"sdk/judge/sub2/Sub2JudgeZjzw.cpp",
"sdk/judge/sub3/ISub3Judge.cpp",
"sdk/judge/sub2/ISub2JudgeItem.cpp",
"sdk/judge/sub2/ISub2JudgeWrap.cpp",
"sdk/judge/sub2/Sub2Judge00Dcrk.cpp",
"sdk/judge/sub2/Sub2Judge02Pdqb.cpp",
"sdk/judge/sub2/Sub2Judge03Cftc.cpp",
"sdk/judge/sub2/Sub2Judge05Qxxs.cpp",
"sdk/judge/sub2/Sub2Judge06Zjzw.cpp",
"sdk/judge/sub2/Sub2Judge20Comm.cpp",
"sdk/judge/sub3/ISub3JudgeItem.cpp",
"sdk/judge/sub3/ISub3JudgeWrap.cpp",
"sdk/judge/sub3/Sub3Judge01Sczb.cpp",
"sdk/judge/sub3/Sub3Judge02Qbxx.cpp",
"sdk/judge/sub3/Sub3Judge03Zxxs.cpp",
"sdk/judge/sub3/Sub3Judge04Bgcd.cpp",
"sdk/judge/sub3/Sub3Judge05Lkzx.cpp",
"sdk/judge/sub3/Sub3Judge06Rxhd.cpp",
"sdk/judge/sub3/Sub3Judge07Xxqy.cpp",
"sdk/judge/sub3/Sub3Judge08Gjzt.cpp",
"sdk/judge/sub3/Sub3Judge09Hcxx.cpp",
"sdk/judge/sub3/Sub3Judge10Ccxx.cpp",
"sdk/judge/sub3/Sub3Judge11Kbtc.cpp",
"sdk/judge/sub3/Sub3Judge12Dtxx.cpp",
"sdk/judge/sub3/Sub3Judge12Lkdt.cpp",
"sdk/judge/sub3/Sub3Judge12Ptdt.cpp",
"sdk/judge/sub3/Sub3Judge13Yjxs.cpp",
"sdk/judge/sub3/Sub3Judge14Jjdw.cpp",
"sdk/judge/sub3/Sub3Judge15Lkzz.cpp",
"sdk/judge/sub3/Sub3Judge16Lkyz.cpp",
"sdk/judge/sub3/Sub3Judge20Comm.cpp",
"sdk/judge/sub3/Sub3Judge41Mndg.cpp",
"sdk/parser/XIParser.cpp",
"sdk/parser/XParser.cpp",
"sdk/parser/XParser2.cpp",
@ -93,6 +115,7 @@
"sdk/common",
"sdk/database",
"sdk/database/carinfo",
"sdk/database/iteminfo",
"sdk/database/mappoint",
"sdk/database/mark",
"sdk/database/sysparm",

View File

@ -35,7 +35,6 @@
"yl": 0,
"yy": 0,
"rmndg": 0,
"wavend": 1,
"mndg": "2,1,3;4,1,2;3,4,2;2,2,1;3,1,1;",
"sde": 0,
"xhd":""

View File

@ -38,7 +38,6 @@ ErrorCode ExamCarSub3::examBeginExam()
// loginfo("exam-item xmdm=%d", item.xmdm);
//}
m_pub = TPubKM3();
std::string sError;
if(!Init_KM3_Global(sError))
{
@ -1183,7 +1182,7 @@ void ExamCarSub3::Deal_KM3_Judge()
}
}
m_pub.m_KsLjLc = m_stuInfo.yklc + m_cg->ai_ljjl;
m_KsLjLc = m_stuInfo.yklc + m_cg->ai_ljjl;
m_cg->tkCnt = GetCurrentTick2();
m_cg->RTKKM3.CrossPointNo = lastCrossPtNo();
@ -1197,21 +1196,20 @@ void ExamCarSub3::Deal_KM3_Judge()
// CallRenGongEnterItem(mitemno);
//}
//240710
//if(m_cg->real.sensor.rmndg == SYES)
//{
// TKM3Item* item = findExamItem(Sub3ItemType41Mndg);
// if(item && item->TestPro == ItemProFlagIdle)
// {
// item->Item_Color = itemStateZk;
// item->TestPro = ItemProFlagInit;
// item->FinishFlag = false;
// //item->StartTime = GetCurrentTime2();
// //item->EndTime = 0;
// //item->MsgData = "";
// //createEventEnterItem({item->ItemNo, ""});
// }
//}
if(m_cg->real.sensor.rmndg == SYES)
{
TKM3Item* item = findExamItem(Sub3ItemType41Mndg);
if(item && item->TestPro == ItemProFlagIdle)
{
item->Item_Color = itemStateZk;
item->TestPro = ItemProFlagInit;
item->FinishFlag = false;
//item->StartTime = GetCurrentTime2();
//item->EndTime = 0;
//item->MsgData = "";
//createEventEnterItem({item->ItemNo, ""});
}
}
m_curItem = nullptr;
//执行具体的专项评判
@ -2291,7 +2289,7 @@ void ExamCarSub3::RTKJudge_SubItem()
RTKKM3.CrossLineAttr = TRTKResult::CrossLineAttr1;
RTKKM3.ShapeNo = SNO;
//RTKKM3.LS_ShapeNo = 0;
m_pub.m_SNO = 0;
m_SNO = 0;
break;
}
}
@ -2303,7 +2301,7 @@ void ExamCarSub3::RTKJudge_SubItem()
RTKKM3.CrossLineAttr = TRTKResult::CrossLineAttr1;
RTKKM3.ShapeNo = SNO;
//RTKKM3.LS_ShapeNo = SNO;
m_pub.m_SNO = SNO;
m_SNO = SNO;
RTKKM3.CrossPoint = subItem->Point2;
const Pointi& p1 = subItem->Line3.PtBegin;
@ -2313,19 +2311,19 @@ void ExamCarSub3::RTKJudge_SubItem()
RTKKM3.CrossShapeLength = std::round(std::sqrt(x*x + y*y));
break;
}
if(m_pub.m_SNO == SNO) //RTKKM3.LS_ShapeNo == SNO
if(m_SNO == SNO) //RTKKM3.LS_ShapeNo == SNO
{
if(GpsMath::IsCross(line, subItem->Line3))
{
RTKKM3.CrossLineAttr = TRTKResult::CrossLineAttr2; //中心点右侧
RTKKM3.ShapeNo = SNO;
//RTKKM3.LS_ShapeNo = 0;
m_pub.m_SNO = 0;
m_SNO = 0;
}
else if(GpsMath::IsCross(line, subItem->Line2))
{
//RTKKM3.LS_ShapeNo = 0;
m_pub.m_SNO = 0;
m_SNO = 0;
}
const Pointi& p1 = RTKKM3.CrossPoint;
const Pointi& p2 = m_cg->body.b1_b; //CarStatus.BasePoint1_RealTime;
@ -2334,7 +2332,7 @@ void ExamCarSub3::RTKJudge_SubItem()
if(dis > RTKKM3.CrossShapeLength * 3) //3--6 20170924
{
//RTKKM3.LS_ShapeNo = 0;
m_pub.m_SNO = 0;
m_SNO = 0;
}
}
}
@ -3273,8 +3271,8 @@ void ExamCarSub3::Km3NewEnterItem()
cg->MapPoint_Road_Code = Road_Code;
//得到穿越的点号,在路口项目中,会被转换成路段的点。(如果右路段信息的话,当然了,路口项目肯定是在特定的路段上的)
m_pub.PubLastChuanYuePtNo = crossPointNo;
m_pub.PubLastChuanYuePt_JLCM = disCM;
PubLastChuanYuePtNo = crossPointNo;
PubLastChuanYuePt_JLCM = disCM;
//如果不是项目点,忽略 //读卡进项目的
//(*2024-03-05*)
@ -3338,10 +3336,10 @@ void ExamCarSub3::ReadItemByPoint(int crossPointNo)
const std::string& s319 = TableSysSet->get319();
//SysSet[319]: 1:必须达到里程,才能进入靠边停车
//SysSet[319]: 2:必须达到里程,并且完成必考项目。才能进入靠边停车
if(s319 == "1" && m_pub.m_KsLjLc < m_car.XSJL) return;
if(s319 == "1" && m_KsLjLc < m_car.XSJL) return;
if(s319 == "2")
{
if(m_pub.m_KsLjLc < m_car.XSJL) return;
if(m_KsLjLc < m_car.XSJL) return;
bool unfinished = false;
for(auto it = m_sub3Items.begin(); it != m_sub3Items.end(); it++)
{
@ -3734,7 +3732,7 @@ bool ExamCarSub3::KM3AllPass()
if(isQualified()) //当前是合格的
{
int s336 = TableSysSet->asInt336();
if(m_pub.m_KsLjLc + s336 < m_car.XSJL)
if(m_KsLjLc + s336 < m_car.XSJL)
{
return false;
}
@ -3850,7 +3848,7 @@ void ExamCarSub3::KM3EndItem(int ItemNo)
examItem->GPS_n = 0;
if(examItem->ItemNo == Sub3ItemType04Bgcd || examItem->ItemNo == Sub3ItemType10Ccxx)
{
m_pub.PUB_JDCC_ZT = 0; //借道超车
PUB_JDCC_ZT = 0; //借道超车
}
//已考项目变量更新
if(!isExamAlready(ItemNo))
@ -3967,7 +3965,7 @@ bool ExamCarSub3::judgeMark(int ItemNo, const std::string& serial, bool OnlyOneI
(ItemNo == Sub3ItemType04Bgcd && serial == "43") )
{
if(m_cg->ai_ljjl < 500) return result;
if(m_pub.m_KsLjLc + TableSysSet->asInt336() >= m_car.XSJL) return result;
if(m_KsLjLc + TableSysSet->asInt336() >= m_car.XSJL) return result;
}
}
@ -4418,7 +4416,7 @@ bool ExamCarSub3::ManualStartItem(int ItemNo)
if(ItemNo == Sub3ItemType04Bgcd || ItemNo == Sub3ItemType10Ccxx)
{
//ToDo:语音播报:取消变更车道
m_pub.PUB_JDCC_ZT = 0; //借道超车
PUB_JDCC_ZT = 0; //借道超车
}
//ToDo:语音播报:取消变更车道
createEventCancelItem({ItemNo, ""});

View File

@ -51,25 +51,25 @@ public: //for IExamCarSub3 override
virtual TCar* getTCar() override { return &m_car; }
virtual TTestCtl* getTTestCtl() override { return &m_ctl; }
virtual int lastCrossPtNo() override { return m_pub.PubLastChuanYuePtNo; }
virtual void setPUB_JDCC_ZT(int v) override { m_pub.PUB_JDCC_ZT = v;}
virtual int getPUB_JDCC_ZT() const override { return m_pub.PUB_JDCC_ZT;}
virtual void setChaoChe_Start_TM(int64 v) override { m_pub.ChaoChe_Start_TM = v;}
virtual int64 getChaoChe_Start_TM() const override { return m_pub.ChaoChe_Start_TM;}
virtual void setChaoChe_End_TM(int64 v) override { m_pub.ChaoChe_End_TM = v;}
virtual int64 getChaoChe_End_TM() const override { return m_pub.ChaoChe_End_TM;}
virtual void setPub_JSC_JL(int v) override { m_pub.Pub_JSC_JL = v;}
virtual int getPub_JSC_JL() const override { return m_pub.Pub_JSC_JL; }
virtual void setNJ_DiaoTou_JL(int v) override { m_pub.NJ_DiaoTou_JL = v; }
virtual int getNJ_DiaoTou_JL() const override { return m_pub.NJ_DiaoTou_JL; }
virtual void setPubCanJudge_XiHuoFlag(bool v) override { m_pub.PubCanJudge_XiHuoFlag = v; }
virtual bool getPubCanJudge_XiHuoFlag() const override { return m_pub.PubCanJudge_XiHuoFlag; }
virtual void setPubKaoBianTCFinish_LJJL(int v) override { m_pub.PubKaoBianTCFinish_LJJL = v; }
virtual int getPubKaoBianTCFinish_LJJL() const override { return m_pub.PubKaoBianTCFinish_LJJL; }
virtual void setKsLjLc(int v) override { m_pub.m_KsLjLc = v; }
virtual int getKsLjLc() const override { return m_pub.m_KsLjLc; }
virtual void setyjdg_road_code_kf(bool v) override { m_pub.yjdg_road_code_kf = v; }
virtual bool getyjdg_road_code_kf() const override { return m_pub.yjdg_road_code_kf; }
virtual int lastCrossPtNo() override { return PubLastChuanYuePtNo; }
virtual void setPUB_JDCC_ZT(int v) override { PUB_JDCC_ZT = v;}
virtual int getPUB_JDCC_ZT() const override { return PUB_JDCC_ZT;}
virtual void setChaoChe_Start_TM(int64 v) override { ChaoChe_Start_TM = v;}
virtual int64 getChaoChe_Start_TM() const override { return ChaoChe_Start_TM;}
virtual void setChaoChe_End_TM(int64 v) override { ChaoChe_End_TM = v;}
virtual int64 getChaoChe_End_TM() const override { return ChaoChe_End_TM;}
virtual void setPub_JSC_JL(int v) override { Pub_JSC_JL = v;}
virtual int getPub_JSC_JL() const override { return Pub_JSC_JL; }
virtual void setNJ_DiaoTou_JL(int v) override { NJ_DiaoTou_JL = v; }
virtual int getNJ_DiaoTou_JL() const override { return NJ_DiaoTou_JL; }
virtual void setPubCanJudge_XiHuoFlag(bool v) override { PubCanJudge_XiHuoFlag = v; }
virtual bool getPubCanJudge_XiHuoFlag() const override { return PubCanJudge_XiHuoFlag; }
virtual void setPubKaoBianTCFinish_LJJL(int v) override { PubKaoBianTCFinish_LJJL = v; }
virtual int getPubKaoBianTCFinish_LJJL() const override { return PubKaoBianTCFinish_LJJL; }
virtual void setKsLjLc(int v) override { m_KsLjLc = v; }
virtual int getKsLjLc() const override { return m_KsLjLc; }
virtual void setyjdg_road_code_kf(bool v) override { yjdg_road_code_kf = v; }
virtual bool getyjdg_road_code_kf() const override { return yjdg_road_code_kf; }
protected:
bool Init_KM3_Global(std::string& sError);
@ -151,7 +151,6 @@ private:
TCar m_car;
TTestCtl m_ctl;
TPubKM3 m_pub;
std::vector<int> m_carPosMeshList;
const int m_DrawArc_Step = 40;
@ -159,6 +158,25 @@ private:
int E_1Deg2Cm = 0; //经度1度=多少厘米
const int N_1Deg2Cm = 11110792; //北纬1度X cm
int m_KsZgDw = 0; //记录考试中的最高档位
int m_KsZgSs = 0; //记录考试中的最高时速
int m_KsLjLc = 0; //记录考试累计里程(米)
int PubLastChuanYuePtNo = 0; //最后一次经过的点
int PubLastChuanYuePt_JLCM = 0; //最后一次经过的点偏移量
int NJ_DiaoTou_JL = 0; //个性需求
int64 ChaoChe_Start_TM = 0; //2018011 超车开始时间
int64 ChaoChe_End_TM = 0; //2018011 超车结束时间
int PUB_JDCC_ZT = 0; //借道超车状态 0非借道 1:表示超车 2表示正在返回原车道 3回原车道道完成 20180227
bool yjdg_road_code_kf = false;
int Pub_JSC_JL = 0;
bool PubCanJudge_XiHuoFlag = true; //注意初始必须是true
int PubKaoBianTCFinish_LJJL = 0;
int m_SNO = 0;
//TCarStatus m_carStatus;
//int64 m_ContinuedStartTime = 0; //续考的上次开始考试时间 20150205

View File

@ -110,32 +110,32 @@ bool ExamSensor::convertDatas(TChuanGan* cg)
{
TSensorInfo& sor = cg->real.sensor;
sor.dw_plc = sor.dw;
// if(m_car->examSubject() == ExamSubject2)
// {
// }
// else if(m_car->examSubject() == ExamSubject3)
// {
// IExamCarSub3* car = dynamic_cast<IExamCarSub3*>(m_car);
// TCar* tcar = car->getTCar();
// //给雾灯信号赋值的时候,一定要遵守下面的规则
// switch(tcar->WD_Signal)
// {
// case 0: sor.wd = sor.ygq; break;
// case 1: sor.wd = 1 - sor.yy; break; //这是取反的的意思如果有信号1, 1-1就是0;
// //20140411
// case 2: sor.wd = 1 - sor.ygq; break; //这是取反的的意思如果有信号1, 1-1就是0;
// case 3: sor.wd = sor.yy; break;
// default:break;
// }
//
// if(tcar->CarTypeName == XCharacter("吉利豪情"))
// {
// if(sor.ygq == SNOT)
// {
// sor.wd = SNOT;
// }
// }
// }
if(m_car->examSubject() == ExamSubject2)
{
}
else if(m_car->examSubject() == ExamSubject3)
{
IExamCarSub3* car = dynamic_cast<IExamCarSub3*>(m_car);
TCar* tcar = car->getTCar();
//给雾灯信号赋值的时候,一定要遵守下面的规则
switch(tcar->WD_Signal)
{
case 0: sor.wd = sor.ygq; break;
case 1: sor.wd = 1 - sor.yy; break; //这是取反的的意思如果有信号1, 1-1就是0;
//20140411
case 2: sor.wd = 1 - sor.ygq; break; //这是取反的的意思如果有信号1, 1-1就是0;
case 3: sor.wd = sor.yy; break;
default:break;
}
if(tcar->CarTypeName == XCharacter("吉利豪情"))
{
if(sor.ygq == SNOT)
{
sor.wd = SNOT;
}
}
}
//油门计算,松油门信号
sor.sym = 0;

View File

@ -428,10 +428,7 @@ struct TSub3Item41Mndg //模拟灯光 41
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;
std::array<std::string, 7> Lt_Change; //: array[0..6] of string; //0:未定义 1:示宽,2:双跳,3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
int8 ItemNo = 0, ItemStatus = 0; //St 控制具体项目 St1控制指定项目的状态
int64 Snd_Wav_Start_TM = 0; //语音开始时间

View File

@ -63,26 +63,24 @@ void Sub3Judge20Comm::dealJudgeItem()
//自动靠边停车计算
Call_Auto_KBTC();
//Step0-2触发模拟灯光
CallMoNiDengGuang(); //240710
//if(!m_car->isReplay()) //(Data_Replay.Kind = 2) then //杨海洋实际考试模式(就是说非回放模式的)
//{
// CallMoNiDengGuang(); //yhyflag
//}
//else
//{
// //回放相关的
// if(sor.rmndg == SYES)
// {
// TKM3Item* item = m_car->findExamItem(Sub3ItemType41Mndg);
// if(item && item->TestPro == ItemProFlagIdle)
// {
// item->Item_Color = itemStateZk;
// item->TestPro = ItemProFlagInit;
// item->FinishFlag = false;
// }
// }
//}
if(!m_car->isReplay()) //(Data_Replay.Kind = 2) then //杨海洋实际考试模式(就是说非回放模式的)
{
CallMoNiDengGuang(); //yhyflag
}
else
{
//回放相关的
if(sor.rmndg == SYES)
{
TKM3Item* item = m_car->findExamItem(Sub3ItemType41Mndg);
if(item && item->TestPro == ItemProFlagIdle)
{
item->Item_Color = itemStateZk;
item->TestPro = ItemProFlagInit;
item->FinishFlag = false;
}
}
}
//1、溜车评判
Judge_LiuChe();

View File

@ -96,7 +96,6 @@ bool Sub3Judge41Mndg::dealJudgeEnter()
//Pub_Log('开始模拟夜间New');
//灯光初始化
m_itemv = TSub3Item41Mndg();
m_itemv.Lt_Change.resize(7, N0);
//m_exam->TestPro = ItemProFlagJudge;
//ToDo2:生成进项目事件
@ -161,15 +160,6 @@ void Sub3Judge41Mndg::dealJudgeItem()
const TGpsInfo& gps1 = his1->real.gps;
const std::string& ksdd = TableSysSet->get211();
//调试代码
if(gps.sj - m_lastDealTick > 5*SECOND)
{
m_lastDealTick = gps.sj;
logtrace("mndg-tick-Op_Step=%d,ItemStatus=%d,Item=%d%d%d", m_itemv.Op_Step,m_itemv.ItemStatus,
m_itemv.ItemNo,m_itemv.SubWav1,m_itemv.SubWav2);
}
if(ksdd == siteof::zjnb)
{
if(cg->move == moveStop && sor.ssc == SNOT)
@ -270,7 +260,7 @@ void Sub3Judge41Mndg::dealJudgeItem()
}
else if(m_itemv.ItemNo == 100) //灯光结束
{
logtrace("mndg-item-end");
logtrace("sound-mndg-end");
m_exam->TestPro = ItemProFlagEnd;
if(m_car->isExamDrill()) //训练模式
{
@ -302,7 +292,7 @@ void Sub3Judge41Mndg::dealJudgeItem()
}
else
{
logerror("mndg-error-Op_Step=%d,ItemNo=%d,Status=%d",m_itemv.Op_Step, m_itemv.ItemNo, m_itemv.ItemStatus);
logerror("mndg-error Op_Step=%d,ItemNo=%d,Status=%d",m_itemv.Op_Step, m_itemv.ItemNo, m_itemv.ItemStatus);
}
char buf[128] = {0};
@ -373,18 +363,18 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
{
if(MilliSecondsBetween(gps.sj, m_itemv.Lt_YJ_TM) < m_itemv.P_YJGD_JT_YS)
{
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
m_itemv.Lt_YJ_TM = 0;
m_itemv.Lt_YJ_cs++; //Inc(m_itemv.Lt_YJ_cs); //20150327
if(ksdd == siteof::shijiazhuang1001)
{
if(m_itemv.Lt_YJ_cs >= 2)
{
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
}
else
{
m_itemv.Lt_Change[6] = N0;
m_itemv.Lt_Change[6] = "0";
}
}
@ -392,9 +382,9 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
if(ksdd == siteof::gdjykm3 || ksdd == siteof::jiuquan)
{
if(m_itemv.Lt_YJ_cs == 2)
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
else
m_itemv.Lt_Change[6] = N0;
m_itemv.Lt_Change[6] = "0";
}
}
}
@ -432,26 +422,26 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
if(tm <= m_itemv.P_YJGD_JT_YS)
{
//(m_itemv.Snd_No = 2) and (m_itemv.Snd_No1 = 1) and (m_itemv.St=1) 超车
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
m_itemv.Lt_YJ_TM = 0; //成功闪灯一次,远近关灯时间清空
m_itemv.Lt_YJ_cs++; //Inc(m_itemv.Lt_YJ_cs);
if(ksdd == siteof::shijiazhuang1001)
{
if(m_itemv.Lt_YJ_cs >= 2)
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
else
m_itemv.Lt_Change[6] = N0;
m_itemv.Lt_Change[6] = "0";
}
if(ksdd == siteof::gdjykm3 || ksdd == siteof::jiuquan)
{
if(m_itemv.Lt_YJ_cs == 2)
{
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
}
else
{
m_itemv.Lt_Change[6] = N0;
m_itemv.Lt_Change[6] = "0";
}
}
}
@ -461,7 +451,7 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
//如果有闪灯信号,直接赋值就可以了(前提是要有硬件支持)
if(sor.sde == SYES && sor1.sde == SNOT)
{
m_itemv.Lt_Change[6] = Y1;
m_itemv.Lt_Change[6] = "1";
}
//远光,近光,
@ -471,14 +461,14 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
{
if(sor.ygd == SYES)
{
m_itemv.Lt_Change[4] = Y1;
m_itemv.Lt_Change[4] = "1";
m_itemv.Lt_YJ_TM = 0;
}
else
{
if(sor.jgd == SYES)
{
m_itemv.Lt_Change[5] = Y1;
m_itemv.Lt_Change[5] = "1";
m_itemv.Lt_YJ_TM = 0;
}
}
@ -510,12 +500,12 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
}
if(Flag1 == true || Flag2 == true || Flag3 == true || Flag4 == true)
{
m_itemv.Lt_Change[1] = Y1;
m_itemv.Lt_Change[1] = "1";
}
//双跳,
if(sor.shtd == SYES && sor1.shtd == SNOT)
{
m_itemv.Lt_Change[2] = Y1;
m_itemv.Lt_Change[2] = "1";
}
//雾灯, 20181015
@ -523,12 +513,12 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
{
if(sor.wd == SYES && sor1.wd == SNOT)
{
m_itemv.Lt_Change[3] = Y1;
m_itemv.Lt_Change[3] = "1";
}
}
else
{
m_itemv.Lt_Change[3] = N0;
m_itemv.Lt_Change[3] = "0";
}
}
}
@ -537,8 +527,6 @@ void Sub3Judge41Mndg::UpdateDengGuangChange()
//0、统一调度
void Sub3Judge41Mndg::CallItemProc()
{
logtrace("mndg-Op_Step CallItemProc");
const TChuanGan* cg = m_car->historyChuanGan();
const TGpsInfo& gps = cg->real.gps;
const TSensorInfo& sor = cg->real.sensor;
@ -594,7 +582,7 @@ void Sub3Judge41Mndg::CallItemProc()
m_itemv.ItemNo = 100;
}
logtrace("mndg-item-Op_Step=%d,ItemStatus=%d,Item=%d%d%d", m_itemv.Op_Step,m_itemv.ItemStatus,
logtrace("Op_Step=%d,ItemStatus=%d,Item=%d%d%d", m_itemv.Op_Step,m_itemv.ItemStatus,
m_itemv.ItemNo,m_itemv.SubWav1,m_itemv.SubWav2);
}
}
@ -1296,7 +1284,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
{
for(size_t i = 0; i < m_itemv.Lt_Change.size(); i++)
{
m_itemv.Lt_Change[i] = N0;
m_itemv.Lt_Change[i] = "0";
}
m_itemv.Lt_YJ_TM = 0;
@ -1323,7 +1311,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
else if(m_itemv.ItemStatus == 3) //操作结果
{
//检查灯光错误
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
//检查上一个灯光题目:是不是 “车辆发生故障”
bool b5 = (m_itemv.LastSubItemNo == 5);
@ -1339,7 +1327,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
if(i == 2 || i == 3)
{
// //0:未定义 1:示宽, 2:双跳, 3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
if(m_itemv.SubWav1 == 2 || m_itemv.SubWav1 == 3) //按规则翻译,夜间超车相关的
@ -1411,7 +1399,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
if(sor.zfxd == SYES && sor1.zfxd == SYES)
{
m_itemv.Cc_Jd = 1;
m_itemv.Lt_Change[6] = N0;
m_itemv.Lt_Change[6] = "0";
}
//20171123
if(ksdd == siteof::guizhoubj && MilliSecondsBetween(gps.sj, m_itemv.Snd_Wav_End_TM) > m_itemv.P_zys)
@ -1454,7 +1442,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
}
else if(m_itemv.Cc_Jd == 1)
{
if(m_itemv.Lt_Change[6] == Y1)
if(m_itemv.Lt_Change[6] == "1")
{
m_itemv.Cc_Jd = 2;
}
@ -1555,7 +1543,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
//雾天行驶 要判断双跳灯+雾灯
//检查灯光正确
//非特殊地点版本
if(m_itemv.Lt_Change[6] == Y1)
if(m_itemv.Lt_Change[6] == "1")
{
if(m_itemv.Lt_LastChange_TM == 0) //灯光正确了
{
@ -1609,7 +1597,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
}
//20171009 检查双跳灯
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
if(m_itemv.Lt_YesID)
{
@ -1666,7 +1654,7 @@ void Sub3Judge41Mndg::JiaoTi_DengGuang()
}
else
{
if(m_itemv.Lt_Change[6] == Y1)
if(m_itemv.Lt_Change[6] == "1")
{
m_itemv.ItemNo = 0;
}
@ -1723,7 +1711,7 @@ void Sub3Judge41Mndg::Open_JinGuangDeng()
else if(m_itemv.ItemStatus == 3)
{
//检查灯光错误
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
//检查上一个灯光题目:是不是 “车辆发生故障”
bool b5 = (m_itemv.LastSubItemNo == 5);
@ -1742,7 +1730,7 @@ void Sub3Judge41Mndg::Open_JinGuangDeng()
//0:未定义 1:示宽,2:双跳,3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
if(i == 4 || (b5 == false && i == 6)) //20170527 20171009
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
if(ksdd == siteof::shanghaikm3 || ksdd == siteof::jiuquan)
{
@ -1858,7 +1846,7 @@ void Sub3Judge41Mndg::Open_JinGuangDeng()
}
else
{
if(m_itemv.Lt_Change[5] == Y1) //相当于近光灯持续了一段时间
if(m_itemv.Lt_Change[5] == "1") //相当于近光灯持续了一段时间
m_itemv.Lt_YesID = true;
}
}
@ -1878,13 +1866,13 @@ void Sub3Judge41Mndg::Open_JinGuangDeng()
}
else
{
if(m_itemv.Lt_Change[5] == Y1) //相当于近光灯持续了一段时间
if(m_itemv.Lt_Change[5] == "1") //相当于近光灯持续了一段时间
m_itemv.Lt_YesID = true;
}
}
}
//20171009 检查双跳灯
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
if(m_itemv.Lt_YesID)
{
@ -2115,7 +2103,7 @@ void Sub3Judge41Mndg::Open_YuanGuangDeng()
else if(m_itemv.ItemStatus == 3)
{
//检查灯光错误
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
//检查上一个灯光题目:是不是 “车辆发生故障”
bool b5 = (m_itemv.LastSubItemNo == 5);
@ -2127,7 +2115,7 @@ void Sub3Judge41Mndg::Open_YuanGuangDeng()
{ //20171010
if(i != 4 && i != 1 && i != 6 && i != 5) //20140812
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
if(m_itemv.SubWav1 == 2) //远光灯 20150126
{
@ -2154,7 +2142,7 @@ void Sub3Judge41Mndg::Open_YuanGuangDeng()
{
if(i != 4 && i != 1) //20140812
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
if(m_itemv.SubWav1 == 2) //远光灯 20150126
{
@ -2192,7 +2180,7 @@ void Sub3Judge41Mndg::Open_YuanGuangDeng()
}
else
{
if(m_itemv.Lt_Change[4] == Y1) //相当于远光灯持续了一段时间
if(m_itemv.Lt_Change[4] == "1") //相当于远光灯持续了一段时间
{
m_itemv.Lt_YesID = true;
}
@ -2208,7 +2196,7 @@ void Sub3Judge41Mndg::Open_YuanGuangDeng()
}
}
//20171009 检查双跳灯
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
if(m_itemv.Lt_YesID)
{
@ -2297,7 +2285,7 @@ void Sub3Judge41Mndg::CheLiangGuZhang()
{
const std::string& s421 = TableSysSet->get421();
//检查灯光错误
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
for(int i = 1; i <= 6; i++)
{
@ -2307,7 +2295,7 @@ void Sub3Judge41Mndg::CheLiangGuZhang()
////0:未定义 1:示宽,2:双跳,3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
if(i == 3)
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
if(m_itemv.SubWav1 == 1)
@ -2335,7 +2323,7 @@ void Sub3Judge41Mndg::CheLiangGuZhang()
{
if(i != 1 && i != 2 && i != 6)
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
if(ksdd == siteof::guizhouzy)
@ -2367,7 +2355,7 @@ void Sub3Judge41Mndg::CheLiangGuZhang()
if((ksdd == siteof::jiuquan && i != 1 && i != 5) || (ksdd != siteof::jiuquan && i != 1 && i != 2 && i != 5)) //之前判断方法 //20170809
{
////0:未定义 1:示宽,2:双跳,3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
if(m_itemv.SubWav1 == 1)
@ -2393,7 +2381,7 @@ void Sub3Judge41Mndg::CheLiangGuZhang()
if(i != 1 && i!= 2 && i != 5) //20140923 新增不判远光灯
{
////0:未定义 1:示宽,2:双跳,3:雾灯,4:远光,5:近光,6:交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
if(m_itemv.SubWav1 == 1)
@ -2570,14 +2558,14 @@ void Sub3Judge41Mndg::GuZhangJieChu()
else if(m_itemv.ItemStatus == 3)
{
//检查灯光错误
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
//示宽,双跳,雾灯,远光,近光,交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
for(int i = 1; i <= 6; i++)
{
if(i == 3)
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
JUDGE_MARK_SUB3(41, "01", true);
@ -2665,14 +2653,14 @@ void Sub3Judge41Mndg::CloseAllDengGuang()
else if(m_itemv.ItemStatus == 3)
{
//检查灯光错误
if(m_itemv.P_IF_Err_Kf && m_itemv.Lt_Change != m_itemv.Lt_Change_Last)
if(m_itemv.P_IF_Err_Kf)
{
for(int i = 1; i <= 6; i++)
{
//示宽,双跳,雾灯,远光,近光,交替, 注意:记录灯光的变化,示宽是从有到无,其他是从无到有
if(i == 3)
{
if(m_itemv.Lt_Change[i] == Y1)
if(m_itemv.Lt_Change[i] == "1")
{
//打错灯了
JUDGE_MARK_SUB3(41, "01", true);
@ -2971,11 +2959,9 @@ void Sub3Judge41Mndg::CSH_DengGuangSubItem()
{
for(size_t i = 0; i < m_itemv.Lt_Change.size(); i++)
{
m_itemv.Lt_Change[i] = N0;
m_itemv.Lt_Change[i] = "0";
}
m_itemv.Lt_Change_Last = m_itemv.Lt_Change;
m_itemv.Lt_YJ_TM = 0;
m_itemv.Lt_YJ_cs = 0; //20150327
}
@ -3028,7 +3014,7 @@ void Sub3Judge41Mndg::playSoundEnd(const std::string& code)
m_itemv.Snd_Wav_End_TM = gps.sj;
CSH_DengGuangSubItem();
m_itemv.ItemStatus = m_itemv.ItemStatus + 1;
logtrace("mndg-sound-end code=%s", code.c_str());
logtrace("sound-end code=%s", code.c_str());
}
}

View File

@ -212,10 +212,6 @@ protected:
void playSound(const std::string& kind, int SubWav1, int SubWav2);
private:
#define Y1 ('1')
#define N0 ('0')
TSub3Item41Mndg m_itemv;
std::map<std::string, std::string> m_lights; //HeFaDengGuangDataList //加载合法的灯光 //参考头文件注释说明[灯光类型]
@ -224,8 +220,6 @@ private:
// 四套灯光语音,随机播放任意一套作为考试题目
const std::string m_s383arg = "0^1^4^"; //383参数 新模拟夜间(次数^错扣^固定^)
int64 m_lastDealTick = 0;
//bool PlaySnd_ID = false; //正在播报语音标志
//int PlaySnd_Cnt = 0, PlaySnd_Cnt1 = 0;
//std::set<std::string> g_lstsound;

View File

@ -1293,28 +1293,6 @@ struct TTestCtl
bool Dw_Cgd_OK = false;
};
struct TPubKM3
{
int m_KsZgDw = 0; //记录考试中的最高档位
int m_KsZgSs = 0; //记录考试中的最高时速
int m_KsLjLc = 0; //记录考试累计里程(米)
int PubLastChuanYuePtNo = 0; //最后一次经过的点
int PubLastChuanYuePt_JLCM = 0; //最后一次经过的点偏移量
int NJ_DiaoTou_JL = 0; //个性需求
int64 ChaoChe_Start_TM = 0; //2018011 超车开始时间
int64 ChaoChe_End_TM = 0; //2018011 超车结束时间
int PUB_JDCC_ZT = 0; //借道超车状态 0非借道 1:表示超车 2表示正在返回原车道 3回原车道道完成 20180227
bool yjdg_road_code_kf = false;
int Pub_JSC_JL = 0;
bool PubCanJudge_XiHuoFlag = true; //注意初始必须是true
int PubKaoBianTCFinish_LJJL = 0;
int m_SNO = 0;
};
/*
//后面去掉可能没用了
struct TCarStatus

View File

@ -371,6 +371,8 @@ void ReplayWrapper::replayTrackTypeArtificialItem(const TTrackData::Ptr& data)
void ReplayWrapper::replayTrackTypeSoundEnd(const TTrackData::Ptr &data)
{
//return; //240709
Json::Value root;
bool ok = Tools::fromJson(data->data, root);
TASSERT(ok, "");

View File

@ -52,6 +52,15 @@ void MainWindow::init()
KIT_CONNECT(updateDataFrameNum(int, int));
KIT_CONNECT(updateNextDoing());
connect(&m_audio, &QMediaPlayer::stateChanged, [=](QMediaPlayer::State state)
{
if(state == QMediaPlayer::StoppedState)
{
//examJudgeSoundEnd();
//logtrace("examJudge-SoundEnd");
}
});
static const QString gpsStyle1("color:#9933FA;");
static const QString gpsStyle2("color:#802A2A;");
#define KIT_SET_GPS_STYLE(name) name->setStyleSheet(gpsStyle1); name##_2->setStyleSheet(gpsStyle2);
@ -1113,7 +1122,7 @@ void MainWindow::updateDataCallbackRealExam(const QString& info)
m_parser->parseJudgeData(org, value);
ExamEventType eventType = (ExamEventType)value.event;
std::string time = toEasyTime(value.sj);
std::string time = toEasyTime(Tools::nowTime()); //value.sj 240709
std::string desc = ExamEventType2Desc(eventType);
//loginfo("recv time=%s, event=%s", time.c_str(), desc.c_str());
@ -1191,11 +1200,16 @@ void MainWindow::updateDataCallbackRealExam(const QString& info)
}
else if(eventType == ExamEventTypeSound)
{
int itemNo = value.sound.xmdm;
QString s = QString::fromUtf8(value.sound.code.c_str());
QString text = event + getItemText(itemNo) + CL8(",语音代码:") + s;
const TEventSound& sound = value.sound;
int itemNo = sound.xmdm;
QString s = QString::fromUtf8(sound.code.c_str());
QString text = event + getItemText(itemNo) + CL8(",语音代码:") + s + CL8(",语音类型:")+kit::toString(sound.type);
updateExamEvent(text);
playSoundVoice(value.sound.code);
if(sound.xmdm == Sub3ItemType41Mndg && sound.type == PlaySoundEndNotify)
{
examJudgeSoundEnd(sound.xmdm, sound.code.c_str(),sound.type); //240709
}
}
else if(eventType == ExamEventTypeLight)
{
@ -1204,6 +1218,10 @@ void MainWindow::updateDataCallbackRealExam(const QString& info)
QString text = event + ",[" + s +"]";
updateExamEvent(text);
}
else if(eventType == ExamEventTypeLane)
{
const TEventLane& lane = value.lane;
}
else
{
QString text = event + "";
@ -1315,7 +1333,6 @@ void MainWindow::updateDataCallbackPerform(const QString& info)
m_ui->PubLastChuanYuePtNo->setText(CL8("穿越点=") + kit::toString(PubLastChuanYuePtNo));
m_ui->PubLastChuanYuePtNo->setStyleSheet("color:#FF0000;");
std::string aaasss = cg->MapPoint_Road_Code;
m_ui->MapRoad->setText(CL8("MapRoad") + kit::toString(RTKKM3.MapRoad_Name) +
CL8(" Point路段") + kit::toString(cg->MapPoint_Road_Code));
m_ui->MapRoad->setStyleSheet("color:#FF0000;");