|
|
@ -2,6 +2,7 @@ |
|
|
|
|
|
|
|
#include "appdep/components/ziconv.hpp"
|
|
|
|
using namespace iflytop; |
|
|
|
using namespace testpage; |
|
|
|
|
|
|
|
void TestPageMgrService::getTestPageCfgInfo(shared_ptr<MsgProcessContext> cxt) { cxt->rely["items"] = m_testPageItemMgr.getPageCfgInfo(); } |
|
|
|
void TestPageMgrService::onButton(shared_ptr<MsgProcessContext> cxt, string groupName, string buttonName, json params) { m_testPageItemMgr.processOnButton(groupName, buttonName, params); } |
|
|
@ -39,100 +40,109 @@ void TestPageMgrService::initialize() { |
|
|
|
|
|
|
|
REG_FN_VOID(PrinterTest_test, void()); |
|
|
|
|
|
|
|
m_dict = make_shared<ZDictionary>(); |
|
|
|
m_testPageItemMgr.installDict(m_dict); |
|
|
|
|
|
|
|
// 喷液泵1
|
|
|
|
m_dict->insert("pumpVel", "速度"); |
|
|
|
m_dict->insert("SprayPumpCtrl", "喷液泵控制"); |
|
|
|
m_dict->insert("SprayPumpCtrl.forward", "正转"); |
|
|
|
m_dict->insert("SprayPumpCtrl.backward", "反转"); |
|
|
|
m_dict->insert("SprayPumpCtrl.stop", "停止"); |
|
|
|
m_testPageItemMgr.installParamType("SprayPumpCtrl.pumpVel", "g/min", {"5", "10", "15"}); |
|
|
|
m_testPageItemMgr.insertButtons("SprayPumpCtrl", {"pumpVel"}, {"forward", "backward", "stop"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("SprayPumpCtrl on button.{} ({})", buttonName, param[0]); |
|
|
|
if (buttonName == "forward") { |
|
|
|
dcs->SprayPump_startInRPM(atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "backward") { |
|
|
|
dcs->SprayPump_startInRPM(-atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "stop") { |
|
|
|
dcs->SprayPump_stop(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 加液泵2
|
|
|
|
m_dict->insert("AddDischargePumpCtrl", "加液泵控制"); |
|
|
|
m_dict->insert("AddDischargePumpCtrl.addingLiquid", "加液"); |
|
|
|
m_dict->insert("AddDischargePumpCtrl.drainLiquid", "排液"); |
|
|
|
m_testPageItemMgr.insertButtons("AddDischargePumpCtrl", {}, {"addingLiquid", "drainLiquid"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on AddDischargePumpCtrl.{}", buttonName); |
|
|
|
if (buttonName == "addingLiquid") { |
|
|
|
dcs->AddLiquidPump_addLiquid(); |
|
|
|
} else if (buttonName == "drainLiquid") { |
|
|
|
dcs->AddLiquidPump_drainLiquid(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 空压机3
|
|
|
|
m_dict->insert("AirCompressorCtrl", "空压机控制"); |
|
|
|
m_dict->insert("AirCompressorCtrl.on", "打开"); |
|
|
|
m_dict->insert("AirCompressorCtrl.off", "关闭"); |
|
|
|
m_testPageItemMgr.insertButtons("AirCompressorCtrl", {}, {"on", "off"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on AirCompressorCtrl.{}", buttonName); |
|
|
|
if (buttonName == "on") { |
|
|
|
dcs->AC_ctrl(1); |
|
|
|
} else if (buttonName == "off") { |
|
|
|
dcs->AC_close(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 空压机电流4
|
|
|
|
m_dict->insert("ACState", "空压机状态"); |
|
|
|
m_dict->insert("ACState.current", "电流"); |
|
|
|
m_testPageItemMgr.insertStates("ACState", {"current"}, [this](string stateName) { //
|
|
|
|
auto SprayPumpCtrl = m_testPageItemMgr.createButtons({"SprayPumpCtrl", "喷液泵控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
{{"pumpVel", "速度"}, "g/min", {{"5"}, {"10"}, {"15"}}}, //
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"forward", "正转"}, |
|
|
|
{"backward", "反转"}, |
|
|
|
{"stop", "停止"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("SprayPumpCtrl on button.{} ({})", buttonName, param[0]); |
|
|
|
if (buttonName == "forward") { |
|
|
|
dcs->SprayPump_startInRPM(atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "backward") { |
|
|
|
dcs->SprayPump_startInRPM(-atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "stop") { |
|
|
|
dcs->SprayPump_stop(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto AddDischargePumpCtrl = m_testPageItemMgr.createButtons({"AddDischargePumpCtrl", "加液泵控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"addingLiquid", "加液"}, |
|
|
|
{"drainLiquid", "排液"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on AddDischargePumpCtrl.{}", buttonName); |
|
|
|
if (buttonName == "addingLiquid") { |
|
|
|
dcs->AddLiquidPump_addLiquid(); |
|
|
|
} else if (buttonName == "drainLiquid") { |
|
|
|
dcs->AddLiquidPump_drainLiquid(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto AirCompressorCtrl = m_testPageItemMgr.createButtons({"AirCompressorCtrl", "空压机控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"on", "打开"}, |
|
|
|
{"off", "关闭"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on AirCompressorCtrl.{}", buttonName); |
|
|
|
if (buttonName == "on") { |
|
|
|
dcs->AC_ctrl(1); |
|
|
|
} else if (buttonName == "off") { |
|
|
|
dcs->AC_close(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto ACState = m_testPageItemMgr.createStates({"ACState", "空压机状态"}, {{"current", "电流"}}, [this](string stateName) { //
|
|
|
|
return fmt::format("{:.2f}A", dcs->AC_readEI()); |
|
|
|
}); |
|
|
|
|
|
|
|
// 风机5
|
|
|
|
m_dict->insert("BlowerCtrl", "风机控制"); |
|
|
|
m_dict->insert("BlowerCtrl.on", "打开"); |
|
|
|
m_dict->insert("BlowerCtrl.off", "关闭"); |
|
|
|
|
|
|
|
m_testPageItemMgr.insertButtons("BlowerCtrl", {}, {"on", "off"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on BlowerCtrl.{}", buttonName); |
|
|
|
if (buttonName == "on") { |
|
|
|
dcs->Blower_ctrl(90); |
|
|
|
} else if (buttonName == "off") { |
|
|
|
dcs->Blower_close(); |
|
|
|
} |
|
|
|
return "error"; |
|
|
|
}); |
|
|
|
|
|
|
|
// 风机电流6
|
|
|
|
m_dict->insert("Blower", "风机状态"); |
|
|
|
m_dict->insert("Blower.current", "电流"); |
|
|
|
m_testPageItemMgr.insertStates("Blower", {"current"}, [this](string stateName) { //
|
|
|
|
auto BlowerCtrl = m_testPageItemMgr.createButtons({"BlowerCtrl", "风机控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"on", "打开"}, |
|
|
|
{"off", "关闭"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on BlowerCtrl.{}", buttonName); |
|
|
|
if (buttonName == "on") { |
|
|
|
dcs->Blower_ctrl(90); |
|
|
|
} else if (buttonName == "off") { |
|
|
|
dcs->Blower_close(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto Blower = m_testPageItemMgr.createStates({"Blower", "风机状态"}, {{"current", "电流"}}, [this](string stateName) { //
|
|
|
|
return fmt::format("{:.2f}A", dcs->AC_readEI()); |
|
|
|
}); |
|
|
|
|
|
|
|
// 加热片7
|
|
|
|
m_dict->insert("HeatingCtrl", "加热片控制"); |
|
|
|
m_dict->insert("HeatingCtrl.on", "打开"); |
|
|
|
m_dict->insert("HeatingCtrl.off", "关闭"); |
|
|
|
m_testPageItemMgr.insertButtons("HeatingCtrl", {}, {"on", "off"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on HeatingCtrl.{}", buttonName); |
|
|
|
if (buttonName == "on") { |
|
|
|
dcs->Heater_ctrl(1); |
|
|
|
} else if (buttonName == "off") { |
|
|
|
dcs->Heater_close(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 加热片状态8
|
|
|
|
m_dict->insert("HeatingState", "加热片状态"); |
|
|
|
m_dict->insert("HeatingState.temperature", "温度"); |
|
|
|
m_dict->insert("HeatingState.current", "电流"); |
|
|
|
m_testPageItemMgr.insertStates("HeatingState", {"temperature", "current"}, [this](string stateName) { //
|
|
|
|
auto HeatingCtrl = m_testPageItemMgr.createButtons({"HeatingCtrl", "加热片控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"on", "打开"}, |
|
|
|
{"off", "关闭"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("on HeatingCtrl.{}", buttonName); |
|
|
|
if (buttonName == "on") { |
|
|
|
dcs->Heater_ctrl(1); |
|
|
|
} else if (buttonName == "off") { |
|
|
|
dcs->Heater_close(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto HeatingState = m_testPageItemMgr.createStates({"HeatingState", "加热片状态"}, {{"temperature", "温度"}, {"current", "电流"}}, [this](string stateName) { //
|
|
|
|
if (stateName == "temperature") { |
|
|
|
return fmt::format("{:.2f}℃", dcs->Heater_readTemperature()); |
|
|
|
} else if (stateName == "current") { |
|
|
@ -142,59 +152,97 @@ void TestPageMgrService::initialize() { |
|
|
|
}); |
|
|
|
|
|
|
|
// 9
|
|
|
|
m_dict->insert("PrinterTest", "打印机测试"); |
|
|
|
m_dict->insert("PrinterTest.test", "测试"); |
|
|
|
m_testPageItemMgr.insertButtons("PrinterTest", {}, {"test"}, [this](string buttonName, vector<string> param) { PrinterTest_test(); }); |
|
|
|
|
|
|
|
auto PrinterTest = m_testPageItemMgr.createButtons({"PrinterTest", "打印机测试"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"test", "测试"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { PrinterTest_test(); }); |
|
|
|
|
|
|
|
// 10
|
|
|
|
m_testPageItemMgr.insertPlaceHolder(); |
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* 正负压力控制 * |
|
|
|
*******************************************************************************/ |
|
|
|
|
|
|
|
auto AirLeakDetectTestModeCtrl = m_testPageItemMgr.createButtons({"AirLeakDetectTestModeCtrl", "气密性检测通道控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"disinfection", "正常模式"}, |
|
|
|
{"inflation", "充气模式"}, |
|
|
|
{"leakTest", "漏气检测模式"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("AirLeakDetectTestModeCtrl buttonName:{} param:{}", buttonName, param); |
|
|
|
if (buttonName == "disinfection") { |
|
|
|
dcs->AirLeakDetectTestModeCtrl_setMode({kAirLeakTestMode_disinfection}); |
|
|
|
} else if (buttonName == "inflation") { |
|
|
|
dcs->AirLeakDetectTestModeCtrl_setMode({kAirLeakTestMode_inflation}); |
|
|
|
} else if (buttonName == "leakTest") { |
|
|
|
dcs->AirLeakDetectTestModeCtrl_setMode({kAirLeakTestMode_leakTest}); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto PosiPressurePropCtrl = m_testPageItemMgr.createButtons({"PosiPressurePropCtrl", "正压比例阀控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
{{"pumpVel", "百分比"}, "%", {{"0"}, {"10"}, {"20"}, {"30"}, {"40"}, {"50"}, {"60"}, {"70"}, {"80"}, {"90"}, {"100"}}}, //
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"set", "设置"}, |
|
|
|
{"close", "关闭"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("PosiPressurePropCtrl buttonName:{} params:{}", buttonName, param); |
|
|
|
if (buttonName == "set") { |
|
|
|
dcs->PosiPressureProp_setValve(atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "close") { |
|
|
|
dcs->PosiPressureProp_setValve(0); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
auto NegaPressurePropCtrl = m_testPageItemMgr.createButtons({"NegaPressurePropCtrl", "负压比例阀控制"}, // 模组名
|
|
|
|
{ |
|
|
|
// 参数
|
|
|
|
{{"pumpVel", "百分比"}, "%", {{"0"}, {"10"}, {"20"}, {"30"}, {"40"}, {"50"}, {"60"}, {"70"}, {"80"}, {"90"}, {"100"}}}, //
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// 按键
|
|
|
|
{"set", "设置"}, |
|
|
|
{"close", "关闭"}, |
|
|
|
}, |
|
|
|
[this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("NegaPressurePropCtrl buttonName:{} params:{}", buttonName, param); |
|
|
|
if (buttonName == "set") { |
|
|
|
dcs->NegaPressureProp_setValve(atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "close") { |
|
|
|
dcs->NegaPressureProp_setValve(0); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
m_testPageItemMgr.insert(SprayPumpCtrl); // 1
|
|
|
|
m_testPageItemMgr.insert(AddDischargePumpCtrl); // 2
|
|
|
|
m_testPageItemMgr.insert(AirCompressorCtrl); // 3
|
|
|
|
m_testPageItemMgr.insert(ACState); // 4
|
|
|
|
m_testPageItemMgr.insert(BlowerCtrl); // 5
|
|
|
|
m_testPageItemMgr.insert(Blower); // 6
|
|
|
|
m_testPageItemMgr.insert(HeatingCtrl); // 7
|
|
|
|
m_testPageItemMgr.insert(HeatingState); // 8
|
|
|
|
m_testPageItemMgr.insert(PrinterTest); // 9
|
|
|
|
m_testPageItemMgr.insert(make_shared<PlaceHolder>()); // 10
|
|
|
|
|
|
|
|
if (PORT.isPipeDM()) { |
|
|
|
// 11
|
|
|
|
m_dict->insert("AirLeakDetectTestModeCtrl", ""); |
|
|
|
m_dict->insert("AirLeakDetectTestModeCtrl.normal", "正常模式"); |
|
|
|
m_dict->insert("AirLeakDetectTestModeCtrl.airTight", "密封模式"); |
|
|
|
m_testPageItemMgr.insertButtons("AirLeakDetectTestModeCtrl", {}, {"normal", "airTight"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("AirLeakDetectTestModeCtrl buttonName:{} param:{}", buttonName, param); |
|
|
|
if (buttonName == "normal") { |
|
|
|
dcs->AirLeakDetectTestModeCtrl_setMode(0); |
|
|
|
} else if (buttonName == "airTight") { |
|
|
|
dcs->AirLeakDetectTestModeCtrl_setMode(1); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 比例阀控制 12
|
|
|
|
m_dict->insert("PosiPressurePropCtrl", "正压比例阀控制"); |
|
|
|
m_dict->insert("PosiPressurePropCtrl.set", "设置"); |
|
|
|
m_dict->insert("PosiPressurePropCtrl.close", "关闭"); |
|
|
|
m_dict->insert("NegaPressurePropCtrl", "负压比例阀控制"); |
|
|
|
m_dict->insert("NegaPressurePropCtrl.set", "设置"); |
|
|
|
m_dict->insert("NegaPressurePropCtrl.close", "关闭"); |
|
|
|
m_dict->insert("PosiPressurePropCtrl.percent", "百分比"); |
|
|
|
|
|
|
|
m_testPageItemMgr.installParamType("PosiPressurePropCtrl.percent", "%", {"0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"}); |
|
|
|
m_testPageItemMgr.insertButtons("PosiPressurePropCtrl", {"percent"}, {"set", "close"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("PosiPressurePropCtrl buttonName:{} params:{}", buttonName, param); |
|
|
|
if (buttonName == "set") { |
|
|
|
dcs->PosiPressureProp_setValve(atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "close") { |
|
|
|
dcs->PosiPressureProp_setValve(0); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 比例阀控制 13
|
|
|
|
m_testPageItemMgr.installParamType("NegaPressurePropCtrl.percent", "%", {"0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"}); |
|
|
|
m_testPageItemMgr.insertButtons("NegaPressurePropCtrl", {"percent"}, {"set", "close"}, [this](string buttonName, vector<string> param) { //
|
|
|
|
logger->info("NegaPressurePropCtrl buttonName:{},params:{}", buttonName, param); |
|
|
|
if (buttonName == "set") { |
|
|
|
dcs->NegaPressureProp_setValve(atoi(param[0].c_str())); |
|
|
|
} else if (buttonName == "close") { |
|
|
|
dcs->NegaPressureProp_setValve(0); |
|
|
|
} |
|
|
|
}); |
|
|
|
m_testPageItemMgr.insert(AirLeakDetectTestModeCtrl); // 11
|
|
|
|
m_testPageItemMgr.insert(PosiPressurePropCtrl); // 12
|
|
|
|
m_testPageItemMgr.insert(NegaPressurePropCtrl); // 13
|
|
|
|
} |
|
|
|
|
|
|
|
m_testPageItemMgr.onState.connect([this](json state) { //
|
|
|
|