diff --git a/build-profile.json5 b/build-profile.json5 index 4489041e..6aa0abf5 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -5,9 +5,9 @@ "name": "default", "material": { "certpath": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.cer", - "storePassword": "0000001B2A120129476E60A13CB90F2A118FC1DACD776EBF625CBC8C75E83CE8BC2DA4E57F6E6868B0CA45", + "storePassword": "0000001BF9CC4AD294FB6AC2D8A5278FFFD88EEDF04B79D51256E066D7DD5E2E118E445F67468002D624CA", "keyAlias": "debugKey", - "keyPassword": "0000001BE3163B872A727924E46576C7DF1ACBE4283BA076307E0B53166334958EEE387B446DD981CBE5BA", + "keyPassword": "0000001BF982C0CB222DFA95970757643CDB791BF698C923C974A4A81AD8C2B28B4CE7839BED505B4EE3E2", "profile": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p7b", "signAlg": "SHA256withECDSA", "storeFile": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p12" diff --git a/entry/src/main/cpp/bin/libJudgeSdk.so b/entry/src/main/cpp/bin/libJudgeSdk.so index d26bbd75..12645c5d 100644 Binary files a/entry/src/main/cpp/bin/libJudgeSdk.so and b/entry/src/main/cpp/bin/libJudgeSdk.so differ diff --git a/entry/src/main/cpp/sdk/common/HVersion.h b/entry/src/main/cpp/sdk/common/HVersion.h index 56dfd9cb..3af95402 100644 --- a/entry/src/main/cpp/sdk/common/HVersion.h +++ b/entry/src/main/cpp/sdk/common/HVersion.h @@ -27,7 +27,7 @@ #define JUDGE_VERSION_MAJOR 1 #define JUDGE_VERSION_MINOR 0 #define JUDGE_VERSION_PATCH 3 -#define JUDGE_VERSION_STAMP "2504171042b" +#define JUDGE_VERSION_STAMP "2504191100b" #if JUDGE_USE_OLD # undef JUDGE_VERSION_STAMP # define JUDGE_VERSION_STAMP "2411121010b.old" diff --git a/entry/src/main/cpp/sdk/database/HDBTable.h b/entry/src/main/cpp/sdk/database/HDBTable.h index c0a917f4..d5f189aa 100644 --- a/entry/src/main/cpp/sdk/database/HDBTable.h +++ b/entry/src/main/cpp/sdk/database/HDBTable.h @@ -121,6 +121,7 @@ namespace siteof siteof_declare(JXYTSF001); siteof_declare(hnzzkm3); siteof_declare(jswxbz); + siteof_declare(scms); siteof_declare(tcrx); //无锡所检测地点版本特殊 diff --git a/entry/src/main/cpp/sdk/exam/ExamCarSub2.cpp b/entry/src/main/cpp/sdk/exam/ExamCarSub2.cpp index 60bea0de..d79e630b 100644 --- a/entry/src/main/cpp/sdk/exam/ExamCarSub2.cpp +++ b/entry/src/main/cpp/sdk/exam/ExamCarSub2.cpp @@ -135,7 +135,8 @@ ErrorCode ExamCarSub2::examGoonExam() } //已经不合格了 如果是考试模式,只要分数不合格就立即结束考试 - if( (isExamMode() && !isQualified()) || allItemFinish() ) + //20250418无锡科目二考试结束的地方网络不好,存在考试结束无法上传,需要支持ykxm项目全部做完了,评判初始化、开始考试能调用成功;问过工程wins是这么操作的。 + if( (isExamMode() && !isQualified()) /*|| allItemFinish()*/ ) { //createEventExamFinish(ExamFinishAuto); //杨 20240724 都由苏那边控制 return QE(errorBeginNotQual); //已经不合格了 @@ -347,7 +348,7 @@ void ExamCarSub2::dealJudgeExam() } if(allItemFinish()) //如果所有项目都做过了,就不用再读项目了 { - logdebug("allItemFinish"); + //logdebug("allItemFinish"); return; } diff --git a/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp b/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp index 72d78d34..efa032d1 100644 --- a/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp +++ b/entry/src/main/cpp/sdk/exam/ExamCarSub3.cpp @@ -1045,6 +1045,14 @@ void ExamCarSub3::UpdateCarParmWithSystemParm() } }; + const auto PARM_NO3_70 = [&](const TSystemparm* parm)->void + { + if(parm->TXT1 != "") + { + m_car.XiHuo = std::atoi(parm->TXT1.c_str()); + } + }; + //得到考车参数 int parm3Size = TableSysParm->parm3Size(); for(int i = 0; i < parm3Size; i++) @@ -1094,6 +1102,7 @@ void ExamCarSub3::UpdateCarParmWithSystemParm() PARM_CASE_WITH(61); //61:按车型设置的靠边停车参数 PARM_CASE_WITH(62); //62:按车型设置的夜间模拟灯光触发条件 PARM_CASE_WITH(63); //63:满分学习的学员考试必考项目(非正常的科目三学员),目前可以暂不考虑这种学员 + PARM_CASE_WITH(70); //同500熄火参数 PARM_SWITCH_END; } diff --git a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp index 65657181..2f6b2e43 100644 --- a/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp +++ b/entry/src/main/cpp/sdk/judge/sub3/Sub3Judge20Comm.cpp @@ -282,6 +282,10 @@ void Sub3Judge20Comm::Init_ZongHe() //自动熄火评判方式:熄火次数扣分,1:根据PLC熄火次数 2:根据点火2,其它值:根据发动机转速为0或点火2+转速大于100 m_itemvCJH.zdxhkf = s500.size() > 1 && s500[1] != "" ? std::atoi(s500[1].c_str()) : 0; + if(tcar->XiHuo != INVALID_INDEX) //优先以车型代码参数NO3=70,同500参数 + { + m_itemvCJH.zdxhkf = tcar->XiHuo; + } //踩副刹时长 m_itemvCJH.fscys = s500.size() > 2 && s500[2] != "" ? std::atoi(s500[2].c_str()) : 5; //挡位扣分间隔 @@ -1316,9 +1320,23 @@ void Sub3Judge20Comm::Judge_KongDangHuaXing() //空挡滑行:30115 相关评判 if(m_itemvCJH.kdhx_tk > 0) { - if(sor.dw > 0 || cg->move != moveForward || Tools::isZero(gps.sd) || sor.lhq == SYES || - (ksdd == siteof::changzhoukm3 && sor.lhq == SYES) || - (ksdd == siteof::zjhz && sor.lhq == SYES)) + bool i = false; + if(sor.dw > 0 || cg->move != moveForward || Tools::isZero(gps.sd)) + { + i = true; + } + if(ksdd != siteof::scms && sor.lhq == SYES) + { + i = true; + } + const std::vector& s507 = TableSysSet->asArray507(); + std::string ss507 = s507.size() > 11 ? s507[11] : ""; + if(ss507 != "1" && sor.lhq == SYES) + { + i = true; + } + + if(i) { m_itemvCJH.kdhx_tk = 0; } @@ -4557,6 +4575,7 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() if(gps.sd < 5.0 && gps1.sd < 5.0 && gps2.sd < 5.0) return; + #define HIS(x) m_car->historySensor(x).dw //SysSet[425] 一档一离合相关 // (* // 加减档位操作挂一个挡位要松一次离合器(项目,全程)(0-否 1-是)() @@ -4566,8 +4585,7 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() TKM3Item* item14 = m_car->findExamItem(Sub3ItemType14Jjdw);//加减挡 if(item14 && item14->TestPro == ItemProFlagIdle && ss425 == "1") { - const TSensorInfo& sor3 = m_car->historySensor(3); - if(sor.dw == sor1.dw && sor.dw != sor2.dw && sor.dw != sor3.dw && sor.dw > 0) + if(sor.dw == HIS(1) && sor.dw != HIS(2) && sor.dw != HIS(3) && sor.dw > 0) { int dw = sor.dw; int k = 0; @@ -4580,18 +4598,12 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() } const TSensorInfo& sori = m_car->historySensor(i); - int dw_i0 = sori.dw; - int dw_i1 = m_car->historySensor(i + 1).dw; - int dw_i2 = m_car->historySensor(i + 2).dw; - int dw_i3 = m_car->historySensor(i + 3).dw; - int dw_i4 = m_car->historySensor(i + 4).dw; - int dw_i5 = m_car->historySensor(i + 5).dw; - int dw_i6 = m_car->historySensor(i + 6).dw; if(sori.lhq == SNOT) break; - if(dw_i0 == SNOT) continue; - if(dw != dw_i0 && dw_i0 == dw_i1 && dw_i0 == dw_i2 && dw_i0 == dw_i3 && - dw_i0 == dw_i4 && dw_i0 == dw_i5 && dw_i0 == dw_i6) + if(sori.dw == 0) continue; + if(dw != sori.dw && + sori.dw == HIS(i+1) && sori.dw == HIS(i+2) && sori.dw == HIS(i+3) && + sori.dw == HIS(i+4) && sori.dw == HIS(i+5) && sori.dw == HIS(i+6)) { k = k + 1; dw = sori.dw; @@ -4604,11 +4616,45 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() } } + /* + if Ctl.ksdd = 'wuxijiance' then + begin + if (cg.di_lhq = 1) and (cg.ai_dw = 3) then + begin + for i := 1 to 100 do + begin + if lscg[zj(i)].di_lhq = 0 then + Break; + if lscg[zj(i)].ai_dw > 3 then + Break; + if lscg[zj(i)].ai_dw = 1 then + begin + Mark(14, '01', True); + Break; + end; + end; + end; + end; + */ + int count = m_car->historyCount(); + bool btempkf = false; + bool btemp1 = false; + bool btemp2 = false; //越级加减档持续时间 if(m_itemvCJH.yjjdcxsj == 0) { - if(sor.dw == sor1.dw && sor.dw == sor2.dw && sor.dw > 0 && sor.dw < 9 && + bool ix = 0; + if(sor.lhq == SNOT) + { + ix = 1; + } + if(ksdd == siteof::lfgakm3) + { + ix = 1; + } + + if(sor.dw == HIS(1) && sor.dw == HIS(2) && sor.dw > 0 && sor.dw < 9 && sor.lhq == SNOT && gps.sd > 5 && !IS_C2(m_carType) && !IS_C5(m_carType)) //增加了车速>5 20151214 { for(int i = 3; i < 53; i++) @@ -4619,31 +4665,27 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() } const TChuanGan* hisi = m_car->historyChuanGan(i); const TSensorInfo& sori = hisi->real.sensor; - int dw_i0 = sori.dw; - if(dw_i0 != 0) continue; - int dw_i1 = m_car->historySensor(i + 1).dw; - int dw_i2 = m_car->historySensor(i + 2).dw; + if(sori.dw >= sor.dw && sori.lhq == SNOT) break; + if(sori.dw + 1 == sor.dw && sori.lhq == SNOT) break; - if(dw_i1 >= sor.dw && sori.lhq == SNOT) break; - if(dw_i1 + 1 == sor.dw && sori.lhq == SNOT) break; + if(sori.dw == 0) + btemp1 = true; + if(sori.lhq == SYES) + btemp2 = true; + if(ksdd == siteof::shandong) + btemp2 = true; + if(ksdd == siteof::scms || ksdd == siteof::hnay || ksdd == siteof::lfgakm3) + btemp1 = true; + if(btemp1 && btemp2) + btempkf = true; - if(dw_i1 < sor.dw && dw_i1 > 0 && dw_i1 == dw_i2) + if(sori.dw < sor.dw && HIS(i+1) == sori.dw && sori.dw > 0) { - if(sor.dw - dw_i1 > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt) + if(sor.dw - sori.dw > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt && btempkf) { - bool FindFlag = false; - if(ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) - { - FindFlag = true; - } - TKM3Item* item14 = m_car->findExamItem(Sub3ItemType14Jjdw); //加减挡 - if(item14 && item14->TestPro > ItemProFlagIdle) - { - FindFlag = true; - } - if(FindFlag == true) + if((item14 && item14->TestPro > ItemProFlagIdle) || ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) { JUDGE_MARK_SUB3(14, "01", true); } @@ -4660,12 +4702,18 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() } else if(m_itemvCJH.yjjdcxsj == 1) { - const TSensorInfo& sor2 = m_car->historySensor(2); - const TSensorInfo& sor3 = m_car->historySensor(3); - const TSensorInfo& sor4 = m_car->historySensor(4); - if(sor.dw == sor1.dw && sor.dw == sor2.dw && sor.dw == sor3.dw && sor.dw == sor4.dw && - sor.dw > 0 && sor.dw < 9 && sor.lhq == SNOT && sor4.lhq == SNOT && gps.sd > 5 && - !IS_C2(m_carType) && !IS_C5(m_carType)) //增加了车速>5 20151214 + bool ix = 0; + if(sor.lhq == SNOT && sor1.lhq == SNOT) + { + ix = 1; + } + if(ksdd == siteof::lfgakm3) + { + ix = 1; + } + if(sor.dw == HIS(1) && sor.dw == HIS(2) && sor.dw == HIS(3) && sor.dw == HIS(4) && + sor.dw > 0 && sor.dw < 9 && sor.lhq == SNOT && sor1.lhq == SNOT && + gps.sd > 5 && !IS_C2(m_carType) && !IS_C5(m_carType)) //增加了车速>5 20151214 { for(int i = 5; i <= 55; i++) { @@ -4676,35 +4724,29 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() const TChuanGan* hisi = m_car->historyChuanGan(i); const TSensorInfo& sori = hisi->real.sensor; - int dw_i0 = sori.dw; - if(dw_i0 != 0) continue; - int dw_i1 = m_car->historySensor(i + 1).dw; - int dw_i2 = m_car->historySensor(i + 2).dw; - int dw_i3 = m_car->historySensor(i + 3).dw; - int dw_i4 = m_car->historySensor(i + 4).dw; - int dw_i5 = m_car->historySensor(i + 5).dw; + if(sori.dw > sor.dw && sori.lhq == SNOT) break; + if(sori.dw + 1 == sor.dw && sori.lhq == SNOT) break; - if(dw_i1 > sor.dw && sori.lhq == SNOT) break; - if(dw_i1 + 1 == sor.dw && sori.lhq == SNOT) break; + if(sori.dw == 0) + btemp1 = true; + if(sori.lhq == SYES) + btemp2 = true; + if(ksdd == siteof::shandong) + btemp2 = true; + if(ksdd == siteof::scms || ksdd == siteof::hnay || ksdd == siteof::lfgakm3) + btemp1 = true; + if(btemp1 && btemp2) + btempkf = true; - if(dw_i1 < sor.dw && dw_i1 > 0 && - dw_i2 == dw_i1 && dw_i3 == dw_i1 && dw_i4 == dw_i1 && dw_i5 == dw_i1) + if(sori.dw < sor.dw && + HIS(i+1) == sori.dw && HIS(i+2) == sori.dw && + HIS(i+3) == sori.dw && HIS(i+4) == sori.dw && sori.dw > 0) { - if(sor.dw - dw_i1 > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt) + if(sor.dw - sori.dw > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt && btempkf) { - bool FindFlag = false; - if(ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) - { - FindFlag = true; - } - TKM3Item* item14 = m_car->findExamItem(Sub3ItemType14Jjdw); //加减挡 - if(item14 && item14->TestPro > ItemProFlagIdle) - { - FindFlag = true; - } - if(FindFlag == true) + if((item14 && item14->TestPro > ItemProFlagIdle) || ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) { JUDGE_MARK_SUB3(14, "01", true); } @@ -4721,18 +4763,20 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() } else if(m_itemvCJH.yjjdcxsj == 2) { - const TSensorInfo& sor3 = m_car->historySensor(3); - const TSensorInfo& sor4 = m_car->historySensor(4); - const TSensorInfo& sor5 = m_car->historySensor(5); - const TSensorInfo& sor6 = m_car->historySensor(6); - const TSensorInfo& sor7 = m_car->historySensor(7); - const TSensorInfo& sor8 = m_car->historySensor(8); + bool ix = 0; + if(sor.lhq == SNOT && sor2.lhq == SNOT) + { + ix = 1; + } + if(ksdd == siteof::lfgakm3) + { + ix = 1; + } - if(sor.dw == sor1.dw && sor.dw == sor2.dw && sor.dw == sor3.dw && - sor.dw == sor4.dw && sor.dw == sor5.dw && sor.dw == sor6.dw && - sor.dw == sor7.dw && sor.dw == sor8.dw && sor.dw > 0 && - sor.dw < 9 && sor.lhq == SNOT && sor2.lhq == SNOT && - gps.sd > 5 && !IS_C2(m_carType) && !IS_C5(m_carType)) //增加了车速>5 20151214 + if(sor.dw == HIS(1) && sor.dw == HIS(2) && sor.dw == HIS(3) && + sor.dw == HIS(4) && sor.dw == HIS(5) && sor.dw == HIS(6) && + sor.dw == HIS(7) && sor.dw == HIS(8) && sor.dw > 0 && sor.dw < 9 && + ix == 1 && gps.sd > 5 && !IS_C2(m_carType) && !IS_C5(m_carType)) //增加了车速>5 20151214 { for(int i = 9; i < 59; i++) { @@ -4742,44 +4786,31 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() } const TChuanGan* hisi = m_car->historyChuanGan(i); const TSensorInfo& sori = hisi->real.sensor; - int dw_i0 = sori.dw; - if(dw_i0 != 0) continue; - int dw_i1 = m_car->historySensor(i + 1).dw; - int dw_i2 = m_car->historySensor(i + 2).dw; - int dw_i3 = m_car->historySensor(i + 3).dw; - int dw_i4 = m_car->historySensor(i + 4).dw; - int dw_i5 = m_car->historySensor(i + 5).dw; - int dw_i6 = m_car->historySensor(i + 6).dw; - int dw_i7 = m_car->historySensor(i + 7).dw; - int dw_i8 = m_car->historySensor(i + 8).dw; - int dw_i9 = m_car->historySensor(i + 9).dw; - int dw_i10 = m_car->historySensor(i + 10).dw; + if(sori.dw > sor.dw && sori.lhq == SNOT) break; + if(sori.dw + 1 == sor.dw && sori.lhq == SNOT) break; - if(dw_i1 > sor.dw && sori.lhq == SNOT) break; - if(dw_i1 + 1 == sor.dw && sori.lhq == SNOT) break; + if(sori.dw == 0) + btemp1 = true; + if(sori.lhq == SYES) + btemp2 = true; + if(ksdd == siteof::shandong) + btemp2 = true; + if(ksdd == siteof::scms || ksdd == siteof::hnay || ksdd == siteof::lfgakm3) + btemp1 = true; + if(btemp1 && btemp2) + btempkf = true; - if(dw_i1 < sor.dw && dw_i1 > 0 && dw_i2 == dw_i1 && dw_i3 == dw_i1 && - dw_i4 == dw_i1 && dw_i5 == dw_i1 && dw_i6 == dw_i1 && dw_i7 == dw_i1 && - dw_i8 == dw_i1 && dw_i9 == dw_i1 && dw_i10 == dw_i1) + if(sori.dw < sor.dw && + HIS(i+1) == sori.dw && HIS(i+2) == sori.dw && HIS(i+3) == sori.dw && + HIS(i+4) == sori.dw && HIS(i+5) == sori.dw && HIS(i+6) == sori.dw && + HIS(i+7) == sori.dw && HIS(i+8) == sori.dw && HIS(i+9) == sori.dw && sori.dw > 0) { - if(sor.dw - dw_i1 > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt) + if(sor.dw - sori.dw > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt && btempkf) { - bool FindFlag = false; - if(ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) - { - FindFlag = true; - } - TKM3Item* item14 = m_car->findExamItem(Sub3ItemType14Jjdw); //加减挡 - if(item14 && item14->TestPro > ItemProFlagIdle) + if((item14 && item14->TestPro > ItemProFlagIdle) || ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) { - FindFlag = true; - } - if(FindFlag == true) - { - //安卓档位评判好像逻辑上做了优化,比方说越级加档,中间必须出现 0 才判,1 跳 3 的情况,没出现 0 不判 - //项目经理吉说的先按照这样做 JUDGE_MARK_SUB3(14, "01", true); } else @@ -4800,44 +4831,23 @@ void Sub3Judge20Comm::Judge_YueJi_JiaJianDang() { break; } - const TChuanGan* hisi = m_car->historyChuanGan(i); const TSensorInfo& sori = hisi->real.sensor; - int dw_i0 = sori.dw; - int dw_i1 = m_car->historySensor(i + 1).dw; - int dw_i2 = m_car->historySensor(i + 2).dw; - int dw_i3 = m_car->historySensor(i + 3).dw; - int dw_i4 = m_car->historySensor(i + 4).dw; - int dw_i5 = m_car->historySensor(i + 5).dw; - int dw_i6 = m_car->historySensor(i + 6).dw; - int dw_i7 = m_car->historySensor(i + 7).dw; - int dw_i8 = m_car->historySensor(i + 8).dw; - int dw_i9 = m_car->historySensor(i + 9).dw; - - if(dw_i0 == 9) break; + if(sori.dw == 9) break; if(hisi->move != moveForward) break; - if(dw_i0 < sor.dw && sori.lhq == SNOT) break; - if(dw_i0 - 1 == sor.dw && sori.lhq == SNOT) break; + if(sori.dw < sor.dw && sori.lhq == SNOT) break; + if(sori.dw - 1 == sor.dw && sori.lhq == SNOT) break; - if(dw_i0 > sor.dw && dw_i0 > 0 && - dw_i1 == dw_i0 && dw_i2 == dw_i0 && dw_i3 == dw_i0 && - dw_i4 == dw_i0 && dw_i5 == dw_i0 && dw_i6 == dw_i0 && - dw_i7 == dw_i0 && dw_i8 == dw_i0 && dw_i9 == dw_i0) + if(sori.dw > sor.dw && + HIS(i+1) == sori.dw && HIS(i+2) == sori.dw && HIS(i+3) == sori.dw && + HIS(i+4) == sori.dw && HIS(i+5) == sori.dw && HIS(i+6) == sori.dw && + HIS(i+7) == sori.dw && HIS(i+8) == sori.dw && HIS(i+9) == sori.dw && sori.dw > 0) { - if(dw_i0 - sor.dw > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt) + if(sori.dw - sor.dw > 1 && m_itemvCJH.yjjdkfjs != hisi->tkCnt) { - bool FindFlag = false; - if(ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) - { - FindFlag = true; - } TKM3Item* item14 = m_car->findExamItem(Sub3ItemType14Jjdw); //加减挡 - if(item14 && item14->TestPro > ItemProFlagIdle) - { - FindFlag = true; - } - if(FindFlag == true) + if((item14 && item14->TestPro > ItemProFlagIdle) || ksdd == siteof::JXNC || m_itemvCJH.qcyjjdkf == 1) { JUDGE_MARK_SUB3(14, "01", true); } diff --git a/entry/src/main/cpp/sdk/utility/HTypes.h b/entry/src/main/cpp/sdk/utility/HTypes.h index 1a7975d8..87c91669 100644 --- a/entry/src/main/cpp/sdk/utility/HTypes.h +++ b/entry/src/main/cpp/sdk/utility/HTypes.h @@ -1468,6 +1468,8 @@ struct TCar std::string XSJL_Parm; + int XiHuo = INVALID_INDEX; + //档位转速比 2014111 struct TCarZsBl { int CarZsBmin = -1; int CarZsBMax = -1; }; std::array DwZsBl; //20141111 档位转速比 档位转速比 array[1..5] diff --git a/entry/src/main/cpp/toolkit/ui/MainWindow.cpp b/entry/src/main/cpp/toolkit/ui/MainWindow.cpp index c04c4db3..651008ee 100644 --- a/entry/src/main/cpp/toolkit/ui/MainWindow.cpp +++ b/entry/src/main/cpp/toolkit/ui/MainWindow.cpp @@ -71,15 +71,15 @@ void MainWindow::init() KIT_CONNECT(updateNextDoing()); KIT_CONNECT(updateCheckVersion(int, const QString&)); - connect(&m_audio, SIGNAL(QMediaPlayer::error(QMediaPlayer::Error)), - SLOT([&](QMediaPlayer::Error error) - { - QMediaPlayer::Error err = m_audio.error(); - QString errStr = m_audio.errorString(); - - logwarning("paly-audio file:%s, err:%d-%s ", - filepath.toUtf8().data(), err, errStr.toUtf8().data()); - })); + //connect(&m_audio, SIGNAL(QMediaPlayer::error(QMediaPlayer::Error)), + // SLOT([&](QMediaPlayer::Error error) + // { + // QMediaPlayer::Error err = m_audio.error(); + // QString errStr = m_audio.errorString(); + // + // logwarning("paly-audio file:%s, err:%d-%s ", + // filepath.toUtf8().data(), err, errStr.toUtf8().data()); + // })); m_ui->loop->clear(); m_ui->loop->addItem(CL8("否"), false); diff --git a/entry/src/main/cpp/toolkit/ui/MainWindow.ui b/entry/src/main/cpp/toolkit/ui/MainWindow.ui index b38345da..304c750f 100644 --- a/entry/src/main/cpp/toolkit/ui/MainWindow.ui +++ b/entry/src/main/cpp/toolkit/ui/MainWindow.ui @@ -413,7 +413,7 @@ p, li { white-space: pre-wrap; } 600 180 - 101 + 111 20 @@ -426,7 +426,7 @@ p, li { white-space: pre-wrap; } 600 163 - 101 + 111 20 diff --git a/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts b/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts index b76f0f1d..7631f375 100644 --- a/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts +++ b/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts @@ -35,9 +35,9 @@ export default class ServiceExtImpl extends IdlServiceExtStub { }).catch(err => { callback(0, JSON.stringify({ code: 1, - data: JSON.stringify({ + data: { code: 2300007 - }) + } })); console.log("lixiao paste error", JSON.stringify(err)) }) diff --git a/entry/src/main/ets/mock/CarCheck.ets b/entry/src/main/ets/mock/CarCheck.ets index 2e47c27f..4b1d8449 100644 --- a/entry/src/main/ets/mock/CarCheck.ets +++ b/entry/src/main/ets/mock/CarCheck.ets @@ -107,8 +107,8 @@ export const WarnFlagTipData = { 9: ['dianhuoVideo.wav', 'xihuoVideo.wav'], 10: ['check31.wav'], 11: ['check30.wav'], - 12: ['check28.wav'], - 13: ['check29.wav'], + 12: ['check29.wav'], + 13: ['check28.wav'], 14: ['check11.wav'], 15: ['check12.wav'], 16: ['check13.wav'], @@ -136,8 +136,8 @@ export const RealNumData = { 8: 18, 9: 5, 10: 29, - 11: 30, - 12: 31, + 11: 31, + 12: 30, 13: 32, 14: 28, 15: 28, diff --git a/entry/src/main/ets/pages/CarCheck.ets b/entry/src/main/ets/pages/CarCheck.ets index 6205345a..d139ddec 100644 --- a/entry/src/main/ets/pages/CarCheck.ets +++ b/entry/src/main/ets/pages/CarCheck.ets @@ -5,6 +5,9 @@ import TopLogo from './compontents/TopLogo'; import testNapi from '@ohos.hiserialsdk'; import { dateFormat } from '../common/utils/tools'; import { DwMapData, PassData, RealNumData, StackValueData, WarnFlagData, WarnFlagTipData } from '../mock'; +import FileUtil from '../common/utils/File'; +import { GlobalConfig } from '../config'; +import common from '@ohos.app.ability.common'; @Entry @Component @@ -37,6 +40,7 @@ export default struct Index { @State stopFlag: boolean = false @State fromIndex: boolean = false private vocObj = null; + private context = getContext(this) as common.UIAbilityContext; // private AccountTable = new AccountTable(()=>{},CommonConstants); aboutToAppear() { @@ -114,28 +118,66 @@ export default struct Index { } // - carConfigurationInfoFn() { - // const fileUtil = new FileUtil(context) - // const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/deviceNo.txt'); - // if (data === '' || data === undefined) { - // promptAction.showToast({ - // message: `请先进行设备注册`, - // duration: 3000 - // }); - // globalThis.type='1' - // globalThis.title=decodeURIComponent('请先进行设备注册') - // globalThis.errorDialog.open() - // resolve('') - // } else { - // const fileData=JSON.parse(data) - // globalThis.deviceNo = fileData.deviceName - // console.log('globalThis.deviceNo', globalThis.deviceNo) - // // getCarInfo() - // resolve(fileData.deviceName) - // } - if (globalThis.singlePlay) { - const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5" - const data = str.split(';') + async carConfigurationInfoFn() { + const fileUtil = new FileUtil(this.context) + const checkListStr = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/carcheck.txt'); + + if (checkListStr === '' || checkListStr === undefined) { + //模拟真实数据 + const param = { + "body": + { + "carIdString": globalThis.carInfo.carId, //考车ID + "deviceNo": globalThis.deviceNo + } + } + + carConfigurationInfo(param).then(res => { + // @ts-ignore + console.log('ES_CHECK_CAR_ITEM',JSON.stringify(res.body)) + // @ts-ignore + if(res?.body?.ES_CHECK_CAR_ITEM){ + // @ts-ignore + const data = res.body.ES_CHECK_CAR_ITEM[0].ITEMS.split(';'); + this.checkList = [] + const list = data + list.map(res => { + const arr = res.split(':') + this.checkList.push({ + 'key': parseInt(arr[0]) + 2, 'time': arr[1] + }) + }) + this.checkListCopy = JSON.parse(JSON.stringify(this.checkList)) + }else{ + const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5" + const data = str.split(';') + this.checkList = [] + const list = data + list.map(res => { + const arr = res.split(':') + this.checkList.push({ + 'key': parseInt(arr[0]) + 2, 'time': arr[1] + }) + }) + this.checkListCopy = JSON.parse(JSON.stringify(this.checkList)) + } + + }).catch((error) => { + console.log('error12error' + error) + const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5" + const data = str.split(';') + this.checkList = [] + const list = data + list.map(res => { + const arr = res.split(':') + this.checkList.push({ + 'key': parseInt(arr[0]) + 2, 'time': arr[1] + }) + }) + this.checkListCopy = JSON.parse(JSON.stringify(this.checkList)) + }) + }else { + const data = checkListStr.split(';') this.checkList = [] const list = data list.map(res => { @@ -147,30 +189,7 @@ export default struct Index { this.checkListCopy = JSON.parse(JSON.stringify(this.checkList)) return } - //模拟真实数据 - const param = { - "body": - { - "carIdString": globalThis.carInfo.carId, //考车ID - "deviceNo": globalThis.deviceNo - } - } - carConfigurationInfo(param).then(res => { - // @ts-ignore - const data = res.body.ES_CHECK_CAR_ITEM[0].ITEMS.split(';'); - this.checkList = [] - const list = data - list.map(res => { - const arr = res.split(':') - this.checkList.push({ - 'key': parseInt(arr[0]) + 2, 'time': arr[1] - }) - }) - this.checkListCopy = JSON.parse(JSON.stringify(this.checkList)) - }).catch((error) => { - console.log('error12error' + error) - }) } async kszj() { @@ -224,8 +243,10 @@ export default struct Index { this.warnFlag[26] = '2' } } - + console.log('msgmsgmsg',msg) if (that.index == 10 || that.index == 11 || that.index == 12 || that.index == 13) { + console.log('msgmsgmsg000',that.index,that.signArr[that.realNum[that.index]]) + if (that.signArr[that.realNum[that.index]] != '1200') { that.warnFlag[that.index] = '2' } else { @@ -308,37 +329,37 @@ export default struct Index { } initfackCheck(index){ const that=this - setTimeout(()=>{ - console.log('indexindex',index) - if(index>=3){ - this.getCheckList() - return - } + setTimeout(()=>{ + console.log('indexindex',index) + if(index>=3){ + this.getCheckList() + return + } - console.log('this.index',index,) - that.passArray[index]=true - if(index==2){ - let flag=false - console.log('globalThis.spzd[key]',globalThis.spzd) + console.log('this.index',index,) + that.passArray[index]=true + if(index==2){ + let flag=false + console.log('globalThis.spzd[key]',globalThis.spzd) - for(let key in globalThis.spzd){ - console.log('globalThis.spzd[key]',globalThis.spzd[key]) - if(globalThis.spzd[key]){ - that.warnFlag[index]='1' - flag=true - } + for(let key in globalThis.spzd){ + console.log('globalThis.spzd[key]',globalThis.spzd[key]) + if(globalThis.spzd[key]){ + that.warnFlag[index]='1' + flag=true } - if(!flag){ - that.warnFlag[index]='2' - } - }else{ + } + if(!flag){ that.warnFlag[index]='2' } - that.passArray=JSON.parse(JSON.stringify(that.passArray)) - that.warnFlag=JSON.parse(JSON.stringify(that.warnFlag)) - index++ - this.initfackCheck(index) - },1000) + }else{ + that.warnFlag[index]='2' + } + that.passArray=JSON.parse(JSON.stringify(that.passArray)) + that.warnFlag=JSON.parse(JSON.stringify(that.warnFlag)) + index++ + this.initfackCheck(index) + },1000) } async getCheckList() { @@ -456,14 +477,14 @@ export default struct Index { } Row() { - Image(this.warnFlag[12] == '1' ? $r('app.media.zh_r') : this.warnFlag[12] == '2' ? $r('app.media.zh') : '') - .width(103 * this.ratio) - .height(118.5 * this.ratio) - .visibility(this.passArray[12] ? Visibility.Visible : Visibility.Hidden) - Image(this.warnFlag[13] == '1' ? $r('app.media.yh_r') : this.warnFlag[13] == '2' ? $r('app.media.yh') : '') + Image(this.warnFlag[13] == '1' ? $r('app.media.zh_r') : this.warnFlag[13] == '2' ? $r('app.media.zh') : '') .width(103 * this.ratio) .height(118.5 * this.ratio) .visibility(this.passArray[13] ? Visibility.Visible : Visibility.Hidden) + Image(this.warnFlag[12] == '1' ? $r('app.media.yh_r') : this.warnFlag[12] == '2' ? $r('app.media.yh') : '') + .width(103 * this.ratio) + .height(118.5 * this.ratio) + .visibility(this.passArray[12] ? Visibility.Visible : Visibility.Hidden) } } .backgroundImage($r('app.media.rc')) diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index f863afca..9b3f57bf 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -60,7 +60,7 @@ struct Index { private context = getContext(this) as common.UIAbilityContext; private serviceExtProxy: IdlServiceExtProxy @State judgeVersion: string = "" - private version: string = "2025.04.17.01" + private version: string = "2025.04.22.01" @Styles commStyle(){ @@ -578,10 +578,10 @@ struct Index { this.fileHelper = new FileHelper(); const time = await getCurrentTime() const date = time.split(' ')[0] + this.fileHelper.createAlbum(date); this.fileHelper.createAlbum('jt') // this.fileHelper.createAlbum('2025-01-02') this.fileHelper.createAlbum('pz'); - this.fileHelper.createAlbum(date); } diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index b4bd7441..8407daa0 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -111,7 +111,7 @@ struct Index { FLAG: carInfo.flag, BK1: carInfo.bk1, BK2: carInfo.bk2, - X_MCH:carInfo.x_mch, + X_MCH: carInfo.x_mch, }) console.info('surenjun =>carinfoArrr',JSON.stringify( this.carinfoArr)) } diff --git a/entry/src/main/ets/pages/UserInfo.ets b/entry/src/main/ets/pages/UserInfo.ets index e2474396..9515c312 100644 --- a/entry/src/main/ets/pages/UserInfo.ets +++ b/entry/src/main/ets/pages/UserInfo.ets @@ -140,7 +140,9 @@ struct UserInfo { // 同一学员连续第二次考试时不再验证身份 if (this.currentUser.kssycs == '1' && this.systemParam.Param830Str == '1') { this.sfbdinterfaceFn() + } else { + this.ksksLimit = false this.showFaceCompare = true } } else { @@ -148,6 +150,7 @@ struct UserInfo { } } catch (e) { console.info('Throw Error', JSON.stringify(e)) + this.ksksLimit = false } } @@ -881,6 +884,7 @@ struct UserInfo { //身份比对 async sfbdinterfaceFn() { + this.ksksLimit = false globalThis.statue = 4 this.stepFlag = true const carInfo = globalThis.carInfo; @@ -894,7 +898,7 @@ struct UserInfo { carId, lsh: this.currentUser.lsh || '', examinationRoomId - }); + }) } this.currentUser.id = '1' const avPlayer = this.avPlayer; @@ -1280,7 +1284,7 @@ struct UserInfo { return } //835参数值和预约考试次数对比 - if(Number(this.systemParam.Param835)<=Number(this.currentUser.yycs)){ + if(Number(this.systemParam.Param835)<=Number(this.currentUser.yycs)&&!globalThis.singlePlay){ this.type='4' this.title='当前考生预约考试次数为'+this.currentUser.yycs this.errorDialog.open() diff --git a/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts b/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts index f398950e..bf46e8ef 100644 --- a/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts +++ b/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts @@ -73,6 +73,7 @@ export interface CARINFO { FLAG: string, BK1: string, BK2: string + X_MCH: string } export interface MAPPOINT { diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts index a8e1b4f1..d7a62333 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts @@ -1,7 +1,7 @@ //考试回放开关 export const judgeConfig = { //本地目录开关 - isTrajectoryOpen: false, + isTrajectoryOpen: true, //是否开启拍照 isPhotoOpen: true, //扣分语音是否强制开启 @@ -15,7 +15,7 @@ export const judgeConfig = { // 本地模型地址 modelPath: 'models/model_enc', // 济南科目三 - trajectoryPath: 'logs/2024_12_26/2024_12_26_14_12_51_2412505941910_370125200404041910_赵宇/judge_exam_data.txt', + trajectoryPath: 'logs/2024_10_12/2024_10_12_11_50_10_9999427676823_744299437502336256_隋统/judge_exam_data.txt', //四合一画面配置 fourInOneScreen:{ //gps位数 diff --git a/entry/src/main/profile.cer b/entry/src/main/profile.cer index 0bb6e7a9..5bd65c24 100644 --- a/entry/src/main/profile.cer +++ b/entry/src/main/profile.cer @@ -1,15 +1,15 @@ -----BEGIN CERTIFICATE----- -MIICFjCCAZygAwIBAgIJAKp/RlmaT1oCMAoGCCqGSM49BAMDMGMxCzAJBgNVBAYT +MIICFzCCAZygAwIBAgIJAO9FWZQgKzxyMAoGCCqGSM49BAMDMGMxCzAJBgNVBAYT AkNOMRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkg VGVhbTEjMCEGA1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwHhcNMjUw -NDE1MDkwMzM2WhcNMzUwNDEzMDkwMzM2WjBKMRUwEwYDVQQDDAxpZGVfZGVtb19h +NDIyMDc1NDI2WhcNMzUwNDIwMDc1NDI2WjBKMRUwEwYDVQQDDAxpZGVfZGVtb19h cHAxDTALBgNVBAsTBFVuaXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UE -BhMCQ04wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQm//kXDxgKlUSc1COTY0Kq -nYbFzDL+P7WhBd4LivOJmHHcWBh4L+vIC1+t+4prdF4Oy9KC9QAoH+VPYou5Taq9 -o1IwUDAdBgNVHQ4EFgQUwMgtlNBiWYUlHzLb3NzFySav544wDgYDVR0PAQH/BAQD +BhMCQ04wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQUPoxdYBvC4QlondlBnCEe +oxxkFKTZwhcA+xW31gNCOOwboVPyCB++6EuUa/0fJ/jlEeyNzErXflXkGG7GZVPa +o1IwUDAdBgNVHQ4EFgQUrAmchwjJTxwrv09H+c4xS7+oEvIwDgYDVR0PAQH/BAQD AgeAMB8GA1UdIwQYMBaAFNuGtyIW1QuhS7fdJXu58QV9oi1HMAoGCCqGSM49BAMD -A2gAMGUCMQC9Nc7V1n17UoCL654+9WdsLHFn3JilQGXoCeeY3wI+gUMTzX46TB/T -Yl9mO0cSvwkCMG/cucH1pP3ET2H3l466eEijj8yZF3aNCNY9mYtQsNcXsLpUMmWN -qKa5HKyVmPM5ew== +A2kAMGYCMQCZzMs9H/mMi+59hO4EfDHTXChO6QoBYH+pwB66g7dw7apGXhayBIwq +qOeVnlTVbPkCMQCc2hQf+ypiZpZQog1dMSGdlNs8heypj97d7DahjTgEzrxGxcZK +PtMtg35cJa+JtN4= -----END CERTIFICATE----- -67310D35AF33C65F515453B57F0093354AC76A9916134B0621D0116BCEA0E6C4 \ No newline at end of file +071A11E92B83EE8977A794F1B387ADA40780BFF19C301A5C63F407531B2C2C1A \ No newline at end of file