From 03b8e51d3500bdd8a46216d5d6a08896e0210ba3 Mon Sep 17 00:00:00 2001 From: pandx Date: Thu, 26 Feb 2026 09:58:32 +0800 Subject: [PATCH] fix resend wave bug and add log info. --- scheduler/schedule.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/scheduler/schedule.cpp b/scheduler/schedule.cpp index 099dd54..86c0fc6 100644 --- a/scheduler/schedule.cpp +++ b/scheduler/schedule.cpp @@ -374,11 +374,21 @@ long SensorScheduler::CalcNextTimestamp(int id, uint16_t short_addr, bool &z, in available_ts = current_wave_slice_ts; free_slice_ocuppied_.insert(available_ts); 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; } 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; } - 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; } } @@ -801,6 +811,7 @@ void SensorScheduler::WaveSuccess(uint16_t short_addr, bool z) { zlog_debug(zbt, "[%x] wave z:%d success", short_addr, z); if (z) { z_success_set_.insert(short_addr); + z_patch_set_.erase(short_addr); auto iter = z_failure_map_.find(short_addr); if (iter != z_failure_map_.end()) { 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 { xy_success_set_.insert(short_addr); + xy_patch_set_.erase(short_addr); auto iter = xy_failure_map_.find(short_addr); if (iter != xy_failure_map_.end()) { zlog_debug(zbt, "[WaveSuccess][%x] try %d times success", short_addr, 4 - iter->second);