diff --git a/PrintS/Config/bean/ScannerControlCfg.cpp b/PrintS/Config/bean/ScannerControlCfg.cpp index ad1d041..88e0ea7 100644 --- a/PrintS/Config/bean/ScannerControlCfg.cpp +++ b/PrintS/Config/bean/ScannerControlCfg.cpp @@ -3,6 +3,16 @@ ScannerControlCfg::ScannerControlCfg() + : m_Index(new IntData("Index")) + , m_SeqNo(new IntData("SeqNo")) + , m_ControlNo(new IntData("ControlNo")) + , m_SerialNo(new IntData("SerialNo")) + , m_ControlType(new IntData("ControlType")) + , m_CardName(new StrData("CardName")) + , m_CardIP(new StrData("CardIP")) + , m_IsEnable(new BoolData("IsEnable")) + , m_HadAssign(new BoolData("HadAssign")) + , m_HadMatch(new BoolData("HadMatch")) { } diff --git a/PrintS/Config/bean/ScannerControlCfg.h b/PrintS/Config/bean/ScannerControlCfg.h index 40fa1a4..f805e63 100644 --- a/PrintS/Config/bean/ScannerControlCfg.h +++ b/PrintS/Config/bean/ScannerControlCfg.h @@ -35,6 +35,7 @@ public: BoolData* m_HadAssign; BoolData* m_HadMatch; + ScanCfgWrapper m_ScanCfgWrapper; FixPointWrapper m_FixPointWrapper; diff --git a/PrintS/DataManage/DataHandle.cpp b/PrintS/DataManage/DataHandle.cpp index 586da9c..8479f2f 100644 --- a/PrintS/DataManage/DataHandle.cpp +++ b/PrintS/DataManage/DataHandle.cpp @@ -95,8 +95,8 @@ void DataHandle::DataCallBackHandle(const ReadData& msg, const std::list& m_controller->m_Axis->StopAll(); break; case READTYPE::LOADPARAM: m_controller->m_Machine->Update(msg,LOADPARAMRSP); break; - case SCANCTRLFUNC: - m_controller->m_ScannerCtrl->CallFunc(msg); break; + case SCANCTRLFUNC: //需要先释放ScannerCtrl::Init()内部代码块 + m_controller->m_ScannerCtrl->CallFunc(msg, its); break; case CAMERAFUNC: m_controller->m_Camera->CallFunc(msg,nullptr); break; case CAMERAPARAMUPDATE: @@ -120,7 +120,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg, const std::list& break; case REQUEST: if (!msg.nameKey.empty() && ConverType::TryToI( msg.nameKey) == XYSCANSTATE) { - printf("error,40 需要释放ScannerCtrl::Init()内部代码块...\n"); + //printf("error,XYSCANSTATE 需要释放ScannerCtrl::Init()内部代码块...\n"); for (int i = 0; i < 4; ++i) { //需要先打开ScannerCtrl::Init()代码块 Scanner* p = (m_controller->m_ScannerCtrl->GetScanners())->at(i); p->GetScanStateXY().SendToClients(XYSCANSTATE, "_" + to_string(i)); diff --git a/PrintS/ScannerCtrl/Scanner.cpp b/PrintS/ScannerCtrl/Scanner.cpp index de9fb11..36aefe7 100644 --- a/PrintS/ScannerCtrl/Scanner.cpp +++ b/PrintS/ScannerCtrl/Scanner.cpp @@ -242,10 +242,11 @@ void Scanner::Clean() m_OrderDataCountMap.clear(); EnterCriticalSection(&m_SeqCS); - - int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); - m_SeqDataUnFinishBit[seqNo] = false; - m_SupportSeqDataUnFinishBit[seqNo] = false; + if (m_ScannerControlCfg){ + int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); + m_SeqDataUnFinishBit[seqNo] = false; + m_SupportSeqDataUnFinishBit[seqNo] = false; + } LeaveCriticalSection(&m_SeqCS); } diff --git a/PrintS/ScannerCtrl/Scanner.h b/PrintS/ScannerCtrl/Scanner.h index 944ab1d..971300f 100644 --- a/PrintS/ScannerCtrl/Scanner.h +++ b/PrintS/ScannerCtrl/Scanner.h @@ -79,9 +79,9 @@ public: virtual void SetK(double k){} double GetK() { return m_kfactor; } - ScannerControlCfg* GetConfig() { return m_ScannerControlCfg; } + ScannerControlCfg* GetConfig() { return m_ScannerControlCfg; } //传 暂未 - bool IsDebugEnable(); + bool IsDebugEnable(); //已传 void StartDebugTest(); void StopDebugTest(); @@ -93,14 +93,14 @@ public: void StartHeatingScannerTest(); void StopHeatingScannerTest(); - bool IsHeatingScannerTest(); + bool IsHeatingScannerTest(); //不传 - void WaitHeatingScanner(); + void WaitHeatingScanner(); //不传 void StartGetScanInfo(); void StopGetScanInfo(); void SetAutoUpdateScanInfo(bool isauto); - void GetXYScanState(ScanStateXYSCT* scanstate, time_t &t); + void GetXYScanState(ScanStateXYSCT* scanstate, time_t &t); //已传参数 服务端参数更新或者客户端请求时传到客户端 XYSCANSTATE virtual void UpdateScannerInfo() {} //bool IsUpScanner(); diff --git a/PrintS/ScannerCtrl/ScannerCtrl.cpp b/PrintS/ScannerCtrl/ScannerCtrl.cpp index ea2b62c..62d2b17 100644 --- a/PrintS/ScannerCtrl/ScannerCtrl.cpp +++ b/PrintS/ScannerCtrl/ScannerCtrl.cpp @@ -76,7 +76,7 @@ bool ScannerCtrl::Init() { bool rel = false; unsigned int card_num = 0; - if (!g_isDebug && !RTC5Scanner::PreInit(card_num)) + if (!RTC5Scanner::PreInit(card_num)) { return false; } @@ -119,11 +119,6 @@ bool ScannerCtrl::Init() { { g_log->TraceError(g_LngManager->Log_NoScannerCtrl->ShowText()); m_InitErrorInfos.push_back(g_LngManager->Log_NoScannerCtrl->ShowText()); - - for (int i = 0; i < 4; ++i) { //wxxtest - Scanner* scanner = new RTC5Scanner(nullptr, i); - m_scan.push_back(scanner); - } return false; } @@ -147,6 +142,10 @@ bool ScannerCtrl::Init() { ConfigManager::GetInstance()->GetMatchScannerControlCfg()->push_back(cfg); m_scan.push_back(scanner); } + else if (g_isDebug) { //wxxtest + ConfigManager::GetInstance()->GetMatchScannerControlCfg()->push_back(cfg); + m_scan.push_back(scanner); + } else { delete scanner; @@ -1870,83 +1869,93 @@ void ScannerCtrl::RemoveScanner(int seq) //} -void ScannerCtrl::CallFunc(const ReadData& rd) { +void ScannerCtrl::CallFunc(const ReadData& rd, const list& lst) { FUNCNAME func = (FUNCNAME)ConverType::TryToI(rd.nameKey); switch (func) { - case BEGINWORK: - BeginWork(); - break; - case PAUSEWORK: - PauseWork(); - break; - case PAUSEAUTO: - PauseAuto(); - break; - case STOPWORK: - StopWork(); - break; - case STOPREDTEST: - StopRedTest(); - break; - case TESTLAYER: - TestLayer(); - break; - case REMOVESCANNER: - RemoveScanner(ConverType::TryToI(rd.strValue)); - break; - case STARTHEATINGMOTION: - StartHeatingMotion(); - break; - case STOPHEATINGMOTION: - StopHeatingMotion((bool)ConverType::TryToI(rd.strValue)); - break; - case STARTDEBUGTEST: - if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { - printf("%d index is out of range...\n",__LINE__); - break; - } - m_scan[stoi(rd.strValue)]->StartDebugTest(); - break; - case STOPDEBUGTEST: - if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { - printf("%d index is out of range...\n", __LINE__); - break; - } - m_scan[ConverType::TryToI(rd.strValue)]->StopDebugTest(); - break; - case STARTHEATINGSCANNERTEST: - if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { - printf("%d index is out of range...\n", __LINE__); - break; - } - m_scan[ConverType::TryToI(rd.strValue)]->StartHeatingScannerTest(); - break; - case STOPHEATINGSCANNERTEST: - if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { - printf("%d index is out of range...\n", __LINE__); - break; - } - m_scan[ConverType::TryToI(rd.strValue)]->StopHeatingScannerTest(); - break; - case STARTGETSCANINFO: - if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { - printf("%d index is out of range...\n", __LINE__); - break; - } - m_scan[ConverType::TryToI(rd.strValue)]->StartGetScanInfo(); - break; - case STOPGETSCANINFO: - if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { - printf("%d index is out of range...\n", __LINE__); - break; - } - m_scan[ConverType::TryToI(rd.strValue)]->StopGetScanInfo(); - break; - default: - printf("参数不对...\n"); - break; + case BEGINWORK: + BeginWork(); break; + case PAUSEWORK: + PauseWork(); break; + case PAUSEAUTO: + PauseAuto(); break; + case STOPWORK: + StopWork(); break; + case STOPREDTEST: + StopRedTest(); break; + case TESTLAYER: + TestLayer(); break; + case REMOVESCANNER: + RemoveScanner(ConverType::TryToI(rd.strValue)); break; + case STARTHEATINGMOTION: + StartHeatingMotion(); break; + case STOPHEATINGMOTION: + StopHeatingMotion((bool)ConverType::TryToI(rd.strValue)); break; + default: break; + } + if (func <= STOPHEATINGMOTION) return; + + if (!ConverType::IsToI(rd.strValue) || ConverType::TryToI(rd.strValue) >= m_scan.size()) { + printf("%d index is out of range...\n", __LINE__); + return; + } + int index = ConverType::TryToI(rd.strValue); //编号 + switch (func) { + case STARTDEBUGTEST: + m_scan[index]->StartDebugTest(); break; + case STOPDEBUGTEST: + m_scan[index]->StopDebugTest(); break; + case STARTHEATINGSCANNERTEST: + m_scan[index]->StartHeatingScannerTest(); break; + case STOPHEATINGSCANNERTEST: + m_scan[index]->StopHeatingScannerTest(); break; + case STARTGETSCANINFO: + m_scan[index]->StartGetScanInfo(); break; + case STOPGETSCANINFO: + m_scan[index]->StopGetScanInfo(); break; + case UPDATESETTING: + m_scan[index]->UpdateSetting(); break; + default: + break; + } + + if (SETXYOFFSET == func) { + float x = 0.0f, y = 0.0f; + for (auto item = lst.begin(); item != lst.end(); ++item) { + if (item->nameKey == "x") x = ConverType::TryToF(item->strValue); + if (item->nameKey == "y") y = ConverType::TryToF(item->strValue); + } + m_scan[index]->SetXyOffset(x,y); + } + else if (SETANGLE == func) { + double angle = 0.0; + for (auto item = lst.begin(); item != lst.end(); ++item) { + if (item->nameKey == "angle") angle = ConverType::TryToD(item->strValue); + } + m_scan[index]->SetAngle(angle); + } + else if (UPDATESKYWRITING == func) { + bool isList = false; + for (auto item = lst.begin(); item != lst.end(); ++item) { + if (item->nameKey == "isList") isList = (bool)ConverType::TryToI(item->strValue); + } + m_scan[index]->UpdateSkyWriting(isList); + } + else if (SETXYCORRECT == func) { + double x = 0.0, y = 0.0; + for (auto item = lst.begin(); item != lst.end(); ++item) { + if (item->nameKey == "x") x = ConverType::TryToD(item->strValue); + if (item->nameKey == "y") y = ConverType::TryToD(item->strValue); + } + m_scan[index]->SetXYCorrect(x,y); + } + if (SETK == func) { + double k = 0.0; + for (auto item = lst.begin(); item != lst.end(); ++item) { + if (item->nameKey == "k") k = ConverType::TryToD(item->strValue); + } + m_scan[index]->SetK(k); } } @@ -1961,6 +1970,7 @@ void ScannerCtrl::SendToClients() { for (int i = 0; i < count; ++i) { lst.emplace_back(Item{ "IsDebugEnable_"+to_string(i), to_string(m_scan[i]->IsDebugEnable()), iBOOL}); lst.emplace_back(Item{ "IsHeatingScannerTest_"+to_string(i), to_string(m_scan[i]->IsHeatingScannerTest()), iBOOL}); + lst.emplace_back(Item{ "IsScannerComAlarm_"+to_string(i), to_string(m_scan[i]->IsScannerComAlarm()), iBOOL}); } auto iter = Scanner::m_CurrentSerio.begin(); diff --git a/PrintS/ScannerCtrl/ScannerCtrl.h b/PrintS/ScannerCtrl/ScannerCtrl.h index fe4fc84..3f3e754 100644 --- a/PrintS/ScannerCtrl/ScannerCtrl.h +++ b/PrintS/ScannerCtrl/ScannerCtrl.h @@ -23,12 +23,20 @@ enum FUNCNAME { STARTHEATINGMOTION, STOPHEATINGMOTION, - STARTDEBUGTEST, //scanner函数 + //以下是scanner函数 + STARTDEBUGTEST, STOPDEBUGTEST, STARTHEATINGSCANNERTEST, STOPHEATINGSCANNERTEST, STARTGETSCANINFO, STOPGETSCANINFO, + + SETXYOFFSET, + SETANGLE, + UPDATESETTING, + UPDATESKYWRITING, + SETXYCORRECT, + SETK, }; @@ -51,7 +59,7 @@ public: bool IsTestLayerEnable(); void StopRedTest(); void TestLayer(); - vector* GetScanners() { return &m_scan; } //待处理 + vector* GetScanners() { return &m_scan; } //已传 被分解了 JobController* GetJobController() { return m_job_controller; } void RemoveScanner(int seq); @@ -81,7 +89,7 @@ public: void SetRemoteClient(RemoteClient* rc) { m_RemoteClient = rc; } - void CallFunc(const ReadData& rd); + void CallFunc(const ReadData& rd, const list& lst); void SendToClients(); diff --git a/PrintS/job/FileProcessor.h b/PrintS/job/FileProcessor.h index c10c2f1..4a89714 100644 --- a/PrintS/job/FileProcessor.h +++ b/PrintS/job/FileProcessor.h @@ -27,22 +27,22 @@ public: virtual int Process(string jobfile) = 0; virtual int GetCurrentLayerIndex(void) = 0; virtual int GetPreviewLayerIndex(void) = 0; - virtual MetaData* GetMetaData() = 0; - virtual string GetJobTitle() = 0; + virtual MetaData* GetMetaData() = 0; //传 + virtual string GetJobTitle() = 0; //传 virtual string GetMaterialName() = 0; virtual double GetLayerThickness() = 0; - virtual unsigned int GetLayerCount() = 0; - virtual int GetComponentCount() = 0; - virtual MetaData::Layer* GetLayer(unsigned int index) = 0; + virtual unsigned int GetLayerCount() = 0; //传 + virtual int GetComponentCount() = 0; //传 + virtual MetaData::Layer* GetLayer(unsigned int index) = 0; //传 virtual int GetLayerIndex(MetaData::Layer* layer) = 0; - virtual string GetJobUid() = 0; + virtual string GetJobUid() = 0; //传 virtual FileType GetFileType() = 0; virtual void UpdateFile(){} - string GetJobFileName() { return m_job_file_name; } - bool IsLayerInherit(void) { return m_LayerInherit; } - void SetLayerInherit(bool layer_inherit) { m_LayerInherit = layer_inherit; } - unsigned int GetStartIndex() { return m_StartIndex; } + string GetJobFileName() { return m_job_file_name; } //传 + bool IsLayerInherit(void) { return m_LayerInherit; } //传 + void SetLayerInherit(bool layer_inherit) { m_LayerInherit = layer_inherit; } //传 + unsigned int GetStartIndex() { return m_StartIndex; } //传 virtual void SetStartIndex(unsigned int index) { m_StartIndex = index; } bool IsFinished() { return m_IsFinished; } void SetFinished(bool isf) { m_IsFinished = isf; if (isf) SetStartIndex(0); } diff --git a/PrintS/job/JobController.h b/PrintS/job/JobController.h index c0cddd8..d836a56 100644 --- a/PrintS/job/JobController.h +++ b/PrintS/job/JobController.h @@ -4,6 +4,15 @@ #include "JobFileProcessor.h" #include "H3DFileProcessor.h" +enum JobControllerFunc { + LOADJOB = 0, + + REMOVEALLJOB, + GETLOADPROGRESS, + GETLOADINFO, + ISLOADFINISHED, +}; + class JobController { public: @@ -22,22 +31,22 @@ public: { DeleteCriticalSection(&m_LoadInfoCS); } - bool LoadJob(string filepath); - void StartLoadPrepareJob(); + bool LoadJob(string filepath); //传 + void StartLoadPrepareJob(); //不用 - void RemoveJob(string job_title); - void RemoveAllJob(); - FileProcessor* GetJob(void) { + void RemoveJob(string job_title); //无用 + void RemoveAllJob(); //传 + FileProcessor* GetJob(void) { //传 return m_CurrentJob; } - FileProcessor* GetUnFinishedJob(); - float GetLoadProgress(); - string GetLoadInfo(); - bool IsLoadFinished(); + FileProcessor* GetUnFinishedJob(); //不用 + float GetLoadProgress(); //传 + string GetLoadInfo(); //传 + bool IsLoadFinished(); //传 - void StartSavePrepareJob(); - bool IsSavingPrepareJob(); + void StartSavePrepareJob(); //无用 + bool IsSavingPrepareJob(); //无用 - static void SetLoadProgress(float fvalue) { + static void SetLoadProgress(float fvalue) { //无用 EnterCriticalSection(&m_LoadInfoCS); m_LoadProgress = fvalue; LeaveCriticalSection(&m_LoadInfoCS); diff --git a/PrintS/main.cpp b/PrintS/main.cpp index 049b408..9f5f903 100644 --- a/PrintS/main.cpp +++ b/PrintS/main.cpp @@ -15,8 +15,8 @@ int main(int argc, char** argv) { std::getline(std::cin, userInput); // 读取用户输入 unknowCmd = false; if (userInput == "r" || userInput == "run") { - printf("service is running...\n"); hbd->Run(); + printf("service is running...\n"); } else if (userInput == "s" || userInput == "stop") { hbd->Stop(); diff --git a/PrintS/output/Release/config.hbd b/PrintS/output/Release/config.hbd index cf44242..3f4e390 100644 Binary files a/PrintS/output/Release/config.hbd and b/PrintS/output/Release/config.hbd differ diff --git a/PrintS/output/Release/log/2024.hbd b/PrintS/output/Release/log/2024.hbd index 81d5a66..05af08d 100644 Binary files a/PrintS/output/Release/log/2024.hbd and b/PrintS/output/Release/log/2024.hbd differ diff --git a/TestClient/DataManage/DataHandle.cpp b/TestClient/DataManage/DataHandle.cpp index 4148da0..192fe99 100644 --- a/TestClient/DataManage/DataHandle.cpp +++ b/TestClient/DataManage/DataHandle.cpp @@ -337,22 +337,48 @@ void DataHandle::AxisMoveTest() { //扫描控制测试 void DataHandle::ScanCtrlTest() { + PushMsg(SCANCTRLFUNC, to_string(BEGINWORK)); printf("call BEGINWORK function...\n"); + PushMsg(SCANCTRLFUNC, to_string(PAUSEWORK)); printf("call PAUSEWORK function...\n"); + PushMsg(SCANCTRLFUNC, to_string(PAUSEAUTO)); printf("call PAUSEAUTO function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPWORK)); printf("call STOPWORK function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPREDTEST)); printf("call STOPREDTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(TESTLAYER)); printf("call TESTLAYER function...\n"); + PushMsg(SCANCTRLFUNC, to_string(REMOVESCANNER), to_string(1), iINT); printf("call REMOVESCANNER function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STARTHEATINGMOTION)); printf("call STARTHEATINGMOTION function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPHEATINGMOTION), to_string(0), iBOOL); printf("call STOPHEATINGMOTION function...\n"); + + PushMsg(SCANCTRLFUNC, to_string(STARTDEBUGTEST), "1", iINT); printf("call STARTDEBUGTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPDEBUGTEST), "1", iINT); printf("call STOPDEBUGTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STARTHEATINGSCANNERTEST), "1", iINT); printf("call STARTHEATINGSCANNERTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPHEATINGSCANNERTEST), "1", iINT); printf("call STOPHEATINGSCANNERTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STARTGETSCANINFO), "1", iINT); printf("call STARTGETSCANINFO function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPGETSCANINFO), "1", iINT); printf("call STOPGETSCANINFO function...\n"); + + + WriteData wd{ SCANCTRLFUNC,to_string(SETXYOFFSET) ,"1", iINT }; + wd.items.emplace_back(Item{"x", to_string(1.23f),iFLOAT}); + wd.items.emplace_back(Item{"y", to_string(2.23f),iFLOAT}); + PushMsg(wd); printf("call SETXYOFFSET function...\n"); - int count = (int)SCANCTRLFUNC::END1; - for (int i = 0; i < count; ++i) { - if (i == REMOVESCANNER) { - PushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i), to_string(1),iINT); - } - else if (i == STOPHEATINGMOTION) { - PushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i),to_string(0),iBOOL); - } - else { - PushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i)); - } + wd.nameKey = to_string(SETANGLE); + wd.items.emplace_back(Item{ "angle", to_string(1.2),iDOUBLE }); + PushMsg(wd); printf("call SETANGLE function...\n"); + + PushMsg(SCANCTRLFUNC, to_string(UPDATESETTING), "1", iINT); printf("call UPDATESETTING function...\n"); + + wd.nameKey = to_string(UPDATESKYWRITING); + wd.items.emplace_back(Item{ "isList", to_string(true),iBOOL }); + PushMsg(wd); printf("call UPDATESKYWRITING function...\n"); + + wd.nameKey = to_string(SETXYCORRECT); + wd.items.emplace_back(Item{ "x", to_string(2.3),iDOUBLE }); + wd.items.emplace_back(Item{ "y", to_string(3.4),iDOUBLE }); + PushMsg(wd); printf("call SETXYCORRECT function...\n"); + + wd.nameKey = to_string(SETK); + wd.items.emplace_back(Item{ "k", to_string(2.1),iDOUBLE }); + PushMsg(wd); printf("call SETK function...\n"); - printf("发送请求%d成功...\n", i); - Sleep(100); - } } diff --git a/TestClient/DataManage/FunC.h b/TestClient/DataManage/FunC.h index 3f7af49..01e7bbd 100644 --- a/TestClient/DataManage/FunC.h +++ b/TestClient/DataManage/FunC.h @@ -36,7 +36,7 @@ enum MACHINEFUNC { }; -enum SCANCTRLFUNC { +enum ScanCtrlFunc { BEGINWORK = 0, PAUSEWORK, PAUSEAUTO, @@ -47,6 +47,21 @@ enum SCANCTRLFUNC { STARTHEATINGMOTION, STOPHEATINGMOTION, + //以下是scanner函数 + STARTDEBUGTEST, + STOPDEBUGTEST, + STARTHEATINGSCANNERTEST, + STOPHEATINGSCANNERTEST, + STARTGETSCANINFO, + STOPGETSCANINFO, + + SETXYOFFSET, + SETANGLE, + UPDATESETTING, + UPDATESKYWRITING, + SETXYCORRECT, + SETK, + END1 //结束标记 }; @@ -92,4 +107,7 @@ enum ConfigFunc { REDTESTCFGSTART, //红光测试配置开始 REDTESTCFGSTOP, //红光测试配置结束 -}; \ No newline at end of file +}; + + +#define OUTPUTNAME(x) #x \ No newline at end of file