Fix movement transition issue.
When transitioning the movements directly the channel should be stopped first.
This commit is contained in:
@@ -484,11 +484,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;
|
||||||
|
|||||||
Reference in New Issue
Block a user