From eced62afd40b3062fa2497f2f8b6a7341513b00c Mon Sep 17 00:00:00 2001 From: wangxx1809 Date: Fri, 17 May 2024 15:57:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=87=80=E5=8C=96=E5=99=A8?= =?UTF-8?q?=E9=80=9A=E4=BF=A1=E5=8A=9F=E8=83=BD=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrintS/DataManage/DataHandle.cpp | 5 ++++- PrintS/DataManage/RWData.h | 1 + PrintS/Machine/Machine.cpp | 4 +--- PrintS/Purifier/BasePurifier.cpp | 15 +++++++++++++++ PrintS/Purifier/BasePurifier.h | 12 ++++++++---- PrintS/output/Release/log/2024.hbd | Bin 139264 -> 139264 bytes TestClient/DataManage/DataHandle.cpp | 11 +++++++++++ TestClient/DataManage/DataHandle.h | 1 + TestClient/DataManage/FunC.h | 5 +++++ TestClient/DataManage/RWData.h | 1 + TestClient/PrintC.vcxproj | 1 + TestClient/PrintC.vcxproj.filters | 3 +++ TestClient/main.cpp | 5 ++--- TestClient/utils/CheckDataType.h | 24 ++++++++++++++++++++++++ 14 files changed, 77 insertions(+), 11 deletions(-) create mode 100644 TestClient/utils/CheckDataType.h 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 b240560c24bc43acb4e16c80052aa4dc0f925f98..66445a568e7d43b7b405ba33b782e76174afafd5 100644 GIT binary patch delta 16530 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 h@O{Bh|^(RL2k=`7i$;BSAYCXq?U%0 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 J?iM|auJ1Wn@Javx 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; + } + } + +}; +