diff --git a/PrintS/DataManage/DataHandle.cpp b/PrintS/DataManage/DataHandle.cpp index f508f5e..a0509f6 100644 --- a/PrintS/DataManage/DataHandle.cpp +++ b/PrintS/DataManage/DataHandle.cpp @@ -95,7 +95,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) { switch (msg.dataType) { case AXISMOVEFUNC: if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER){ - printf("没有准备好哦,无法操作\n"); return; + printf("振镜没有准备,无法操作\n"); return; } m_controller->m_Machine->CallAxisFunc(msg); break; case VERSIONREQ: //获取版本信息 @@ -117,6 +117,9 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) { m_controller->m_Camera->CallFunc(msg,nullptr); break; case CAMERAPARAMUPDATE: m_controller->m_Camera->Update(msg); break; + case PURIFIERFUNC: + m_controller->m_Purifier->CallFunc(msg); break; + case REQUEST: if (msg.nameKey == "36") { printf("error,36 需要释放ScannerCtrl::Init()内部代码块...\n"); diff --git a/PrintS/DataManage/RWData.h b/PrintS/DataManage/RWData.h index 62828b8..e7d7579 100644 --- a/PrintS/DataManage/RWData.h +++ b/PrintS/DataManage/RWData.h @@ -15,6 +15,7 @@ enum READTYPE { REGISTFUNC, //注册函数集 一次请求,使用请求回复模式 CAMERAFUNC, //相机功能函数调用 CAMERAPARAMUPDATE, //相机参数更新 + PURIFIERFUNC, //净化器接口功能 SETZEROPOS, //AxisState使用 AXISSTOPALL, //axis 运动急停 diff --git a/PrintS/Machine/Machine.cpp b/PrintS/Machine/Machine.cpp index 67166bd..bf1ac46 100644 --- a/PrintS/Machine/Machine.cpp +++ b/PrintS/Machine/Machine.cpp @@ -636,15 +636,13 @@ void Machine::ArmAxisMove(AxisConfig::ActiveDirect adr, bool isContinue, bool is //轴运动函数 -void Machine::CallAxisFunc(const ReadData& msg) { +void Machine::CallAxisFunc(const ReadData& msg) { MACHINEFUNC func = (MACHINEFUNC)stoi(msg.nameKey); switch (func) { case LOADIN: - //if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return; LoadIn(); break; //载入 case LOADOUT: - //if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return; LoadOut(); break; //载出 case INTERCEPTLOAD: diff --git a/PrintS/Purifier/BasePurifier.cpp b/PrintS/Purifier/BasePurifier.cpp index c74b902..1fb03b9 100644 --- a/PrintS/Purifier/BasePurifier.cpp +++ b/PrintS/Purifier/BasePurifier.cpp @@ -66,4 +66,19 @@ void BasePurifier::WorkRun() Sleep(m_CycleTick); } +} + + +void BasePurifier::CallFunc(const ReadData& rd, ::stream::ResponseAny** response) { + PurifierFunc func = (PurifierFunc)stoi(rd.nameKey); + switch (func) { + case STARTAUTODEOXYGEN: + StartAutoDeoxygen(); + break; + case STOPAUTODEOXYGEN: + StopAutoDeoxygen(); + break; + default:break; + } + } \ No newline at end of file diff --git a/PrintS/Purifier/BasePurifier.h b/PrintS/Purifier/BasePurifier.h index 5ab4e8c..20839c7 100644 --- a/PrintS/Purifier/BasePurifier.h +++ b/PrintS/Purifier/BasePurifier.h @@ -6,6 +6,10 @@ #include "../config/bean/AlarmCfg.h" #include "../Communication/BaseData.h" +enum PurifierFunc { + STARTAUTODEOXYGEN = 0, + STOPAUTODEOXYGEN, +}; class BasePurifier { @@ -18,7 +22,7 @@ public: virtual void StartAutoDeoxygen() = 0; virtual void StopAutoDeoxygen() = 0; - virtual bool IsAutoDeoxygen() = 0; + virtual bool IsAutoDeoxygen() = 0; //判断的参数已传过去了,不需要在这里调用了 virtual void AutoCtrl() = 0; virtual void AutoCtrlWhenPrint() = 0; virtual void AutoCtrlWhenDoorOpen() = 0; @@ -30,8 +34,7 @@ public: virtual double GetWindValue(double dvalue) { return dvalue; } //virtual void DrawUI() = 0; virtual void DrawConfig() {}; - virtual string GetWindText() { return _(u8"循环风速:%.2f m/s"); } - virtual void BlowBackNotiry(){} + virtual string GetWindText() { return _(u8"循环风速:%.2f m/s"); } //客户端自己控制 virtual bool IsConnectAlarm() { return false; } //MachineCfg::PulifierType GetType() { // return m_Type; @@ -56,12 +59,13 @@ public: virtual void SetParam(const ReadData& msg) {} + void CallFunc(const ReadData& rd, ::stream::ResponseAny** response = nullptr); private: static DWORD WINAPI WorkProc(BasePurifier* _this); void WorkRun(); public: - bool m_PurifierWinShow; + bool m_PurifierWinShow; //不传 客户端自己控制 protected: ExtCfg* m_ExtCfg; diff --git a/PrintS/output/Release/log/2024.hbd b/PrintS/output/Release/log/2024.hbd index b240560..66445a5 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 3c621a0..c549bc7 100644 --- a/TestClient/DataManage/DataHandle.cpp +++ b/TestClient/DataManage/DataHandle.cpp @@ -110,6 +110,7 @@ void DataHandle::Usage() { printf(" 4: " COLOR_YELLOW "test scan control interface...\n" COLOR_RESET); printf(" 5: " COLOR_YELLOW "test registration interface...\n" COLOR_RESET); printf(" 6: " COLOR_YELLOW "test camera interface...\n" COLOR_RESET); + printf(" 7: " COLOR_YELLOW "test purifier interface...\n" COLOR_RESET); printf(" 100: " COLOR_YELLOW "start test recv param interface...\n" COLOR_RESET); } @@ -176,6 +177,8 @@ int DataHandle::Request(int index) { RegistrationTest(); break; case 6: CameraTest(); break; + case 7: + PurifierTest(); break; case 100: ParamReadUsage(); while (printf("*请输入命令:") && std::getline(std::cin, userInput)) { @@ -337,4 +340,12 @@ void DataHandle::CameraTest() { SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"LastMouRefImgPosY", to_string(100),iINT); SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"ShowFlag", to_string(1),iBOOL); printf("CAMERAPARAMUPDATE update finish\n"); +} + + +void DataHandle::PurifierTest() { + SetPushMsg(PURIFIERFUNC, to_string(STARTAUTODEOXYGEN)); + printf("STARTAUTODEOXYGEN is called...\n"); + SetPushMsg(PURIFIERFUNC, to_string(STOPAUTODEOXYGEN)); + printf("STOPAUTODEOXYGEN is called...\n"); } \ No newline at end of file diff --git a/TestClient/DataManage/DataHandle.h b/TestClient/DataManage/DataHandle.h index e2b5d50..e7c62a8 100644 --- a/TestClient/DataManage/DataHandle.h +++ b/TestClient/DataManage/DataHandle.h @@ -30,6 +30,7 @@ public: void ScanCtrlTest(); //扫描控制测试 void RegistrationTest(); //注册功能测试 void CameraTest(); //相机功能测试 + void PurifierTest(); //净化器功能测试 void Usage(); void ParamReadUsage(); diff --git a/TestClient/DataManage/FunC.h b/TestClient/DataManage/FunC.h index d000bdc..b1b4865 100644 --- a/TestClient/DataManage/FunC.h +++ b/TestClient/DataManage/FunC.h @@ -76,4 +76,9 @@ enum CAMERAFUNC { TAKEPHOTOS, END2, +}; + +enum PurifierFunc { + STARTAUTODEOXYGEN = 0, + STOPAUTODEOXYGEN, }; \ No newline at end of file diff --git a/TestClient/DataManage/RWData.h b/TestClient/DataManage/RWData.h index 99dec3b..b9ce20f 100644 --- a/TestClient/DataManage/RWData.h +++ b/TestClient/DataManage/RWData.h @@ -101,6 +101,7 @@ enum WRITETYPE { REGISTFUNC, //注册函数集 一次请求,使用请求回复模式 CAMERAFUNC, //相机功能函数调用 CAMERAPARAMUPDATE, //相机参数更新 + PURIFIERFUNC, //净化器接口功能 SETZEROPOS, //AxisState使用 AXISSTOPALL, //axis 运动急停 diff --git a/TestClient/PrintC.vcxproj b/TestClient/PrintC.vcxproj index 015551f..cd1fe8d 100644 --- a/TestClient/PrintC.vcxproj +++ b/TestClient/PrintC.vcxproj @@ -286,6 +286,7 @@ + diff --git a/TestClient/PrintC.vcxproj.filters b/TestClient/PrintC.vcxproj.filters index c222b86..85e0ebc 100644 --- a/TestClient/PrintC.vcxproj.filters +++ b/TestClient/PrintC.vcxproj.filters @@ -518,6 +518,9 @@ protobuf + + utils + diff --git a/TestClient/main.cpp b/TestClient/main.cpp index 3090be4..a66f03a 100644 --- a/TestClient/main.cpp +++ b/TestClient/main.cpp @@ -12,6 +12,7 @@ #include #include "LanguageManager.h" #include "../DataManage/DataHandle.h" +#include "../utils/CheckDataType.h" string g_AppPath; string g_AppDisk; @@ -76,7 +77,7 @@ int main(int argc, char** argv) { unknowCmd = false; if (userInput.empty()) continue; - if(dataHandle->Request(stoi(userInput)) < 0){ + if(!CheckDataType::CheckToInt(userInput) || dataHandle->Request(stoi(userInput)) < 0){ printf("未识别的命令,请重新输入命令:"); unknowCmd = true; } @@ -85,8 +86,6 @@ int main(int argc, char** argv) { DELP(dataHandle); DELP(sys); - return 0; - } diff --git a/TestClient/utils/CheckDataType.h b/TestClient/utils/CheckDataType.h new file mode 100644 index 0000000..8a4792e --- /dev/null +++ b/TestClient/utils/CheckDataType.h @@ -0,0 +1,24 @@ +#pragma once +#include +#include + +class CheckDataType +{ +public: + static bool CheckToInt(const std::string& input){ + try { + int ret = stoi(input); + return true; + } + catch (const std::invalid_argument& e) { + printf("input is not number...\n"); + return false; + } + catch (const std::out_of_range& e) { + printf("input number is out of int range...\n"); + return false; + } + } + +}; +