From 012120718929594266f6b08236b426827f19ccff Mon Sep 17 00:00:00 2001 From: wangzhongjie Date: Tue, 16 Jul 2024 11:12:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=E5=BF=BD=E7=95=A5cpp=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- build-profile.json5 | 11 ++- entry/src/main/cpp/BUILD.gn | 77 ++++++++++++++----- .../src/main/cpp/bin/extract_h_cpp_files.txt | 53 +++++++++---- .../cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp | 20 +---- .../main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h | 2 - .../main/cpp/toolkit/replay/ReplayWrapper.cpp | 2 + entry/src/main/cpp/toolkit/ui/MainWindow.cpp | 27 +++++-- 8 files changed, 130 insertions(+), 65 deletions(-) diff --git a/.gitignore b/.gitignore index a4a68abd..05b440e6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ .cxx /.clangd /.clang-format -/.clang-tidy \ No newline at end of file +/.clang-tidy +/entry/src/main/cpp/ diff --git a/build-profile.json5 b/build-profile.json5 index d00726aa..ec24561c 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -3,15 +3,14 @@ "signingConfigs": [ { "name": "default", - "type": "HarmonyOS", "material": { - "certpath": "C:\\Users\\lvyuankang\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.cer", - "storePassword": "000000196C396C316487A43A98EF15626CB3607497CF9DE834B8522AFF4BCC81FBE0F8588BA161CED8", + "certpath": "/Users/wangzhongjie/.ohos/config/openharmony/auto_ohos_default_subject-two_com.oh.dts.cer", + "storePassword": "0000001A411B16D84BA448A9AED56C5B7E351A55B8BA7BA0073A2313B214C24C5740A4B49E6E80AD05F0", "keyAlias": "debugKey", - "keyPassword": "00000019E303B1483B2AF630EB5C3AA1BD1A670C1C8F31F84C3DA43C32F816CC733FEFC11B843E23E6", - "profile": "C:\\Users\\lvyuankang\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p7b", + "keyPassword": "0000001AD6836BCC5536725F76279FB36A15D9F61E7CE88C2D043642297F81A9662DEB365314D756CB63", + "profile": "/Users/wangzhongjie/.ohos/config/openharmony/auto_ohos_default_subject-two_com.oh.dts.p7b", "signAlg": "SHA256withECDSA", - "storeFile": "C:\\Users\\lvyuankang\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p12" + "storeFile": "/Users/wangzhongjie/.ohos/config/openharmony/auto_ohos_default_subject-two_com.oh.dts.p12" } } ], 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/sdk/judge/sub3/Sub3Judge41Mndg.cpp b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp index 39e44c01..fa4a68b5 100644 --- a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp +++ b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.cpp @@ -141,7 +141,6 @@ bool Sub3Judge41Mndg::dealJudgeEnter() void Sub3Judge41Mndg::dealJudgeItem() { HELP_COST_TIME(""); - if(m_exam->TestPro != ItemProFlagJudge) return; //回放模式 这里要从轨迹文件加载灯光项目 @@ -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}; @@ -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); } } @@ -3026,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 7316bccb..0850a31d 100644 --- a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h +++ b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge41Mndg.h @@ -220,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/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;"); From 9ac3e76957e43c4e4674e7c008fe4afeda40faa9 Mon Sep 17 00:00:00 2001 From: surenjun Date: Tue, 16 Jul 2024 12:55:41 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat=EF=BC=9A=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/compontents/judge/amplify-popup.ets | 39 ----- .../compontents/judge/deduction-popup.ets | 154 ------------------ .../ets/pages/compontents/judge/end-popup.ets | 27 --- .../pages/compontents/judge/loading-popup.ets | 21 --- .../ets/pages/compontents/judge/real-time.ets | 83 ---------- 5 files changed, 324 deletions(-) delete mode 100644 entry/src/main/ets/pages/compontents/judge/amplify-popup.ets delete mode 100644 entry/src/main/ets/pages/compontents/judge/deduction-popup.ets delete mode 100644 entry/src/main/ets/pages/compontents/judge/end-popup.ets delete mode 100644 entry/src/main/ets/pages/compontents/judge/loading-popup.ets delete mode 100644 entry/src/main/ets/pages/compontents/judge/real-time.ets diff --git a/entry/src/main/ets/pages/compontents/judge/amplify-popup.ets b/entry/src/main/ets/pages/compontents/judge/amplify-popup.ets deleted file mode 100644 index 62fb41e5..00000000 --- a/entry/src/main/ets/pages/compontents/judge/amplify-popup.ets +++ /dev/null @@ -1,39 +0,0 @@ -const folder = 'judge/km3/amplify/' -const amplifyImgs = [ - 'km_zxB.png','km_hcB.png', - 'km_bdB.png', - 'km_ccB.png','km_dtB.png','km_tcB.png', -] -const amplifyArrs = [ - {name:'直线',projectCode:'3',projectCodeCenter:'40300'}, - {name:'会车',projectCode:'9',projectCodeCenter:'41300'}, - {name:'变道',projectCode:'4',projectCodeCenter:'40500'}, - {name:'超车',projectCode:'10',projectCodeCenter:'41400'}, - {name:'掉头',projectCode:'12',projectCodeCenter:'41500'}, - {name:'停车',projectCode:'11',projectCodeCenter:'40600'}, -] - -@Component -struct EndPopup { - constructor() { - super() - } - private amplifyImgIndex:number = 0 - private closeAmplifyPop:Function = ()=>{} - private confirmAmplify:Function = ()=>{} - - build(){ - Column(){ - Column(){ - - }.width(530).height(386).backgroundImage($rawfile(`${folder}${amplifyImgs[this.amplifyImgIndex]}`)).backgroundImageSize({width:'100%',height:'100%'}).position({y:'25%',x:'37%'}).justifyContent(FlexAlign.Center) - .onClick((e:ClickEvent)=>{ - this.confirmAmplify(amplifyArrs[this.amplifyImgIndex]) - }) - - }.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.9)') - .onClick(()=>{this.closeAmplifyPop()}) - } -} - -export default EndPopup \ No newline at end of file diff --git a/entry/src/main/ets/pages/compontents/judge/deduction-popup.ets b/entry/src/main/ets/pages/compontents/judge/deduction-popup.ets deleted file mode 100644 index 8e5ca4b9..00000000 --- a/entry/src/main/ets/pages/compontents/judge/deduction-popup.ets +++ /dev/null @@ -1,154 +0,0 @@ -import {MarkRule} from '../../judgeSDK/api/judgeSDK' -interface SEL{ - fontColor:string - bgColor:string -} - -@Component -struct DeductedPopup { - constructor() { - super() - } - - @State fontSize:number = 25 - @State unselected:SEL = {fontColor:'#000000', bgColor:'#CCC4B8'} - @State selected:SEL = {fontColor:'#FFAD33', bgColor:'#26231E'} - - @State currentIndex:number = 0 - @State currentPageIndex:number = 0 - //通用评判扣分 - @State currentUniversalPageIndex:number = 0; - private markRules:MarkRule[] = [] - @State universalMarkRules:MarkRule[] = [] - @State manualMarkRules:MarkRule[] = [] - @State currentItems:string[] = [] - - @State lineBg:Array = ['#4D4136','#26231E'] - @State selectedLine:number = undefined - private closePopup:Function = ()=> {} - private confirmMark:Function = (itemno:number,serial:string) => {} - @State selectedLineStyle:SEL = { - fontColor:'#FFF', - bgColor:'#B36E00' - } - - aboutToAppear(){ - this.universalMarkRules = this.markRules.filter(item => this.currentItems.includes(item.itemno+'')) - } - //上一页 下一页 - goPage(typeIndex){ - const currentIndex = this.currentIndex - if(currentIndex){ - //通用评判 - typeIndex ? (this.currentUniversalPageIndex += 1) : (this.currentUniversalPageIndex -= 1) - }else{ - typeIndex ? (this.currentPageIndex += 1) : (this.currentPageIndex -= 1) - } - this.selectedLine = -1 - } - - //选中扣分项 - getSelectedLine(index){ - const {selectedLine,selectedLineStyle,lineBg} = this; - if(selectedLine === index){ - return selectedLineStyle.bgColor - } - if(index % 2 === 0){ - return lineBg[0] - }else{ - return lineBg[1] - } - } - - //获取当前页的数据 - getCurrentMarkRuleList(){ - const {currentIndex,currentUniversalPageIndex,currentPageIndex,markRules,universalMarkRules} = this; - if(currentIndex){ - //通用评判 - return universalMarkRules.slice(currentUniversalPageIndex*7,(currentUniversalPageIndex + 1)*7) - }else{ - return universalMarkRules.slice(currentPageIndex*7,(currentPageIndex + 1)*7) - } - } - - build(){ - Column(){ - Column(){ - Column(){ - Row(){ - Row(){ - ForEach(['人工评判','通用评判'],(text,index)=>{ - - Row(){ - Text(text).fontColor(index === this.currentIndex ? this.selected.fontColor : this.unselected.fontColor).fontSize(this.fontSize).fontWeight(500) - } - .width(180).height(70) - .backgroundColor(index === this.currentIndex ? this.selected.bgColor: this.unselected.bgColor ).justifyContent(FlexAlign.Center).justifyContent(FlexAlign.Center) - .borderRadius({topLeft:20,topRight:20}).margin({right:10}) - .onClick(()=>{ - this.currentIndex = index; - this.selectedLine = -1; - if(index === 1) { - this.universalMarkRules = this.markRules.filter(item => item.itemno == 20 ) - }else{ - this.universalMarkRules = this.markRules.filter(item => this.currentItems.includes(item.itemno+'')) - } - }) - }) - } - Row(){ - if( - (Math.ceil(this.universalMarkRules.length / 7 - 1)) >= (this.currentIndex ? this.currentUniversalPageIndex: this.currentPageIndex) && - (this.currentIndex ? this.currentUniversalPageIndex: this.currentPageIndex) > 0 - ){ - Row(){ - Row(){}.width(36).height(36).backgroundImage($rawfile(`judge/km3/zuo_nor.png`)).margin({left:24,top:4}) - Text('上一页'){}.fontColor('#FFF').fontSize(this.fontSize) - }.width(160).height(80).justifyContent(FlexAlign.Start).alignItems(VerticalAlign.Center).backgroundImage($rawfile(`judge/km3/button_nor.png`)).backgroundImageSize({width:'100%',height:'100%'}) - .onClick(()=>{this.goPage(0)}) - } - - if( - (Math.ceil(this.universalMarkRules.length / 7 - 1)) > (this.currentIndex ? this.currentUniversalPageIndex: this.currentPageIndex) - ){ - Row(){ - Text('下一页'){}.fontColor('#FFF').fontSize(this.fontSize).padding({left:30}) - Row(){}.width(36).height(36).backgroundImage($rawfile(`judge/km3/you_nor.png`)).margin({left:4,top:4}) - }.width(160).height(80).justifyContent(FlexAlign.Start).alignItems(VerticalAlign.Center).backgroundImage($rawfile(`judge/km3/button_nor.png`)).backgroundImageSize({width:'100%',height:'100%'}) - .onClick(()=>{this.goPage(1)}) - } - - - Row(){ - Text('扣 分'){}.fontColor('#FFF').fontSize(this.fontSize).padding({left:49}) - }.width(160).height(80).justifyContent(FlexAlign.Start).alignItems(VerticalAlign.Center).backgroundImage($rawfile(`judge/km3/button_nor.png`)).backgroundImageSize({width:'100%',height:'100%'}) - .onClick(()=>{ - const index = this.currentIndex ? this.currentUniversalPageIndex: this.currentPageIndex; - const mark = this.universalMarkRules[index * 7 + this.selectedLine] - mark && this.confirmMark(mark.itemno,mark.markserial) - }) - } - }.width('100%').justifyContent(FlexAlign.SpaceBetween) - Column(){ - ForEach(this.getCurrentMarkRuleList(),(item,index) => { - Row(){ - Text(`${item.markshow} (${item.markcatalog})`).fontColor('#FFF').fontSize(this.fontSize).fontWeight(500) - Row(){ - Text(item.markreal + '').fontColor('#FFF').fontSize(this.fontSize).fontWeight(500) - } - } - .width('100%').height(75).justifyContent(FlexAlign.SpaceBetween).alignItems(VerticalAlign.Center) - .padding({left:20,right:20}) - .backgroundColor(this.getSelectedLine(index)) - .onClick(()=>{this.selectedLine = index}) - }) - } - } - }.width(1300).height(710).position({x:'15%',y:'10%'}).backgroundColor('#E6E3DF').padding({top:15,bottom:15,left:25,right:25}).borderRadius(20) - Row(){}.width(100).height(100).position({y:'85%',x:'50%'}).backgroundImage($rawfile('judge/km3/close_nor.png')).backgroundImageSize({width:'100%',height:'100%'}) - .onClick(()=>{this.closePopup()}) - }.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)') - } -} - -export default DeductedPopup \ No newline at end of file diff --git a/entry/src/main/ets/pages/compontents/judge/end-popup.ets b/entry/src/main/ets/pages/compontents/judge/end-popup.ets deleted file mode 100644 index 431a38be..00000000 --- a/entry/src/main/ets/pages/compontents/judge/end-popup.ets +++ /dev/null @@ -1,27 +0,0 @@ - -@Component -struct EndPopup { - constructor() { - super() - } - - private title:string = '' - private cancelFn:(event?: ClickEvent) => void - private confirmFn:(event?: ClickEvent) => void - - build(){ - Column(){ - Column(){ - Text(this.title).fontSize(36).margin({bottom:20}) - Row(){}.height(100) - Row(){ - Text('取消').backgroundImage($rawfile('judge/end-btn.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(250).height(95).fontSize(28).fontColor('#FFF').textAlign(TextAlign.Center).onClick(this.cancelFn) - Text('确定').backgroundImage($rawfile('judge/end-btn.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(250).height(95).fontSize(28).fontColor('#FFF').textAlign(TextAlign.Center).margin({left:45}).onClick(this.confirmFn) - } - }.width('75%').height('70%').backgroundColor('#E6E3DF').borderRadius(38).position({y:'12%',x:'12.5%'}).justifyContent(FlexAlign.Center) - - }.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)') - } -} - -export default EndPopup \ No newline at end of file diff --git a/entry/src/main/ets/pages/compontents/judge/loading-popup.ets b/entry/src/main/ets/pages/compontents/judge/loading-popup.ets deleted file mode 100644 index de821513..00000000 --- a/entry/src/main/ets/pages/compontents/judge/loading-popup.ets +++ /dev/null @@ -1,21 +0,0 @@ - -@Component -struct LoadingPopup { - constructor() { - super() - } - - private title:string = '' - - build(){ - Column(){ - Column(){ - Image($rawfile('judge/loading-car.gif')).width(250).margin({top:20,bottom:20}) - Text(this.title).fontSize(32).margin({top:70}) - }.width('70%').height('70%').backgroundColor('#E6E3DF').borderRadius(38).position({y:'15%',x:'15%'}).justifyContent(FlexAlign.Center) - - }.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)') - } -} - -export default LoadingPopup diff --git a/entry/src/main/ets/pages/compontents/judge/real-time.ets b/entry/src/main/ets/pages/compontents/judge/real-time.ets deleted file mode 100644 index 4b033deb..00000000 --- a/entry/src/main/ets/pages/compontents/judge/real-time.ets +++ /dev/null @@ -1,83 +0,0 @@ -// @ts-nocheck -import hilog from '@ohos.hilog'; -import apiJudgeSdk from 'libJudgeSdk.so'; -// import apiJudgeSdk from '@ohos.judgesdk'; - -import Judge from '../../judgeSDK/utils/judge-real' -// import Judge from '../../judgeSDK/judge-track-playback' -import {Project,ProjectObj,MarkRule} from '../../judgeSDK/api/judgeSDK.d' -import AccountTable from '../../../common/database/tables/AccountTable'; -import MA_SYSSET from '../../../common//constants/MA_SYSSET'; -import common from '@ohos.app.ability.common'; -import { getSyncData } from '../../../common/service/initable' -import {testAllitems,testUIAllitems,testMarkRules} from '../../judgeSDK/dataTest/index' - -@Component -struct RealTime { - constructor() { - super() - } - - private height:number = 0 - private width:number = 0 - - @State message: string = '开始绘制' - - // 控制XComponent组件的创建和销毁 - @State draw: boolean = false - //监管接口序列号 - @State serialNumber:number = 0 - - //模拟考试项目 - @State projects:Project[] = [] - @State projectsObj:ProjectObj = {} - @State markRuleListObj:MarkRule ={} - private context = getContext(this) as common.UIAbilityContext; - - // xcomponentController: XComponentController = new XComponentController() - - build() { - Row() { - Column() { - if (this.draw) { - XComponent({ - id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 - type: 'surface', - libraryname: 'JudgeSdk' - // libraryname: 'judgesdk' - }) - .width(this.width) - .height(this.height) - .onLoad(() => { - apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 - }) - .onDestroy(() => { - apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 - this.draw = false; - clearInterval(globalThis.realTimer) - }) - } else { - Column() {} - .width(this.width) - .height(this.height) - } - } - .width('100%') - .backgroundColor('#fff') - } - .height('100%') - } - - async aboutToAppear() { - - const judge = new Judge(this) - } - - aboutToDisappear() { - //apiJudgeSdk.stopRender(); - - } - -} - -export default RealTime From 1a4301f4245933b46f03f9c2e2adb68a8f780461 Mon Sep 17 00:00:00 2001 From: surenjun Date: Tue, 16 Jul 2024 15:02:36 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat=EF=BC=9A=E7=A7=91=E7=9B=AE=E4=B8=89?= =?UTF-8?q?=E8=AF=84=E5=88=A4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Judge.ets | 32 ++++++++++--------- entry/src/main/ets/pages/UserInfo.ets | 16 ++++++++-- .../judge/BoardPrePareSetPopup.ets | 3 -- .../compontents/judge/DeductionPopup.ets | 21 ++++++------ .../ets/pages/judgeSDK/utils/judgeCommon.ts | 5 ++- .../ets/pages/judgeSDK/utils/judgeConfig.ts | 7 ++-- .../judgeSDK/utils/voiceAnnouncements.ts | 1 - 7 files changed, 46 insertions(+), 39 deletions(-) diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index 543cca28..f6eb8aa4 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -192,13 +192,13 @@ struct Index { }) this.totalScore += currentKf.markreal * 1; }) - this.projectsObj['1'].type = kfdm.length ? '4' : '3'; + this.projectsObj[1].type = kfdm.length ? '4' : '3'; this.projectsObj = { ...this.projectsObj } } - this.judgeConfigObj[sys.v_no] = value + }); this.judgeConfig = syssetJudgeConfigArr; } @@ -210,7 +210,7 @@ struct Index { const {carName,carType,examSubject} = this; //小车车型列表 const sCarTypes = ['C1', 'C2', 'C5'] - this.wayno = currentParams.wayno + this.wayno = currentParams.wayno || 1; const {isTrajectoryOpen} = judgeConfig let carNo = '', allItems = []; systemParms.forEach((systemParm) => { @@ -256,7 +256,7 @@ struct Index { //是否是必考 isRequired: allItems.includes(no2 + ''), } - this.projectsObj[no2] = currentProject + this.projectsObj[no2*1] = currentProject this.projectsCenterObj[txt2] = currentProject this.projects.push(currentProject); } @@ -272,7 +272,7 @@ struct Index { const projects = this.projects; if (!projects.length) { Prompt.showToast({ - message: '读取数据库信息失败,请重新考试!', + message: '读取数据库信息失败,请重新联网更新!', duration: 8000 }); router.back(); @@ -434,7 +434,7 @@ struct Index { Row() { Image($rawfile('judge/signal_logoS.png')).width(120) Text(this.time).fontColor('#CCB48F').fontSize(32).padding({ left: 10, right: 5 }) - Image($rawfile('judge/xh_green.png')).width(50) + Image($rawfile(this.isDwztRight?'judge/xh_red.png':'judge/xh_green.png')).width(50) }.padding({ left: 20 }) Row() { @@ -819,8 +819,8 @@ struct Index { currentItems: Reflect.ownKeys(this.projectsObj).map(projectKey => { //@ts-ignore const project = this.projectsObj[projectKey] - return project.type == '2' ? project.projectCode : '' - }).filter(project => project !== ''), + return project.type == '2' ? project.projectCode : undefined + }).filter(project => project !== undefined), markRules: this.manualMarkRules, closePopup: () => { this.isDeductedPopShow = false @@ -928,9 +928,9 @@ struct Index { } = this; const projectCode = artSubject3ProjectsCodesArr[index]; const projectType = projectsObj[projectCode].type; + //不允许人工触发的项目列表,以","分隔 const unExitManualProjects = judgeConfigObj['332'].split(',') || []; - //直线行驶中不进其他考试项目(0-否 1-是) const param348 = judgeConfigObj['348'] || '0', //里程不够允许手工点靠边停车(0-否 1-是) @@ -999,17 +999,17 @@ struct Index { const projectRoads = { //直线行驶 - '3': (judgeConfigObj['514'].split(',') || []), + '3': (judgeConfigObj['514']?.split(',') || []), //变更车道 - '4':judgeConfigObj['515'].split(',') || [], + '4':judgeConfigObj['515']?.split(',') || [], //超车 - '10':judgeConfigObj['516'].split(',') || [], + '10':judgeConfigObj['516']?.split(',') || [], //靠边停车 - '11':judgeConfigObj['517'].split(',') || [], + '11':judgeConfigObj['517']?.split(',') || [], //会车 - '9':judgeConfigObj['518'].split(',') || [], + '9':judgeConfigObj['518']?.split(',') || [], //掉头 - '12':judgeConfigObj['519'].split(',') || [], + '12':judgeConfigObj['519']?.split(',') || [], }; //未测绘得道路上或者不在差分状态 @@ -1134,6 +1134,8 @@ struct Index { //必考项目除靠边停车是否全部完成 @State isRequiredProjectsEnd: boolean = false; @State lane: LANE = { road: '', num: 0, count: 0 } + //定位差分状态时候正常 + @State isDwztRight:boolean = false; private context = getContext(this) as common.UIAbilityContext; //已考考试项目 } diff --git a/entry/src/main/ets/pages/UserInfo.ets b/entry/src/main/ets/pages/UserInfo.ets index c5dbf008..59e0bc0d 100644 --- a/entry/src/main/ets/pages/UserInfo.ets +++ b/entry/src/main/ets/pages/UserInfo.ets @@ -125,6 +125,10 @@ struct UserInfo { // globalThis.statue=4 router.pushUrl({ url: 'pages/Judge', + params:{ + sczb:Number(this.isBoardPrePareSetPopupOpen), + kfdm:this.sczbkf + } }, router.RouterMode.Single); return } @@ -499,7 +503,11 @@ struct UserInfo { this.stepFlag = false router.pushUrl({ url: 'pages/Judge', - params: { examItems: examItems?.getExaminationItemRsp?.body?.ykxx } + params: { + examItems: examItems?.getExaminationItemRsp?.body?.ykxx , + sczb:Number(this.isBoardPrePareSetPopupOpen), + kfdm:this.sczbkf + } }, router.RouterMode.Single); this.stopDeviceById() @@ -511,7 +519,11 @@ struct UserInfo { this.stepFlag = false router.pushUrl({ url: 'pages/Judge', - params: { examItems: examItems?.getExaminationItemRsp?.body?.ykxx } + params: { + examItems: examItems?.getExaminationItemRsp?.body?.ykxx , + sczb:Number(this.isBoardPrePareSetPopupOpen), + kfdm:this.sczbkf + } }, router.RouterMode.Single); globalThis.statue = 4 this.stopDeviceById() diff --git a/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets b/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets index d13a1ff2..b277baca 100644 --- a/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets +++ b/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets @@ -95,14 +95,11 @@ export default struct DeductedPopup { if (sys.v_no == '901') { this.serialNumber = sys.v_value || '123456' } - console.info('surenjun',sys.v_no) - //364 绕车一周评判时机(1-开始考试后判 2-开始考试前判) if (sys.v_no == '364') { const isOpen = sys.v_value == 2 if (isOpen) { this.avPlayer.playAudio(['voice/上车准备.mp3']) - console.info('surenjun','voice/上车准备.mp3') } } diff --git a/entry/src/main/ets/pages/compontents/judge/DeductionPopup.ets b/entry/src/main/ets/pages/compontents/judge/DeductionPopup.ets index 38e66c5a..576e8b14 100644 --- a/entry/src/main/ets/pages/compontents/judge/DeductionPopup.ets +++ b/entry/src/main/ets/pages/compontents/judge/DeductionPopup.ets @@ -21,7 +21,7 @@ export default struct DeductedPopup { private markRules:MarkRule[] = [] @State universalMarkRules:MarkRule[] = [] @State manualMarkRules:MarkRule[] = [] - @State currentItems:string[] = [] + @State currentItems:number[] = [] @State lineBg:Array = ['#4D4136','#26231E'] @State selectedLine:number = undefined @@ -33,7 +33,9 @@ export default struct DeductedPopup { } aboutToAppear(){ - this.universalMarkRules = this.markRules.filter(item => this.currentItems.includes(item.itemno+'')) + //@ts-ignore + + this.universalMarkRules = this.markRules.filter(item => (this.currentItems.includes(item.itemno) || this.currentItems.includes(item.itemno + ''))) } //上一页 下一页 goPage(typeIndex){ @@ -78,7 +80,6 @@ export default struct DeductedPopup { Row(){ Row(){ ForEach(['人工评判','通用评判'],(text,index)=>{ - Row(){ Text(text).fontColor(index === this.currentIndex ? this.selected.fontColor : this.unselected.fontColor).fontSize(this.fontSize).fontWeight(500) } @@ -91,7 +92,8 @@ export default struct DeductedPopup { if(index === 1) { this.universalMarkRules = this.markRules.filter(item => item.itemno == 20 ) }else{ - this.universalMarkRules = this.markRules.filter(item => this.currentItems.includes(item.itemno+'')) + //@ts-ignore + this.universalMarkRules = this.markRules.filter(item => (this.currentItems.includes(item.itemno) || this.currentItems.includes(item.itemno+''))) } }) }) @@ -121,11 +123,11 @@ export default struct DeductedPopup { Row(){ Text('扣 分'){}.fontColor('#FFF').fontSize(this.fontSize).padding({left:35}) }.width(120).height(60).justifyContent(FlexAlign.Start).alignItems(VerticalAlign.Center).backgroundImage($rawfile(`judge/km3/button_nor.png`)).backgroundImageSize({width:'100%',height:'100%'}) - .onClick(()=>{ - const index = this.currentIndex ? this.currentUniversalPageIndex: this.currentPageIndex; - const mark = this.universalMarkRules[index * 7 + this.selectedLine] - mark && this.confirmMark(mark.itemno,mark.markserial) - }) + .onClick(()=>{ + const index = this.currentIndex ? this.currentUniversalPageIndex: this.currentPageIndex; + const mark = this.universalMarkRules[index * 7 + this.selectedLine] + mark && this.confirmMark(mark.itemno,mark.markserial) + }) } }.width('100%').justifyContent(FlexAlign.SpaceBetween) Column(){ @@ -145,7 +147,6 @@ export default struct DeductedPopup { } }.width(1200).height(620).position({x:30,y:315}).backgroundColor('#E6E3DF').padding({top:15,bottom:15,left:25,right:25}).borderRadius(20) // Row(){}.width(100).height(100).position({y:'85%',x:'50%'}).backgroundImage($rawfile('judge/km3/close_nor.png')).backgroundImageSize({width:'100%',height:'100%'}) - }.width('100%').height('100%').position({y:0}).onClick(()=>{this.closePopup()}) } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts index fafeaeca..144a65ac 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts @@ -63,7 +63,6 @@ export function getCenterProjectStatus(status){ } //获取科目三开始项目、结束项目语音 - export function getKmProjectVoice( projectCode, // 1:项目开始 2:项目结束 @@ -101,8 +100,8 @@ export function getKmProjectVoice( case 40600 : return type === 1 ? 406001 : undefined //掉头 case 41500 : return type === 1 ? 415001:undefined - //超车 - case 40400 : return type === 1 ? 404001:undefined + //加减挡为 + case 40400 : return type === 1 ? undefined : undefined default :return undefined } diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts index c77e2190..58e31e14 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts @@ -1,5 +1,4 @@ - //考试回放开关 export const judgeConfig = { //本地目录开关 @@ -9,11 +8,9 @@ export const judgeConfig = { // 本地模型地址 modelPath: 'models/model_enc', // 轨迹回放地址 - // trajectoryPath: 'logs/2024_07_11/0000000000001_342323199501470011_测试学员1_2024_07_11_14_25_52/judge_exam_data.txt', - // trajectoryPath: 'logs/2024_07_11/0000000000001_342323199501470011_测试学员1_2024_07_01_11_30_16/judge_exam_data.txt', - trajectoryPath: 'logs/2024_07_11/0000000000001_342323199501470011_测试学员1_2024_07_11_14_25_52/judge_exam_data.txt', + trajectoryPath: 'logs/2024_07_11/0000000000001_342323199501470011_测试学员1_2024_07_11_13_33_10/judge_exam_data.txt', //扣分语音是否强制开启 - kfVoiceOpen:false, + kfVoiceOpen:true, //TODO 济南临时特殊配置 systemParamConfig:{} } \ No newline at end of file diff --git a/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ts b/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ts index b8ac1b65..e1f4c1b2 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ts @@ -25,7 +25,6 @@ export default class VoiceAnnounce{ async playAudio(urls:string[],shit?:boolean,callback?:Function){ const {isStopped,queue} = this; - // this.callback = callback const tempUrls = urls.map((url,index)=>{ return { url, From 03df4becd92e1a13633fa01929d42a668ecae39e Mon Sep 17 00:00:00 2001 From: surenjun Date: Tue, 16 Jul 2024 17:32:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat=EF=BC=9A=E7=A7=91=E7=9B=AE=E4=B8=89?= =?UTF-8?q?=E8=AF=84=E5=88=A4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Index.ets | 3 +++ entry/src/main/ets/pages/Judge.ets | 23 +++++++++++----------- entry/src/main/ets/pages/judgeSDK/judge.ts | 20 ++++++++----------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 41b8eda3..f2e3feec 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -15,6 +15,7 @@ import { getliushuiNum, setliushuiNum } from '../common/service/indexService'; import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; import worker, { MessageEvents } from '@ohos.worker'; import promptAction from '@ohos.promptAction' +import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; @Entry @Component @@ -213,6 +214,8 @@ struct Index { globalThis.ratio = 1700 / 960 this.angle = 0 this.loading = false + const avPlayer = new VoiceAnnounce(); + avPlayer.playAudio(['voice/welcome.mp3']) } async testXMLToJSONInWorker() { diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index f6eb8aa4..819ed4e0 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -436,7 +436,6 @@ struct Index { Text(this.time).fontColor('#CCB48F').fontSize(32).padding({ left: 10, right: 5 }) Image($rawfile(this.isDwztRight?'judge/xh_red.png':'judge/xh_green.png')).width(50) }.padding({ left: 20 }) - Row() { Text(`当前项目:${this.xmmcStr || '无'} `).fontColor('#E5CCA1').fontSize(32) } @@ -607,9 +606,7 @@ struct Index { List({}) { ForEach(this.projects, (project) => { ListItem() { - Text(project.name) { - - } + Text(project.name) {} .fontColor(this.getProjectColor(this.projectsObj[project.projectCode].type)) .margin({ bottom: 5 }) .fontSize(26) @@ -951,18 +948,22 @@ struct Index { if (judgeConfigObj['342'] === '3' || judgeConfigObj['342'] === '2') { return false } + //不允许人工触发的项目列表 if (unExitManualProjects.includes(artSubject3ProjectsCodesArr[index])) { return false } //项目进行中不能人工触发 - if (isProjectIn) { - if (param340 == 1 && isManualProjectIn && (currentXmdm == projectCode)) { - return true - }else{ - return false + if(isProjectIn) { + if(param340 == 1){ + if(isManualProjectIn && (currentXmdm == projectCode)){ + return true + }else{ + return false + } } + return false } //项目路段信息判断 @@ -1012,6 +1013,8 @@ struct Index { '12':judgeConfigObj['519']?.split(',') || [], }; + console.info('surenjun',JSON.stringify(projectRoads)) + //未测绘得道路上或者不在差分状态 if(road === ''){ return false @@ -1040,10 +1043,8 @@ struct Index { if(projectCode == '10' || projectCode == '4'){ if(count < 2){return false} } - return true - } // 获取人工项目是否已做 getIsEndManualProject = (index: number) => { diff --git a/entry/src/main/ets/pages/judgeSDK/judge.ts b/entry/src/main/ets/pages/judgeSDK/judge.ts index aaaf3bff..85d98f0a 100644 --- a/entry/src/main/ets/pages/judgeSDK/judge.ts +++ b/entry/src/main/ets/pages/judgeSDK/judge.ts @@ -172,9 +172,8 @@ export default class Judge { handleTrajectoryUdp(strArr); return } - // 处理实时udp里的plc信号 - globalThis.udpClient.onMessage(async (msg) => { + globalThis.udpClient.onMessage_1(async (msg) => { handleUdp(msg) }) } @@ -323,8 +322,9 @@ export default class Judge { case 2: judgeUI.projectsObj[xmdm].type = (xmjs.xmhg === 0 ? '4' : '3'); //计算项目是否全部结束 - console.info(judgeTag,projects.filter(project => project.type == '2').length ) - this.judgeUI.isProjectIn = (projects.filter(project => project.type == '2').length) > 0 + this.judgeUI.isProjectIn = (Reflect.ownKeys(judgeUI.projectsObj).filter( + projectKey => judgeUI.projectsObj[projectKey].type == '2').length + ) > 0; if(isManualProjectIn){ this.judgeUI.isManualProjectIn = false } @@ -383,6 +383,7 @@ export default class Judge { //车道和路段变化 case 9: this.judgeUI.lane = lane + console.info('surenjun',JSON.stringify(lane)) break; default: @@ -624,11 +625,10 @@ export default class Judge { const {avPlayer,fileLog} = this; const {xmdm,code,type} = sound; //判断是不是模拟灯光语音 - console.info(judgeTag,JSON.stringify(sound)) if(type == 1){ console.info(judgeTag, '模拟灯光开始播放:' + code) } - avPlayer.playAudio([`voice/${code}.mp3`], true, () => { + avPlayer.playAudio([`voice/${code}.mp3`], false, () => { if (type == 1) { console.info(judgeTag, '播放结束:' + code) examJudgeSoundEnd({itemno:xmdm,code,type}) @@ -794,9 +794,7 @@ export default class Judge { const {jd,wd, hxj, fyj, hbg,} = gps const translateProject = getTranslateProject(); const sbxh = getSbxh(xmdm, xmxh) - console.log('sbxhsbxh', sbxh) const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo; - console.log('performInfo', JSON.stringify(performInfo)) // const asclshArr = stringToASC(lsh); const asclshArr = stringToASC(fillZero('0000000000000' || 0, 13)); @@ -806,19 +804,16 @@ export default class Judge { const translateSignals = getTranslateSignals( [zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd, 0, 0, 0, 0].concat(getCarStatusType(carzt)).concat([ygq, sensor.wd, 0]) ) - console.log('jinweidu111jdwd0') //@ts-ignore const translateJd = convertGpsCoord2(wd).toFixed(7) * Math.pow(10, 7); //@ts-ignore const translateWd = convertGpsCoord2(jd).toFixed(7) * Math.pow(10, 7) - console.log('jinweidu111jdwd') //@ts-ignore const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0]) //@ts-ignore // const translateProjects= translateProject.map(num => string2Bytes(p,8)[0]) - console.log('jinweidu2222', `${examType}${startHourTime}`) const arr = [ //考生号 TODO 考试员号 asclshArr.map(lsh => string2Bytes(lsh, 8)[0]), @@ -1043,6 +1038,7 @@ export default class Judge { const str = await senorToWXDataStr(msg); usbService.sendUSB(str) } + this.judgeUI.isDwztRight = plcData.gps.dwzt == 4; await examJudgeRealExam(plcData) const udpIndex = globalThis.udpIndex; if (udpIndex % 5 === 0) { @@ -1117,7 +1113,7 @@ export default class Judge { } await examJudgeRealExam(msg) num++ - }, 100) + }, 200) globalThis.judgeTimer = judgeTimer; } // 统计必考项目数量