diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 1d893ec..893d1b4 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 8af08af..a6c2fe0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -69,7 +69,16 @@ "streambuf": "cpp", "thread": "cpp", "cinttypes": "cpp", - "typeinfo": "cpp" + "typeinfo": "cpp", + "csignal": "cpp", + "strstream": "cpp", + "bitset": "cpp", + "cfenv": "cpp", + "codecvt": "cpp", + "complex": "cpp", + "any": "cpp", + "future": "cpp", + "typeindex": "cpp" }, "C_Cpp.errorSquiggles": "disabled" } \ No newline at end of file diff --git a/scheduler/schedule.cpp b/scheduler/schedule.cpp index bd5b848..665ef88 100644 --- a/scheduler/schedule.cpp +++ b/scheduler/schedule.cpp @@ -120,12 +120,13 @@ SensorScheduler::SensorScheduler() { int eigen_value_send_duration = 6; int wave_form_send_duration = 40; int max_sensor_num = 4; - + std::string error_msg; Config(eigen_value_send_interval, wave_form_send_interval, eigen_value_send_duration, wave_form_send_duration, - max_sensor_num); + max_sensor_num, + error_msg); } short_addr_map_.clear(); @@ -362,7 +363,8 @@ int SensorScheduler::StartSchedule(int short_addr, int &next_duration) { } } -int SensorScheduler::Config(int eigen_value_send_interval, int wave_form_send_interval, int eigen_value_send_duration, int wave_form_send_duration, int max_sensor_num) { +int SensorScheduler::Config(int eigen_value_send_interval, int wave_form_send_interval, int eigen_value_send_duration, + int wave_form_send_duration, int max_sensor_num, std::string &error_msg) { if (!support_modification_) { zlog_warn(zct, "not support modification"); return 1; @@ -376,7 +378,8 @@ int SensorScheduler::Config(int eigen_value_send_interval, int wave_form_send_in wave_form_send_duration, max_sensor_num, available_slice, - free_slice); + free_slice, + error_msg); if (ret != 0) { return ret; } @@ -411,27 +414,32 @@ int SensorScheduler::Config(int eigen_value_send_interval, int wave_form_send_in // 一次特征值发送时长为6秒,波形发送时长为60秒 int SensorScheduler::CalcAvailableSlice(int eigen_value_send_interval, int wave_form_send_interval, int eigen_value_send_duration, int wave_form_send_duration, - int max_sensor_num, int &available_slice, int &free_slice) { + int max_sensor_num, int &available_slice, int &free_slice, + std::string &error_msg) { if (max_sensor_num <= 0) { - zlog_error(zbt, "invalid max_sensor_num:%d", max_sensor_num); + error_msg = "max_sensor_num:" + std::to_string(max_sensor_num) + " must bigger than 0"; + zlog_error(zbt, "%s", error_msg.c_str()); return 1; } if (max_sensor_num * eigen_value_send_duration > eigen_value_send_interval) { - zlog_error(zbt, "invalid eigen_value_send_interval:%d and eigen_value_send_duration:%d, max_sensor_num:%d", - eigen_value_send_interval, eigen_value_send_duration, max_sensor_num); + error_msg = "invalid max_sensor_num:" + std::to_string(max_sensor_num) + + " * eigen_value_send_duration:" + std::to_string(eigen_value_send_duration) + " > eigen_value_send_interval" + std::to_string(eigen_value_send_interval); + zlog_error(zbt, "%s", error_msg.c_str()); return 2; } if (max_sensor_num * wave_form_send_duration > wave_form_send_interval) { - zlog_error(zbt, "invalid wave_form_send_interval:%d and wave_form_send_duration:%d, max_sensor_num:%d", - wave_form_send_interval, wave_form_send_duration, max_sensor_num); + error_msg = "invalid wave_form_send_duration:" + std::to_string(wave_form_send_duration) + + " * max_sensor_num:" + std::to_string(max_sensor_num) + " > wave_form_send_interval:" + std::to_string(wave_form_send_interval); + zlog_error(zbt, "%s", error_msg.c_str()); return 3; } if (wave_form_send_interval % eigen_value_send_interval != 0) { - zlog_error(zbt, "invalid eigen_value_send_interval:%d and wave_form_send_interval:%d", - eigen_value_send_interval, wave_form_send_interval); + error_msg = "wave_form_send_interval:" + std::to_string(wave_form_send_interval) + " %% eigen_value_send_interval:" + std::to_string(eigen_value_send_interval) + + " != 0"; + zlog_error(zbt, "%s", error_msg.c_str()); return 4; } @@ -441,7 +449,8 @@ int SensorScheduler::CalcAvailableSlice(int eigen_value_send_interval, int wave_ available_slice = wave_form_send_interval / eigen_value_send_interval * slice_per_eigen_value_interval; free_slice = available_slice - max_sensor_num; if (free_slice < 0) { - zlog_error(zbt, "invalid config, available slice:%d, required slice:%d", available_slice, max_sensor_num); + error_msg = "invalid config, available slice:" + std::to_string(available_slice) + ", required slice:" + std::to_string(max_sensor_num); + zlog_error(zbt, "%s", error_msg.c_str()); return 5; } return 0; @@ -584,4 +593,4 @@ void SensorScheduler::UpdateUpgradeInfo(int id) { long ts = GetLocalTs(); upgrade_iter->second.try_world_time1.push_back(GetUTCTime(ts)); UpgradeCfg::WriteCfg(upgrade_); -} \ No newline at end of file +} diff --git a/scheduler/schedule.hpp b/scheduler/schedule.hpp index 918a215..13857bb 100644 --- a/scheduler/schedule.hpp +++ b/scheduler/schedule.hpp @@ -69,12 +69,12 @@ public: int Config(int eigen_value_send_interval, int wave_form_send_interval, int eigen_value_send_duration, int wave_form_send_duration, - int max_sensor_num); + int max_sensor_num, std::string &error_msg); int CalcAvailableSlice(int eigen_value_send_interval, int wave_form_send_interval, int eigen_value_send_duration, int wave_form_send_duration, - int max_sensor_num, int &available_slice, int &free_slice); - + int max_sensor_num, int &available_slice, int &free_slice, + std::string &error_msg); int GetScheduleConfig(int &eigen_value_send_interval, int &wave_form_send_interval, int &eigen_value_send_duration, int &wave_form_send_duration,