Merge remote-tracking branch 'origin/代理服务方案' into 代理服务方案
This commit is contained in:
commit
c726ec81cd
@ -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"
|
||||
|
||||
Binary file not shown.
@ -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"
|
||||
|
||||
@ -121,6 +121,7 @@ namespace siteof
|
||||
siteof_declare(JXYTSF001);
|
||||
siteof_declare(hnzzkm3);
|
||||
siteof_declare(jswxbz);
|
||||
siteof_declare(scms);
|
||||
siteof_declare(tcrx); //无锡所检测地点版本特殊
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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))
|
||||
})
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,39 +118,11 @@ 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(';')
|
||||
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))
|
||||
return
|
||||
}
|
||||
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":
|
||||
@ -157,6 +133,10 @@ export default struct Index {
|
||||
}
|
||||
|
||||
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 = []
|
||||
@ -168,9 +148,48 @@ export default struct Index {
|
||||
})
|
||||
})
|
||||
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 => {
|
||||
const arr = res.split(':')
|
||||
this.checkList.push({
|
||||
'key': parseInt(arr[0]) + 2, 'time': arr[1]
|
||||
})
|
||||
})
|
||||
this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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 {
|
||||
@ -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'))
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -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))
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -73,6 +73,7 @@ export interface CARINFO {
|
||||
FLAG: string,
|
||||
BK1: string,
|
||||
BK2: string
|
||||
X_MCH: string
|
||||
}
|
||||
|
||||
export interface MAPPOINT {
|
||||
|
||||
@ -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位数
|
||||
|
||||
@ -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
|
||||
Loading…
x
Reference in New Issue
Block a user