diff --git a/scheduler/schedule.cpp b/scheduler/schedule.cpp index 32728b6..abac2e4 100644 --- a/scheduler/schedule.cpp +++ b/scheduler/schedule.cpp @@ -313,7 +313,7 @@ long SensorScheduler::CalcNextTimestamp(int id, uint16_t short_addr, bool &z, in } } - if ((g_z || g_x || g_y) && send_wave_ts == 0) { + if (send_wave_ts == 0) { if (trigger_wave_record_.find(short_addr) != trigger_wave_record_.end()) { auto iter = trigger_wave_record_.find(short_addr); if (iter->second.first != 0 || iter->second.second != 0) { @@ -327,10 +327,12 @@ long SensorScheduler::CalcNextTimestamp(int id, uint16_t short_addr, bool &z, in next_task_id = kScheduleWaveForm; if (iter->second.first != 0) { z = true; + iter->second.first = 0; } else { z = false; + iter->second.second = 0; } - + WriteTriggerWaveRecord(); zlog_debug(zbt, "[Nxt][%d:%x] %d nth free wave slice will be used to trigger z : %d wave, utc time:[%s]", id, short_addr, i+forward_wave_slice_num, z, GetUTCTime(available_ts).c_str()); break; } else { @@ -415,39 +417,39 @@ long SensorScheduler::CalcNextTimestamp(int id, uint16_t short_addr, bool &z, in return max_ts; } - for (int i = forward_wave_slice_num+1; i <= forward_wave_slice_num + wave_slice_num_per_eigen_interval_; ++i) { - if (slice_sensor_id_[i] == 0) { // idle time - send_wave_ts = current_wave_start_ts_ + nth_eigen_value_slice_ * eigen_value_send_interval_ + 60 + (i - forward_wave_slice_num - 1) * 60; - if (free_slice_ocuppied_.count(send_wave_ts) != 0) { - continue; - } - zlog_debug(zbt, "[%d:%x] in idle time for trigger wave", id, short_addr); - if (trigger_wave_record_.find(short_addr) != trigger_wave_record_.end()) { - auto iter = trigger_wave_record_.find(short_addr); - if (iter->second.first != 0) { - current_request_ = kScheduleWaveForm; - z = true; - zlog_debug(zbt, "[%d:%x] trigger z wave time", id, short_addr); - iter->second.first = 0; - next_task_id = kScheduleWaveForm; - free_slice_ocuppied_.insert(send_wave_ts); - WriteTriggerWaveRecord(); - return send_wave_ts; - } else if (iter->second.second != 0) { - current_request_ = kScheduleWaveForm; - z = false; - iter->second.second = 0; - WriteTriggerWaveRecord(); - next_task_id = kScheduleWaveForm; - zlog_debug(zbt, "[%d:%x] trigger xy wave time", id, short_addr); - free_slice_ocuppied_.insert(send_wave_ts); - return send_wave_ts; - } - } else { - break; - } - } - } + // for (int i = forward_wave_slice_num+1; i <= forward_wave_slice_num + wave_slice_num_per_eigen_interval_; ++i) { + // if (slice_sensor_id_[i] == 0) { // idle time + // send_wave_ts = current_wave_start_ts_ + nth_eigen_value_slice_ * eigen_value_send_interval_ + 60 + (i - forward_wave_slice_num - 1) * 60; + // if (free_slice_ocuppied_.count(send_wave_ts) != 0) { + // continue; + // } + // zlog_debug(zbt, "[%d:%x] in idle time for trigger wave", id, short_addr); + // if (trigger_wave_record_.find(short_addr) != trigger_wave_record_.end()) { + // auto iter = trigger_wave_record_.find(short_addr); + // if (iter->second.first != 0) { + // current_request_ = kScheduleWaveForm; + // z = true; + // zlog_debug(zbt, "[%d:%x] trigger z wave time", id, short_addr); + // iter->second.first = 0; + // next_task_id = kScheduleWaveForm; + // free_slice_ocuppied_.insert(send_wave_ts); + // WriteTriggerWaveRecord(); + // return send_wave_ts; + // } else if (iter->second.second != 0) { + // current_request_ = kScheduleWaveForm; + // z = false; + // iter->second.second = 0; + // WriteTriggerWaveRecord(); + // next_task_id = kScheduleWaveForm; + // zlog_debug(zbt, "[%d:%x] trigger xy wave time", id, short_addr); + // free_slice_ocuppied_.insert(send_wave_ts); + // return send_wave_ts; + // } + // } else { + // break; + // } + // } + // } } else { if (current_schedule_status_ == kScheduleStatusDebug) { if (debug_list_.count(short_addr) == 0) {