Fix movement transition issue.

When transitioning the movements directly the channel should be stopped first.
This commit is contained in:
Kozmotronik
2025-02-22 08:48:22 +03:00
parent 7d3f08b56b
commit e54e28020c

View File

@@ -582,11 +582,14 @@ static void relay_chn_issue_cmd(relay_chn_t* relay_chn, relay_chn_cmd_t cmd)
relay_chn_dispatch_cmd(relay_chn, cmd); relay_chn_dispatch_cmd(relay_chn, cmd);
return; return;
} }
if (relay_chn->run_info.last_run_cmd == cmd) { if (relay_chn->run_info.last_run_cmd == cmd) {
// If the last run command is the same as the current command, do nothing // If the last run command is the same as the current command, do nothing
return; return;
} }
// Stop the channel first before the schedule
relay_chn_dispatch_cmd(relay_chn, RELAY_CHN_CMD_STOP);
// If the last run command is different from the current command, wait for the opposite inertia time // If the last run command is different from the current command, wait for the opposite inertia time
relay_chn->pending_cmd = cmd; relay_chn->pending_cmd = cmd;