fix resend wave bug and add log info.

This commit is contained in:
pandx 2026-02-26 09:58:32 +08:00
parent 0978d9e980
commit 03b8e51d35

View File

@ -374,11 +374,21 @@ long SensorScheduler::CalcNextTimestamp(int id, uint16_t short_addr, bool &z, in
available_ts = current_wave_slice_ts; available_ts = current_wave_slice_ts;
free_slice_ocuppied_.insert(available_ts); free_slice_ocuppied_.insert(available_ts);
if (ZRetransferWave(short_addr) || ZMissedWave(short_addr)) { if (ZRetransferWave(short_addr) || ZMissedWave(short_addr)) {
if (ZRetransferWave(short_addr)) {
zlog_debug(zbt, "[Nxt] [%d:%x] retransfer z wave", id, short_addr);
} else {
zlog_debug(zbt, "[Nxt] [%d:%x] missed z wave", id, short_addr);
}
z = true; z = true;
} else { } else {
if (XYRetransferWave(short_addr)) {
zlog_debug(zbt, "[Nxt] [%d:%x] retransfer xy wave ", id, short_addr);
} else {
zlog_debug(zbt, "[Nxt] [%d:%x] missed xy wave ", id, short_addr);
}
z = false; z = false;
} }
zlog_debug(zbt, "[Nxt][%d:%x] %d nth free wave slice will be used to retransfer or patch wave, utc time:[%s]", id, short_addr, i+forward_wave_slice_num, GetUTCTime(available_ts).c_str()); zlog_debug(zbt, "[Nxt][%d:%x] %d nth free wave slice will be used to retransfer or patch z:%d wave, utc time:[%s]", id, short_addr, i+forward_wave_slice_num, z, GetUTCTime(available_ts).c_str());
break; break;
} }
} }
@ -801,6 +811,7 @@ void SensorScheduler::WaveSuccess(uint16_t short_addr, bool z) {
zlog_debug(zbt, "[%x] wave z:%d success", short_addr, z); zlog_debug(zbt, "[%x] wave z:%d success", short_addr, z);
if (z) { if (z) {
z_success_set_.insert(short_addr); z_success_set_.insert(short_addr);
z_patch_set_.erase(short_addr);
auto iter = z_failure_map_.find(short_addr); auto iter = z_failure_map_.find(short_addr);
if (iter != z_failure_map_.end()) { if (iter != z_failure_map_.end()) {
zlog_debug(zbt, "[WaveSuccess][%x] try %d times success", short_addr, 4 - iter->second); zlog_debug(zbt, "[WaveSuccess][%x] try %d times success", short_addr, 4 - iter->second);
@ -809,6 +820,7 @@ void SensorScheduler::WaveSuccess(uint16_t short_addr, bool z) {
} }
} else { } else {
xy_success_set_.insert(short_addr); xy_success_set_.insert(short_addr);
xy_patch_set_.erase(short_addr);
auto iter = xy_failure_map_.find(short_addr); auto iter = xy_failure_map_.find(short_addr);
if (iter != xy_failure_map_.end()) { if (iter != xy_failure_map_.end()) {
zlog_debug(zbt, "[WaveSuccess][%x] try %d times success", short_addr, 4 - iter->second); zlog_debug(zbt, "[WaveSuccess][%x] try %d times success", short_addr, 4 - iter->second);