657 lines
20 KiB
C++
657 lines
20 KiB
C++
#include "Sub3Judge01Sczb.h"
|
||
#include "HFactory.h"
|
||
|
||
Sub3Judge01Sczb::Sub3Judge01Sczb()
|
||
{
|
||
m_exam = __NEW__(TKM3Item);
|
||
}
|
||
|
||
Sub3Judge01Sczb::~Sub3Judge01Sczb()
|
||
{
|
||
__DELETE__(m_exam);
|
||
}
|
||
|
||
bool Sub3Judge01Sczb::dealJudgeEnter()
|
||
{
|
||
if(m_exam->TestPro != ItemProFlagInit) return false;
|
||
//超声波评判跟差分信号没有关系,所以不做差分信号状态的判断
|
||
//if(!m_car->rtkEnabled() || !m_car->rtkEnabled(1)) return false;
|
||
|
||
const std::string& ksdd = TableSysSet->get211();
|
||
|
||
m_itemv = TSub3Item01Sczb();
|
||
m_csb.clear(); //C++记得在程序关闭的时候,把这个堆对象释放掉(其实释放不释放无所谓,程序都退出了)
|
||
//SysSet[513]:
|
||
//(*
|
||
//513:绕车一周传感器 (0-原始两个声波或两个手按自动识别
|
||
// 1-手按式 接到右后磁s和右后磁n2-四个传感 器模式^串口号1,串口号2^
|
||
// 3-三个手按式传感 器 接到右后磁s 左后磁n 右后磁n
|
||
// 4-一型机4个按钮 5-二型机4个按钮 6-超声波 8-4个按钮磁前磁s,前磁n,左前磁s,左前磁n
|
||
//*)
|
||
//1、得到绕车一周模式
|
||
//SysSet[512]:
|
||
//(*
|
||
//标准的开始考试模式,必须熄火状态下开始考试,以点火触发模拟灯光(启用标记^t1提示点火时间^t2不下车绕车扣分时间^t3提示后未点火扣分时间^)
|
||
//(启用标记1-从副驾驶门外开始考试绕车,2-从主驾驶位置上开始考试绕车,建议使用2模式)
|
||
//*)
|
||
|
||
const std::vector<std::string>& s512 = TableSysSet->asArray512();
|
||
std::string Temp512_9 = s512.size() > 8 && s512[8] != "" ? s512[8].c_str() : "";
|
||
|
||
const std::vector<std::string> s512_9 = Tools::split(Temp512_9, "^");
|
||
m_itemv.newtype = s512_9.size() > 0 && s512_9[0] != "" ? std::atoi(s512_9[0].c_str()) : 0;
|
||
m_itemv.time_tishi = s512_9.size() > 1 && s512_9[1] != "" ? std::atoi(s512_9[1].c_str()) : 0;
|
||
m_itemv.time_raoche = s512_9.size() > 2 && s512_9[2] != "" ? std::atoi(s512_9[2].c_str()) : 0;
|
||
m_itemv.time_koufen = s512_9.size() > 3 && s512_9[3] != "" ? std::atoi(s512_9[3].c_str()) : 0;
|
||
//当前的绕车时刻的累计用时,秒
|
||
|
||
int64 lastTime = m_car->timeElapsed()/SECOND;
|
||
m_itemv.time_raoche_js = lastTime; //Tds.LastTime;
|
||
//特殊地点版本
|
||
if(ksdd == siteof::huaiangtkm3 || ksdd == siteof::huaianxuyi)
|
||
{
|
||
m_itemv.time_raoche_js = 0;
|
||
m_itemv.time_tishi_js = lastTime; // Tds.LastTime;
|
||
}
|
||
|
||
const std::string& s513 = TableSysSet->get513();
|
||
int Temp513 = s513 != "" ? std::atoi(s513.c_str()) : 0;
|
||
if(Temp513 < 0 || Temp513 > 9)
|
||
{
|
||
Temp513 = 0;
|
||
}
|
||
// (*XLG_Modify 2024-04-07*)
|
||
// (*
|
||
// 1)超声波定义:
|
||
// 513:绕车一周传感器
|
||
//(0-原始两个声波或两个手按自动识别
|
||
// 1-手按式 接到右后磁s和右后磁n
|
||
// 2-四个传感器模式^串口号1,串口号2^
|
||
// 3-三个手按式传感 器 接到右后磁s 左后磁n 右后磁n
|
||
// 4-一型机4个按钮
|
||
// 5-二型机4个按钮
|
||
// 6-超声波
|
||
// 7-未找到定义
|
||
// 8-4个按钮磁前磁s,前磁n,左前磁s,左前磁n
|
||
// *)
|
||
|
||
if(Temp513 == 0 || Temp513 == 1 || Temp513 == 6 || Temp513 == 7)
|
||
{
|
||
m_itemv.radarCount = 2;
|
||
}
|
||
else if(Temp513 == 3)
|
||
{
|
||
m_itemv.radarCount = 3;
|
||
}
|
||
else
|
||
{
|
||
m_itemv.radarCount = 4;
|
||
}
|
||
|
||
m_exam->TestPro = ItemProFlagJudge;
|
||
//ToDo2:生成进项目事件
|
||
return true;
|
||
}
|
||
|
||
void Sub3Judge01Sczb::dealJudgeItem()
|
||
{
|
||
#if JUDGE_USE_INSPECT
|
||
return; //屏蔽上车准备
|
||
#endif
|
||
HELP_COST_TIME("");
|
||
if(m_exam->TestPro != ItemProFlagJudge) return;
|
||
//超声波评判跟差分信号没有关系,所以不做差分信号状态的判断
|
||
//if(!m_car->rtkEnabled() || !m_car->rtkEnabled(1)) return;
|
||
|
||
const std::string& s386 = TableSysSet->get386();
|
||
if(s386 == "3") //无锡地区模式只要发动机启动了,点切换就上车准备自动完成播报模拟灯光
|
||
{
|
||
return;
|
||
}
|
||
|
||
//有这种考试模式,上车准备是外壳完成的,这种少数,兼容 windows是这种做法
|
||
const TStuInfo& stuInfo = m_car->stuInfo();
|
||
if(stuInfo.sczb) //StuInfo.CS_Finish_SCZB_Flag
|
||
{
|
||
const std::vector<TKfXm>& sczb_mark = stuInfo.sczbkf;
|
||
if(!sczb_mark.empty()) //StuInfo.CX_SCZB_KouFenData
|
||
{
|
||
for(size_t i = 0; i < sczb_mark.size(); i++)
|
||
{
|
||
const TKfXm& m = sczb_mark[i];
|
||
//强制扣分
|
||
//JudgeKM3Obj.Mark(StrToInt(Temp1), Temp2, False, True);
|
||
//2025-01-03 因为要上传项目开始,项目结束,还有扣分也要上传,所有要走这里,要发扣分事件给外壳
|
||
JUDGE_MARK_SUB3(m.xmdm, m.kfdm.c_str(), false, true, true, MarkTypeArti);
|
||
}
|
||
}
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
return;
|
||
}
|
||
|
||
//第二次考试不绕车一周(0-否+1-是)不扣分
|
||
if(m_car->stuKkcs() < 2 && TableSysSet->asInt398() == 1)
|
||
{
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
return;
|
||
}
|
||
|
||
//3、绕车一周评判时机(1-开始考试后判 2-开始考试前判,)
|
||
const std::string& s364 = TableSysSet->get364();
|
||
if(s364 == "2")
|
||
{
|
||
return;
|
||
}
|
||
|
||
const TChuanGan* cg = m_car->historyChuanGan();
|
||
const TSensorInfo& sor = cg->real.sensor;
|
||
const std::string& ksdd = TableSysSet->get211();
|
||
|
||
int count = m_car->historyCount();
|
||
if(count < 2*FRAMES_PER_SECOND)
|
||
{
|
||
//TASSERT(false, "");
|
||
return;
|
||
}
|
||
const TSensorInfo& sor1 = m_car->historySensor(1);
|
||
const TSensorInfo& sor2 = m_car->historySensor(2);
|
||
const TSensorInfo& sor3 = m_car->historySensor(3);
|
||
|
||
//TSensorInfo sor1;
|
||
//TSensorInfo sor2;
|
||
//TSensorInfo sor3;
|
||
//if(count > 1) sor1 = m_car->historySensor(1);
|
||
//if(count > 2) sor2 = m_car->historySensor(2);
|
||
//if(count > 3) sor3 = m_car->historySensor(3);
|
||
|
||
//当前时刻的累计用时秒
|
||
const int64 lastTime = m_car->timeElapsed()/SECOND;
|
||
const int64 temptime = lastTime; //Tds.LastTime;
|
||
|
||
|
||
//加入超声波数据
|
||
//加入左前
|
||
if(sor.csbzq < m_csbValue && sor.csbzq > 0)
|
||
{
|
||
AddCSBData(CsbType::ZQ);
|
||
}
|
||
//加入右后
|
||
if(sor.csbyh < m_csbValue && sor.csbyh > 0)
|
||
{
|
||
AddCSBData(CsbType::YH);
|
||
}
|
||
if(m_itemv.radarCount >= 3)
|
||
{
|
||
//加入右前
|
||
if(sor.csbyq < m_csbValue && sor.csbyq > 0)
|
||
{
|
||
AddCSBData(CsbType::YQ);
|
||
}
|
||
|
||
//加入左后
|
||
if(sor.csbzh < m_csbValue && sor.csbzh > 0)
|
||
{
|
||
AddCSBData(CsbType::ZH);
|
||
}
|
||
}
|
||
|
||
if(m_itemv.FinishFlag == true)
|
||
{
|
||
//ToDo:超声波计算 judgecsb();
|
||
judge_csb();
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
return;
|
||
}
|
||
|
||
if(m_itemv.newtype == 1)
|
||
{
|
||
//当前时刻的累计用时秒
|
||
//temptime = m_car->timeElapsed()/SECOND; //Tds.LastTime;
|
||
|
||
if(sor.mkg == SYES && sor1.mkg == SYES && sor2.mkg == SNOT && sor3.mkg == SNOT)
|
||
{
|
||
m_itemv.time_raoche_js = -1;
|
||
if(ksdd != siteof::huaiangtkm3 && ksdd != siteof::huaianxuyi)
|
||
{
|
||
m_itemv.time_tishi_js = temptime;
|
||
}
|
||
if(ksdd == siteof::shanghaikm3)
|
||
{
|
||
//ToDO:语音提示,请点火
|
||
}
|
||
}
|
||
|
||
if(m_itemv.time_raoche_js > 0 && m_itemv.time_raoche > 0)
|
||
{
|
||
if(temptime - m_itemv.time_raoche_js > m_itemv.time_raoche)
|
||
{
|
||
m_itemv.time_raoche_js = -1;
|
||
//不按考试员指令驾驶
|
||
JUDGE_MARK_SUB3(20, "94", false);
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
return;
|
||
}
|
||
}
|
||
|
||
//提示计时相关
|
||
if(m_itemv.time_tishi_js > 0)
|
||
{
|
||
if(temptime - m_itemv.time_tishi_js > m_itemv.time_tishi)
|
||
{
|
||
m_itemv.time_tishi_js = -1;
|
||
m_itemv.time_koufen_js = temptime;
|
||
if(ksdd == siteof::shanghaikm3)
|
||
{
|
||
if(sor.mkg == SYES && sor1.mkg == SYES && sor2.mkg == SYES)
|
||
{
|
||
//ToDo:语音提示,请关门
|
||
}
|
||
}
|
||
if(sor.fdjzs < 100 && sor1.fdjzs < 100 && sor2.fdjzs < 100)
|
||
{
|
||
//ToDo:语音提示,请点火
|
||
}
|
||
}
|
||
}
|
||
//2、扣分计时相关
|
||
if(m_itemv.time_koufen_js > 0)
|
||
{
|
||
if(temptime - m_itemv.time_koufen_js > m_itemv.time_koufen)
|
||
{
|
||
m_itemv.time_koufen_js = -1;
|
||
if(sor.fdjzs < 100 && sor1.fdjzs < 100 && sor2.fdjzs < 100)
|
||
{
|
||
//不按考试员指令驾驶
|
||
JUDGE_MARK_SUB3(20, "94", false);
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
}
|
||
}
|
||
}
|
||
|
||
//关门动作
|
||
if(ksdd != siteof::huaiangtkm3)
|
||
{
|
||
if(sor.mkg == SNOT && sor1.mkg == SNOT && sor2.mkg == SYES && sor3.mkg == SYES)
|
||
{
|
||
judge_csb();
|
||
}
|
||
}
|
||
bool b = false;
|
||
if(sor.fdjzs > 100 && sor1.fdjzs > 100 && sor2.fdjzs > 100)
|
||
{
|
||
b = true;
|
||
}
|
||
|
||
//SysSet[386]
|
||
//(*
|
||
//触发夜间灯光模拟的条件(0-点完成 1-插安全带或点火 2-点火 3-上车准备人工评判按钮切换 4-点击"继续考试"按钮触发
|
||
//5-有点火2信号就可以触发,6-有安全带就触发)
|
||
//*)
|
||
|
||
if(s386 == "6" && sor.aqd == SYES && sor1.aqd == SYES && sor2.aqd == SYES)
|
||
{
|
||
b = true;
|
||
}
|
||
|
||
if(s386 == "5" && sor.dh2 == SYES)
|
||
{
|
||
b = true;
|
||
}
|
||
|
||
if(b == true)
|
||
{
|
||
m_itemv.FinishFlag = true;
|
||
}
|
||
}
|
||
else if(m_itemv.newtype == 2)
|
||
{
|
||
//temptime = m_car->timeElapsed()/SECOND;
|
||
//门开关
|
||
if(sor.mkg == SYES && sor1.mkg == SYES && sor2.mkg == SNOT && sor3.mkg == SNOT)
|
||
{
|
||
m_itemv.time_raoche_js = -1;
|
||
m_itemv.time_tishi_js = temptime;
|
||
m_itemv.time_guanmen_js = temptime;
|
||
}
|
||
|
||
if(m_csb.size() != 0)
|
||
{
|
||
m_itemv.time_raoche_js = -1;
|
||
}
|
||
|
||
if(m_itemv.time_raoche_js > 0 && m_itemv.time_raoche > 0)
|
||
{
|
||
if(temptime - m_itemv.time_raoche_js > m_itemv.time_raoche)
|
||
{
|
||
m_itemv.time_raoche_js = -1;
|
||
JUDGE_MARK_SUB3(20, "94", true); //不按规定考试
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
return;
|
||
}
|
||
}
|
||
//语音提示
|
||
if(m_itemv.time_tishi_js > 0)
|
||
{
|
||
if(temptime - m_itemv.time_tishi_js > m_itemv.time_tishi)
|
||
{
|
||
m_itemv.time_tishi_js = -1;
|
||
m_itemv.time_koufen_js = temptime;
|
||
if(sor.fdjzs < 100 && sor1.fdjzs < 100 && sor2.fdjzs < 100)
|
||
{
|
||
//ToDo:语音提示,请“点火”
|
||
}
|
||
}
|
||
}
|
||
//地点版本相关
|
||
if(ksdd == siteof::ynzt)
|
||
{
|
||
if(m_itemv.time_guanmen_js > 0)
|
||
{
|
||
if(temptime - m_itemv.time_guanmen_js > 10)
|
||
{
|
||
m_itemv.time_guanmen_js = -1;
|
||
if(sor.mkg == SYES && sor1.mkg == SYES && sor2.mkg == SYES)
|
||
{
|
||
//考试过程中打开车门
|
||
JUDGE_MARK_SUB3(2, "02", false); //20, "90",
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//点火2
|
||
if(sor.dh2 == SYES)
|
||
{
|
||
m_itemv.time_koufen_js = -1;
|
||
}
|
||
|
||
if(m_itemv.time_koufen_js > 0)
|
||
{
|
||
if(temptime - m_itemv.time_koufen_js > m_itemv.time_koufen)
|
||
{
|
||
m_itemv.time_koufen_js = -1;
|
||
|
||
if(sor.fdjzs < 100 && sor1.fdjzs < 100 && sor2.fdjzs < 100)
|
||
{
|
||
if(Tools::pos(siteof::guizhou, ksdd) == false)
|
||
{
|
||
JUDGE_MARK_SUB3(20, "94", true); //不按规定考试
|
||
m_exam->TestPro = ItemProFlagEnd;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
bool b = false;
|
||
if(sor.fdjzs > 100 && sor1.fdjzs > 100 && sor2.fdjzs > 100)
|
||
{
|
||
b = true;
|
||
}
|
||
|
||
//SysSet[386]
|
||
//(*
|
||
//触发夜间灯光模拟的条件(0-点完成 1-插安全带或点火 2-点火 3-上车准备人工评判按钮切换 4-点击"继续考试"按钮触发
|
||
//5-有点火2信号就可以触发,6-有安全带就触发)
|
||
//*)
|
||
if(s386 == "6")
|
||
{
|
||
if(sor.aqd == SYES && sor1.aqd == SYES && sor2.aqd == SYES)
|
||
{
|
||
b = true;
|
||
}
|
||
}
|
||
if(s386 == "5" && sor.dh2 == SYES)
|
||
{
|
||
b = true;
|
||
}
|
||
if(s386 == "2" && sor.dh2 == SYES && sor1.dh2 == SYES && sor2.dh2 == SNOT)
|
||
{
|
||
b = true;
|
||
}
|
||
|
||
if(b == true)
|
||
{
|
||
m_itemv.FinishFlag = true;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//标准
|
||
//SysSet[386]:
|
||
//(*
|
||
// 触发夜间灯光模拟的条件(0-点完成 1-插安全带或点火 2-点火 3-上车准备人工评判按钮切换
|
||
// 4-点击"继续考试"按钮触发 5-有点火1信号就可以触发,6-有安全带就触发)
|
||
//*)
|
||
if(s386 == "2")
|
||
{
|
||
if(sor.aqd == SYES && sor1.aqd == SYES && sor2.aqd == SNOT && sor3.aqd == SNOT)
|
||
{
|
||
if(sor.fdjzs == 0 && sor1.fdjzs == 0 && sor2.fdjzs == 0)
|
||
{
|
||
if(m_itemv.bsound_dh == false)
|
||
{
|
||
m_itemv.bsound_dh = true;
|
||
//ToDo:语音提示,"请点火"
|
||
}
|
||
}
|
||
}
|
||
//考试计时大于3秒
|
||
if(lastTime > 3)
|
||
{
|
||
if(sor.fdjzs > 100 && sor1.fdjzs > 100 && sor2.fdjzs > 100 && sor3.fdjzs > 100)
|
||
{
|
||
m_itemv.FinishFlag = true;
|
||
}
|
||
}
|
||
|
||
}
|
||
//(*
|
||
//else if(SysSet[386] = '4') then
|
||
//{
|
||
// //ToDo:人工点击了“继续考试" (界面上有个按钮,可以人工点击”继续考试" 的,评判和外壳协商如何解决
|
||
// //如果收到了外壳点击的“继续考试”命令,m_itemv.FinishFlag = true;
|
||
//}
|
||
//*)
|
||
else
|
||
{
|
||
if(sor.aqd == SYES && sor1.aqd == SNOT && sor2.aqd == SNOT && sor3.aqd == SNOT)
|
||
{
|
||
m_itemv.FinishFlag = true;
|
||
}
|
||
}
|
||
|
||
//前进也结束项目
|
||
if(lastTime > 5)
|
||
{
|
||
if(m_car->historyMoveState(0) == moveForward &&
|
||
m_car->historyMoveState(1) == moveForward &&
|
||
m_car->historyMoveState(2) == moveForward &&
|
||
m_car->historyMoveState(3) == moveForward &&
|
||
m_car->historyMoveState(4) == moveForward)
|
||
{
|
||
if(sor.jsc == SNOT)
|
||
{
|
||
judge_csb();
|
||
m_itemv.FinishFlag = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//except
|
||
//}
|
||
//finally
|
||
|
||
char buf[128] = {0};
|
||
SafeSprintf(buf, sizeof(buf), JUDGE_UTF8S("CSBNum=%d,newType=%d-->CSBData="), m_itemv.radarCount, m_itemv.newtype);
|
||
std::string data = buf;
|
||
for(size_t i = 0; i < m_csb.size(); i++)
|
||
{
|
||
std::string s;
|
||
switch(m_csb[i])
|
||
{
|
||
case CsbType::ZQ: s = "ZQ"; break;
|
||
case CsbType::ZH: s = "ZH"; break;
|
||
case CsbType::YH: s = "YH"; break;
|
||
case CsbType::YQ: s = "YQ"; break;
|
||
default: break;
|
||
}
|
||
data += (s + ",");
|
||
}
|
||
showStatus(data);
|
||
}
|
||
|
||
void Sub3Judge01Sczb::AddCSBData(CsbType csb)
|
||
{
|
||
bool addFlag = false;
|
||
|
||
if(m_csb.empty())
|
||
{
|
||
m_csb.push_back(csb);
|
||
|
||
std::string sou;
|
||
switch(csb)
|
||
{
|
||
case CsbType::ZQ: sou = sound::sub3_401001; break;
|
||
case CsbType::ZH: sou = sound::sub3_401002; break;
|
||
case CsbType::YH: sou = sound::sub3_401003; break;
|
||
case CsbType::YQ: sou = sound::sub3_401004; break;
|
||
default: break;
|
||
}
|
||
//ToDo:语音提示,
|
||
m_car->createEventSound({itemNo(), sou});
|
||
}
|
||
else
|
||
{
|
||
if(m_csb.back() != csb)
|
||
{
|
||
m_csb.push_back(csb);
|
||
//ToDo:语音提示
|
||
addFlag = true;
|
||
|
||
std::string sou;
|
||
switch(csb)
|
||
{
|
||
case CsbType::ZQ: sou = sound::sub3_401001; break;
|
||
case CsbType::ZH: sou = sound::sub3_401002; break;
|
||
case CsbType::YH: sou = sound::sub3_401003; break;
|
||
case CsbType::YQ: sou = sound::sub3_401004; break;
|
||
default: break;
|
||
}
|
||
//ToDo:语音提示,
|
||
m_car->createEventSound({itemNo(), sou});
|
||
}
|
||
}
|
||
|
||
if(addFlag == true)
|
||
{
|
||
const std::string& ksdd = TableSysSet->get211();
|
||
if(ksdd == siteof::scnckm3)
|
||
{
|
||
const TSensorInfo& sor = m_car->historySensor(0);
|
||
const TSensorInfo& sor1 = m_car->historySensor(1);
|
||
const TSensorInfo& sor2 = m_car->historySensor(2);
|
||
|
||
if((sor.mkg == SYES && sor1.mkg == SYES && sor2.mkg == SYES) ||
|
||
(sor.ssc == SNOT && sor1.ssc == SNOT && sor2.ssc == SNOT))
|
||
{
|
||
JUDGE_MARK_SUB3(20, "82", true);
|
||
}
|
||
}
|
||
|
||
if(ksdd == siteof::ynzt)
|
||
{
|
||
const TSensorInfo& sor = m_car->historySensor(0);
|
||
const TSensorInfo& sor1 = m_car->historySensor(1);
|
||
const TSensorInfo& sor2 = m_car->historySensor(2);
|
||
if(sor.mkg == SYES && sor1.mkg == SYES && sor2.mkg == SYES)
|
||
{
|
||
JUDGE_MARK_SUB3(2, "02", true); //20, "90"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
void Sub3Judge01Sczb::judge_csb()
|
||
{
|
||
//if(m_csb.empty()) return;
|
||
|
||
int PosI = m_csb.size() - 1;
|
||
//1、特殊地点版本
|
||
const std::string& ksdd = TableSysSet->get211();
|
||
if(ksdd == siteof::shanghaikm3)
|
||
{
|
||
if(m_csb.size() == 0)
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if(m_itemv.radarCount == 2)
|
||
{
|
||
if(m_csb.size() < 2)
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
else
|
||
{
|
||
if(m_csb[PosI] == CsbType::ZQ && m_csb[PosI-1] == CsbType::YH)
|
||
{
|
||
//正确操作
|
||
}
|
||
else
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
}
|
||
}
|
||
else if(m_itemv.radarCount == 3)
|
||
{
|
||
if(m_csb.size() < 3)
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
else
|
||
{
|
||
if(m_csb[PosI] == CsbType::ZQ && m_csb[PosI-1] == CsbType::YQ && m_csb[PosI-2] == CsbType::YH)
|
||
{
|
||
//正确操作1
|
||
}
|
||
else if(m_csb[PosI] == CsbType::ZQ && m_csb[PosI-1] == CsbType::YH && m_csb[PosI-2] == CsbType::ZH)
|
||
{
|
||
//正确操作2
|
||
}
|
||
else
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
}
|
||
}
|
||
else if(m_itemv.radarCount == 4)
|
||
{
|
||
if(m_csb.size() < 4)
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
else
|
||
{
|
||
if(m_csb[PosI] == CsbType::ZQ && m_csb[PosI-1] == CsbType::YQ && m_csb[PosI-2] == CsbType::YH && m_csb[PosI-3] == CsbType::ZH)
|
||
{
|
||
//正确操作
|
||
}
|
||
else
|
||
{
|
||
//未逆时针绕车一周
|
||
JUDGE_MARK_SUB3(1, "01", true);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|