fix schedule.json empty bug.
This commit is contained in:
parent
0afde88bbb
commit
bc821ed7b4
@ -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;
|
init_config:
|
||||||
// int wave_form_send_interval = 240;
|
if (!configed) {
|
||||||
// int eigen_value_send_duration = 6;
|
UseDefaultConfig();
|
||||||
// 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
short_addr_map_.clear();
|
short_addr_map_.clear();
|
||||||
ShortAddrCfg::ReadCfg(short_addr_map_);
|
ShortAddrCfg::ReadCfg(short_addr_map_);
|
||||||
|
|
||||||
@ -810,4 +796,26 @@ void SensorScheduler::CleanIdleOccupiedSet(long ts) {
|
|||||||
} else ++it;
|
} else ++it;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|||||||
@ -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_;
|
||||||
@ -132,7 +133,7 @@ private:
|
|||||||
std::unordered_set<uint16_t> patch_set_; // 漏传的补传
|
std::unordered_set<uint16_t> patch_set_; // 漏传的补传
|
||||||
void ClearFailureSuccessMap();
|
void ClearFailureSuccessMap();
|
||||||
bool RetransferWave(uint16_t short_addr);
|
bool RetransferWave(uint16_t short_addr);
|
||||||
bool MissedWave(uint16_t short_addr);
|
bool MissedWave(uint16_t short_addr);
|
||||||
|
|
||||||
// 空闲时间戳被占用
|
// 空闲时间戳被占用
|
||||||
std::unordered_set<long> free_slice_ocuppied_;
|
std::unordered_set<long> free_slice_ocuppied_;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user