]> rtime.felk.cvut.cz Git - eurobot/public.git/blobdiff - src/eb_lift_11/fsm_lift.c
eb_lift_11: add homing flag to can lift cmd.
[eurobot/public.git] / src / eb_lift_11 / fsm_lift.c
index d0c01435c08abea6815e44fad15f4ece09ad5b09..0440924d07df318cb02cced90eaf1d00272282b7 100644 (file)
@@ -39,6 +39,8 @@ static void homing(struct fsm *fsm, enum event event)
                   fsm->act_pos=0;
                   fsm->current_state = wait_for_cmd;  
                   fsm->flags |= CAN_LIFT_HOMED;
+                  fsm->trigger_can_send=1;
+                  fsm->can_req_homing=0;
 //                   fsm->can_req_position = 0x54E2;
                 }
                 else if (timer_msec >= (time_start + 3000)) {
@@ -47,8 +49,8 @@ static void homing(struct fsm *fsm, enum event event)
                   fsm->flags |= CAN_LIFT_TIMEOUT;
                   fsm->flags &= ~CAN_LIFT_HOMED;
                   fsm->trigger_can_send=1;
-                }
-                                
+                  fsm->can_req_homing=0;
+                }               
                 break;
         case EVENT_EXIT:
                 break;
@@ -120,7 +122,7 @@ static void wait_for_cmd(struct fsm *fsm, enum event event)
                   fsm->current_state=homing;
                 }
                 //homing if match start, but did not homing before start
-                if ((fsm->flags & CAN_LIFT_START) && !(fsm->flags & CAN_LIFT_HOMED)){
+                if ((fsm->can_req_homing) && !(fsm->flags & CAN_LIFT_HOMED)){
                   fsm->current_state=homing;
                 }
                do_control(fsm, 2);