fsm->req_pos = fsm->start_pos;
break;
case EVENT_DO:
+ if (fsm->can_req_position != fsm->req_target) {
+ fsm->flags |= CAN_VIDLE_TIMEOUT;
+ fsm->current_state = wait_for_cmd;
+ }
if(fsm->req_spd != 0 && counter++ >= 10)
{
counter = 0;
}
}
if (timer_msec - fsm->time_start > (fsm->req_spd == 0 ? 1000 : 3000)) {
- fsm->flags = CAN_VIDLE_TIMEOUT;
+ fsm->flags |= CAN_VIDLE_TIMEOUT;
fsm->can_response = fsm->req_target;
fsm->current_state = wait_for_cmd;
fsm->req_pos = fsm->act_pos;