|
|
@ -25,13 +25,86 @@ using namespace iflytop; |
|
|
|
using namespace core; |
|
|
|
using namespace std; |
|
|
|
using namespace nlohmann; |
|
|
|
using namespace err; |
|
|
|
|
|
|
|
void AppCore::dosystem(string order, bool dump) { |
|
|
|
if (dump) logger->info("do:{}", order); |
|
|
|
system(order.c_str()); |
|
|
|
} |
|
|
|
|
|
|
|
static void installEcodeInfo() { |
|
|
|
// kerr_motor_reset_error = 100,
|
|
|
|
// kerr_motor_subdevice_offline = 101,
|
|
|
|
// kerr_motor_driver_error = 102,
|
|
|
|
// kerr_motor_undervoltage_error = 103,
|
|
|
|
// kerr_motor_unkown_error = 104,
|
|
|
|
|
|
|
|
// kerr_motor_overtemperature_flag = 105,
|
|
|
|
// kerr_motor_overtemperature_pre_warning_flag = 106,
|
|
|
|
// kerr_motor_short_to_ground_indicator_phase_A = 107,
|
|
|
|
// kerr_motor_short_to_ground_indicator_phase_B = 108,
|
|
|
|
// kerr_motor_open_load_indicator_phase_A = 109,
|
|
|
|
// kerr_motor_open_load_indicator_phase_B = 110,
|
|
|
|
// kerr_motor_standstill_indicator = 111,
|
|
|
|
|
|
|
|
// kerr_AirBlowerError = 200, // 空压机异常
|
|
|
|
// kerr_HeaterError = 201, // 加热片异常
|
|
|
|
// kerr_BlowerError = 202, // 鼓风机异常
|
|
|
|
// kerr_ProportionalValveError = 203, // 气密性测试专用空压机异常
|
|
|
|
|
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_reset_error, "电机复位错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_subdevice_offline, "电机子设备离线"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_driver_error, "电机驱动器错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_undervoltage_error, "电机欠压错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_unkown_error, "电机未知错误"); |
|
|
|
|
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_overtemperature_flag, "电机过温"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_overtemperature_pre_warning_flag, "电机过温预警"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_short_to_ground_indicator_phase_A, "电机A相短接"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_short_to_ground_indicator_phase_B, "电机B相短接"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_open_load_indicator_phase_A, "电机A相过载"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_open_load_indicator_phase_B, "电机B相过载"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_standstill_indicator, "电机异常停止"); |
|
|
|
|
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_AirBlowerError, "空压机异常"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_HeaterError, "加热片异常"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_BlowerError, "鼓风机异常"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kerr_ProportionalValveError, "气密性测试专用空压机异常"); |
|
|
|
|
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_code_error, "错误码错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_cmd_not_support, "命令不支持"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_parse_json_err, "解析json错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_std_exception, "标准库异常"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_db_operate_error, "数据库操作错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_missing_param, "缺少参数"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_param_num_err, "参数个数错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_param_value_err, "参数值错误"); |
|
|
|
|
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_user_not_exist, "用户不存在"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_passwd_error, "密码错误"); |
|
|
|
|
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_disinfectant_insufficient, "消毒液不足"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_the_bottom_of_the_device_has_water, "设备底部有水"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_the_evaporation_bin_has_water, "蒸发仓有水"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_the_sensor_is_prehearting, "传感器正在预热"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_not_detect_udisk, "未检测到U盘"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_udisk_wr_fail, "U盘读写错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_open_file_error, "文件操作错误"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_adding_liquid_is_already_in_place, "液体已加到位"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_adding_liquid_is_greater_than_the_maximum_capacity_of_the_device, "加液大于设备最大容量"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_sensor_is_pre_hearting, "传感器正在预热"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_state_is_busy, "设备忙"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_adding_liquid, "加液中"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_draining_liquid, "排液中"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_disinfecting, "消毒中"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_air_leak_detect_testing, "气密性测试中"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_setting_id_outof_range, "设置ID超出范围"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_exception_flag_is_setted, "设备硬件异常"); |
|
|
|
AppEcodeInfoMgr::ins().regEcodeInfo(kappe_disinfection_state_is_wrong, "消毒状态错误"); |
|
|
|
} |
|
|
|
|
|
|
|
void AppCore::initialize() { |
|
|
|
installEcodeInfo(); |
|
|
|
// FrontEnd
|
|
|
|
BUILD_AND_REG_SERRVICE(IflytopFrontEndService); |
|
|
|
BUILD_AND_REG_SERRVICE(DebugPage); |
|
|
@ -157,18 +230,18 @@ void AppCore::promptConfirm(shared_ptr<MsgProcessContext> cxt, string promptId) |
|
|
|
|
|
|
|
void AppCore::promptGetAll(shared_ptr<MsgProcessContext> cxt) { |
|
|
|
lock_guard<recursive_mutex> lock(warningPromptListMutex); |
|
|
|
auto content = cxt->rely; |
|
|
|
content["prompts"] = json::array(); |
|
|
|
auto rely = cxt->rely; |
|
|
|
rely["prompts"] = json::array(); |
|
|
|
for (auto& p : warningPromptList) { |
|
|
|
content["warningPromptList"].push_back(*p); |
|
|
|
rely["prompts"].push_back(*p); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void AppCore::promptGetNext(shared_ptr<MsgProcessContext> cxt) { |
|
|
|
lock_guard<recursive_mutex> lock(warningPromptListMutex); |
|
|
|
auto content = cxt->rely; |
|
|
|
auto rely = cxt->rely; |
|
|
|
if (warningPromptList.size() > 0) { |
|
|
|
content["warningPrompt"] = *warningPromptList.front(); |
|
|
|
rely["prompt"] = *warningPromptList.front(); |
|
|
|
} |
|
|
|
} |
|
|
|
void AppCore::setInTestMode(shared_ptr<MsgProcessContext> cxt, bool isInTestMode) { DS->setTestMode(isInTestMode); } |
|
|
@ -245,6 +318,9 @@ json AppCore::getState() { |
|
|
|
|
|
|
|
ret["testMode"]["isInTestMode"] = DS->isTestMode(); |
|
|
|
|
|
|
|
ret["promptNum"] = warningPromptList.size(); |
|
|
|
ret["prompts"] = json::array(); |
|
|
|
for (auto& p : warningPromptList) { |
|
|
|
ret["prompts"].push_back(*p); |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |