Auto commit at 2025-06-19 14:55:46
This commit is contained in:
parent
e15bcea458
commit
8eaac5b877
@ -71,6 +71,8 @@ void epsTimerTask(CANDriver &canctl)
|
||||
// 定时器回调:VCU 灯控、扫地、除尘等功能
|
||||
void vcuTimerTask(CANDriver &canctl, DumperController &dumper)
|
||||
{
|
||||
static bool last_sweep_ctrl = false; // 上一次扫地状态(用于比较是否发生变化)
|
||||
|
||||
auto msg = get_safe_control();
|
||||
|
||||
vcu1_cmd.setLeftLight(msg.left_light);
|
||||
@ -85,11 +87,16 @@ void vcuTimerTask(CANDriver &canctl, DumperController &dumper)
|
||||
vcu2_cmd.setSpray(msg.spray);
|
||||
vcu2_cmd.setSweeepCtrl(msg.sweep_ctrl);
|
||||
|
||||
// 只有在扫地中并且斗处于收斗状态时才发VCU指令
|
||||
if (msg.sweep_ctrl && dumper.getSimpleState() == 0)
|
||||
bool sweep_changed = (msg.sweep_ctrl != last_sweep_ctrl);
|
||||
bool can_start_sweep = (msg.sweep_ctrl && dumper.getSimpleState() == 0);
|
||||
|
||||
if (sweep_changed || can_start_sweep)
|
||||
{
|
||||
// 状态变更(开或关) 或者 满足开始扫地条件,发出指令
|
||||
canctl.sendFrame(vcu1_cmd.toFrame());
|
||||
canctl.sendFrame(vcu2_cmd.toFrame());
|
||||
|
||||
last_sweep_ctrl = msg.sweep_ctrl; // 更新上一次状态
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user