diff --git a/entry/src/main/cpp/BUILD.gn b/entry/src/main/cpp/BUILD.gn index 0c6ada09..5e30cdf1 100644 --- a/entry/src/main/cpp/BUILD.gn +++ b/entry/src/main/cpp/BUILD.gn @@ -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++", diff --git a/entry/src/main/cpp/bin/extract_h_cpp_files.txt b/entry/src/main/cpp/bin/extract_h_cpp_files.txt index a1a4940c..9c3c0abc 100644 --- a/entry/src/main/cpp/bin/extract_h_cpp_files.txt +++ b/entry/src/main/cpp/bin/extract_h_cpp_files.txt @@ -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", diff --git a/entry/src/main/cpp/bin/test_data/test-real-exam.json b/entry/src/main/cpp/bin/test_data/test-real-exam.json index bf7d8fe8..f3e162da 100644 --- a/entry/src/main/cpp/bin/test_data/test-real-exam.json +++ b/entry/src/main/cpp/bin/test_data/test-real-exam.json @@ -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":"" diff --git a/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp b/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp index 67e1ae63..418b2846 100644 --- a/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp +++ b/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp @@ -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, ""}); diff --git a/entry/src/main/cpp/sdk/exam/ExamCarSub3.h b/entry/src/main/cpp/sdk/exam/ExamCarSub3.h index 36d2ac8b..7409ebfa 100644 --- a/entry/src/main/cpp/sdk/exam/ExamCarSub3.h +++ b/entry/src/main/cpp/sdk/exam/ExamCarSub3.h @@ -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 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 diff --git a/entry/src/main/cpp/sdk/exam/ExamSensor.cpp b/entry/src/main/cpp/sdk/exam/ExamSensor.cpp index 6a554337..122ac487 100644 --- a/entry/src/main/cpp/sdk/exam/ExamSensor.cpp +++ b/entry/src/main/cpp/sdk/exam/ExamSensor.cpp @@ -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(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(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; diff --git a/entry/src/main/cpp/sdk/judge/HJudgeItem.h b/entry/src/main/cpp/sdk/judge/HJudgeItem.h index 6af3794e..2c601b78 100644 --- a/entry/src/main/cpp/sdk/judge/HJudgeItem.h +++ b/entry/src/main/cpp/sdk/judge/HJudgeItem.h @@ -428,10 +428,7 @@ struct TSub3Item41Mndg //模拟灯光 41 int64 Lt_LastChange_TM = 0; //灯光最后变化时间 int Lt_YJ_cs = 0; //远近光灯变化次数 20150327 - //std::array 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 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; //语音开始时间 diff --git a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp index 7436578a..0e662674 100644 --- a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp +++ b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp @@ -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(); diff --git a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp index d946b2f1..fa4a68b5 100644 --- a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp +++ b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp @@ -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()); } } diff --git a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h index 1937c503..0850a31d 100644 --- a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h +++ b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h @@ -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 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 g_lstsound; diff --git a/entry/src/main/cpp/sdk/utility/HTypes.h b/entry/src/main/cpp/sdk/utility/HTypes.h index df18cc16..eaf03492 100644 --- a/entry/src/main/cpp/sdk/utility/HTypes.h +++ b/entry/src/main/cpp/sdk/utility/HTypes.h @@ -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 diff --git a/entry/src/main/cpp/toolkit/replay/ReplayWrapper.cpp b/entry/src/main/cpp/toolkit/replay/ReplayWrapper.cpp index 7a1b0302..00ecf201 100644 --- a/entry/src/main/cpp/toolkit/replay/ReplayWrapper.cpp +++ b/entry/src/main/cpp/toolkit/replay/ReplayWrapper.cpp @@ -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, ""); diff --git a/entry/src/main/cpp/toolkit/ui/MainWindow.cpp b/entry/src/main/cpp/toolkit/ui/MainWindow.cpp index ac426473..b374e027 100644 --- a/entry/src/main/cpp/toolkit/ui/MainWindow.cpp +++ b/entry/src/main/cpp/toolkit/ui/MainWindow.cpp @@ -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;");