Merge remote-tracking branch 'origin/代理服务方案' into 代理服务方案

This commit is contained in:
surenjun 2025-04-23 14:39:49 +08:00
commit c726ec81cd
19 changed files with 300 additions and 251 deletions

View File

@ -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"

View File

@ -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"

View File

@ -121,6 +121,7 @@ namespace siteof
siteof_declare(JXYTSF001);
siteof_declare(hnzzkm3);
siteof_declare(jswxbz);
siteof_declare(scms);
siteof_declare(tcrx); //无锡所检测地点版本特殊

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<std::string>& 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);
}

View File

@ -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<TCarZsBl, 7> DwZsBl; //20141111 档位转速比 档位转速比 array[1..5]

View File

@ -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);

View File

@ -413,7 +413,7 @@ p, li { white-space: pre-wrap; }
<rect>
<x>600</x>
<y>180</y>
<width>101</width>
<width>111</width>
<height>20</height>
</rect>
</property>
@ -426,7 +426,7 @@ p, li { white-space: pre-wrap; }
<rect>
<x>600</x>
<y>163</y>
<width>101</width>
<width>111</width>
<height>20</height>
</rect>
</property>

View File

@ -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))
})

View File

@ -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,

View File

@ -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'))

View File

@ -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);
}

View File

@ -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))
}

View File

@ -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()

View File

@ -73,6 +73,7 @@ export interface CARINFO {
FLAG: string,
BK1: string,
BK2: string
X_MCH: string
}
export interface MAPPOINT {

View File

@ -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位数

View File

@ -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
071A11E92B83EE8977A794F1B387ADA40780BFF19C301A5C63F407531B2C2C1A