fix upgrade issue when process restart and go to normal mode when all upgrade finish.
This commit is contained in:
parent
49b67921c5
commit
50eb148a30
@ -686,6 +686,9 @@ init_config:
|
|||||||
std::cout << value.asInt() << std::endl; // 转换并输出每个整数
|
std::cout << value.asInt() << std::endl; // 转换并输出每个整数
|
||||||
zlog_debug(zbt, "[%d] upgrade sensor:%x", value.asInt());
|
zlog_debug(zbt, "[%d] upgrade sensor:%x", value.asInt());
|
||||||
upgrade_slice_sensor_id_[i] = value.asInt();
|
upgrade_slice_sensor_id_[i] = value.asInt();
|
||||||
|
if (upgrade_slice_sensor_id_[i] > 0) {
|
||||||
|
upgrade_list_.insert(upgrade_slice_sensor_id_[i]);
|
||||||
|
}
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
@ -1115,16 +1118,30 @@ int SensorScheduler::UpgradeResult(uint16_t short_addr, int result) {
|
|||||||
upgrade_list_.erase(short_addr);
|
upgrade_list_.erase(short_addr);
|
||||||
upgrade_.erase(id);
|
upgrade_.erase(id);
|
||||||
zlog_info(zbt, "[%d] short addr:%x upgrade successfully", id, short_addr);
|
zlog_info(zbt, "[%d] short addr:%x upgrade successfully", id, short_addr);
|
||||||
UpgradeCfg::WriteCfg(upgrade_);
|
if (upgrade_list_.size() == 0) {
|
||||||
GenerateUpgradeSchedule();
|
zlog_info(zbt, "no upgrade sensor, go to normal status");
|
||||||
|
current_schedule_status_ = kScheduleStatusNormal;
|
||||||
|
set_schedule_status(current_schedule_status_);
|
||||||
|
UpgradeCfg::ClearCfg();
|
||||||
|
} else {
|
||||||
|
UpgradeCfg::WriteCfg(upgrade_);
|
||||||
|
GenerateUpgradeSchedule();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
auto upgrade_iter = upgrade_.find(id);
|
auto upgrade_iter = upgrade_.find(id);
|
||||||
if (upgrade_iter->second.try_times >= wave_resend_num_) {
|
if (upgrade_iter->second.try_times >= wave_resend_num_) {
|
||||||
zlog_warn(zbt, "[%d] short addr:%x upgrade %d time failure", id, short_addr, wave_resend_num_);
|
zlog_warn(zbt, "[%d] short addr:%x upgrade %d time failure", id, short_addr, wave_resend_num_);
|
||||||
upgrade_list_.erase(short_addr);
|
upgrade_list_.erase(short_addr);
|
||||||
upgrade_.erase(id);
|
upgrade_.erase(id);
|
||||||
UpgradeCfg::WriteCfg(upgrade_);
|
if (upgrade_list_.size() == 0) {
|
||||||
GenerateUpgradeSchedule();
|
zlog_info(zbt, "no upgrade sensor, go to normal status");
|
||||||
|
current_schedule_status_ = kScheduleStatusNormal;
|
||||||
|
set_schedule_status(current_schedule_status_);
|
||||||
|
UpgradeCfg::ClearCfg();
|
||||||
|
} else {
|
||||||
|
UpgradeCfg::WriteCfg(upgrade_);
|
||||||
|
GenerateUpgradeSchedule();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
UpdateUpgradeInfo(id);
|
UpdateUpgradeInfo(id);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user