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,