From cd1b6dd1ebea836e835adbdbe49024249477bc28 Mon Sep 17 00:00:00 2001 From: pandx Date: Sat, 7 Feb 2026 18:41:15 +0800 Subject: [PATCH] add protection --- scheduler/schedule.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scheduler/schedule.cpp b/scheduler/schedule.cpp index 6b20ffd..ff188d8 100644 --- a/scheduler/schedule.cpp +++ b/scheduler/schedule.cpp @@ -1349,12 +1349,16 @@ void SensorScheduler::GenerateUpgradeSchedule() { // 3 如果是1到2个传感器,隔2分钟(两个波形间隔)测试一次; 如果是大于2个传感器,一直连排就行了 long current_ts = GetLocalTs(); - long nth_wave_start_slice = (current_ts - start_timestamp_) / wave_form_send_interval_; + long nth_wave_start_slice = abs(current_ts - start_timestamp_) / wave_form_send_interval_; + zlog_debug(zbt, "current ts: %ld, start ts:%ld", current_ts, start_timestamp_); long current_wave_start_ts = nth_wave_start_slice * wave_form_send_interval_ + start_timestamp_; long seconds_in_current_wave_slice = current_ts_ - current_wave_start_ts; long nth_eigen_value_slice = seconds_in_current_wave_slice / eigen_value_send_interval_; long seconds_in_current_eigen_slice = seconds_in_current_wave_slice % eigen_value_send_interval_; int previous_wave_slice = wave_slice_num_per_eigen_interval_ * (nth_eigen_value_slice + 1); + if (previous_wave_slice < 0) { + zlog_error(zbt, "previous_wave_slice: %d", previous_wave_slice); + } if (previous_wave_slice == available_slice_) { previous_wave_slice = 0; }