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() {
support_modification_ = true;
std::ifstream schedule_file(SCHEDULE_CONFIG);
bool configed = false;
if (schedule_file.good()) {
zlog_info(zbt, "exist configuration file");
Json::Reader reader;
@ -314,13 +315,14 @@ SensorScheduler::SensorScheduler() {
if (!reader.parse(schedule_file, root, false)) {
zlog_error(zbt, "invalid format, fail to parse %s", SCHEDULE_CONFIG);
schedule_file.close();
return;
goto init_config;
}
schedule_file.close();
if (!root.isObject()) {
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_ts_str_ = root["schedule_start_time"].asString();
long current_ts = GetLocalTs();
@ -362,28 +364,12 @@ SensorScheduler::SensorScheduler() {
int rest_duration = eigen_value_send_interval_ - eigen_value_slice_total_seconds_;
wave_slice_num_per_eigen_interval_ = rest_duration / wave_form_send_duration_;
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();
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:
void UpdateUpgradeInfo(int id);
void CleanIdleOccupiedSet(long ts);
void UseDefaultConfig();
// user config
int eigen_value_send_interval_;