fix schedule.json empty bug.

This commit is contained in:
pandx 2025-04-10 11:52:50 +08:00
parent 0afde88bbb
commit bc821ed7b4
2 changed files with 33 additions and 24 deletions

View File

@ -307,6 +307,7 @@ int SensorScheduler::GetNextDuration(int short_addr) {
SensorScheduler::SensorScheduler() { SensorScheduler::SensorScheduler() {
support_modification_ = true; support_modification_ = true;
std::ifstream schedule_file(SCHEDULE_CONFIG); std::ifstream schedule_file(SCHEDULE_CONFIG);
bool configed = false;
if (schedule_file.good()) { if (schedule_file.good()) {
zlog_info(zbt, "exist configuration file"); zlog_info(zbt, "exist configuration file");
Json::Reader reader; Json::Reader reader;
@ -314,13 +315,14 @@ SensorScheduler::SensorScheduler() {
if (!reader.parse(schedule_file, root, false)) { if (!reader.parse(schedule_file, root, false)) {
zlog_error(zbt, "invalid format, fail to parse %s", SCHEDULE_CONFIG); zlog_error(zbt, "invalid format, fail to parse %s", SCHEDULE_CONFIG);
schedule_file.close(); schedule_file.close();
return; goto init_config;
} }
schedule_file.close(); schedule_file.close();
if (!root.isObject()) { if (!root.isObject()) {
zlog_error(zbt, "invalid format, not an object: %s", SCHEDULE_CONFIG); zlog_error(zbt, "invalid format, not an object: %s", SCHEDULE_CONFIG);
return; goto init_config;
} }
configed = true;
start_timestamp_ = std::stol(root["schedule_start_timestamp"].asString()); start_timestamp_ = std::stol(root["schedule_start_timestamp"].asString());
start_ts_str_ = root["schedule_start_time"].asString(); start_ts_str_ = root["schedule_start_time"].asString();
long current_ts = GetLocalTs(); long current_ts = GetLocalTs();
@ -362,28 +364,12 @@ SensorScheduler::SensorScheduler() {
int rest_duration = eigen_value_send_interval_ - eigen_value_slice_total_seconds_; int rest_duration = eigen_value_send_interval_ - eigen_value_slice_total_seconds_;
wave_slice_num_per_eigen_interval_ = rest_duration / wave_form_send_duration_; wave_slice_num_per_eigen_interval_ = rest_duration / wave_form_send_duration_;
seconds_per_wave_slice_ = rest_duration / wave_slice_num_per_eigen_interval_; seconds_per_wave_slice_ = rest_duration / wave_slice_num_per_eigen_interval_;
} else {
zlog_info(zbt, "use default configuration");
int eigen_value_send_interval = 300;
int wave_form_send_interval = 7200;
int eigen_value_send_duration = 6;
int wave_form_send_duration = 50;
int max_sensor_num = 32;
// int eigen_value_send_interval = 120;
// int wave_form_send_interval = 240;
// 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,
error_msg);
} }
init_config:
if (!configed) {
UseDefaultConfig();
}
short_addr_map_.clear(); short_addr_map_.clear();
ShortAddrCfg::ReadCfg(short_addr_map_); ShortAddrCfg::ReadCfg(short_addr_map_);
@ -811,3 +797,25 @@ void SensorScheduler::CleanIdleOccupiedSet(long ts) {
} }
} }
} }
void SensorScheduler::UseDefaultConfig() {
zlog_info(zbt, "use default configuration");
int eigen_value_send_interval = 300;
int wave_form_send_interval = 7200;
int eigen_value_send_duration = 6;
int wave_form_send_duration = 50;
int max_sensor_num = 32;
// int eigen_value_send_interval = 120;
// int wave_form_send_interval = 240;
// 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,
error_msg);
}

View File

@ -104,6 +104,7 @@ public:
private: private:
void UpdateUpgradeInfo(int id); void UpdateUpgradeInfo(int id);
void CleanIdleOccupiedSet(long ts); void CleanIdleOccupiedSet(long ts);
void UseDefaultConfig();
// user config // user config
int eigen_value_send_interval_; int eigen_value_send_interval_;