void *recvCallBackParam)
{
struct vidle_status_type *instance = (struct vidle_status_type *)vinstance;
+ static bool last_timeout = false;
switch (info->status) {
case NEW_DATA:
// new data arrived and requested position equals actual position
else
robot.status[COMPONENT_VIDLE]=STATUS_WARNING;
- if (instance->response == act_vidle_get_last_reqest() ||
- instance->flags & CAN_VIDLE_TIMEOUT) {
+ if ((instance->response == act_vidle_get_last_reqest()) ||
+ (instance->flags & CAN_VIDLE_TIMEOUT && ! last_timeout)) {
FSM_SIGNAL(MAIN, EV_VIDLE_DONE, NULL);
}
+ last_timeout = instance->flags & CAN_VIDLE_TIMEOUT;
break;
case DEADLINE:
robot.status[COMPONENT_VIDLE]=STATUS_FAILED;