]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
fsmmain and test prgrams: added support for sending of fsm_main and fsm_motion states...
authorMartin Zidek <zidekm1@gmail.com>
Sat, 3 May 2008 00:06:09 +0000 (02:06 +0200)
committerMartin Zidek <martin@martinzidek.com>
Sat, 3 May 2008 00:06:09 +0000 (02:06 +0200)
src/robofsm/eb2008/fsmmain.cc
src/robofsm/eb2008/test/goto.cc
src/robofsm/eb2008/test/homologation.cc
src/robofsm/eb2008/test/line.cc
src/robofsm/eb2008/test/mcl-laser.cc
src/robofsm/eb2008/test/odometry.cc
src/robofsm/eb2008/test/rectangle.cc

index 4bb6cc4266b45709fbe1eba0f29c8b61fce81790..c0548ad75cc1d1a8df8a6292447eb20246adfc3a 100644 (file)
@@ -218,6 +218,13 @@ void trans_callback(struct robo_fsm *fsm)
        if(fsm->state_name!=NULL)
                strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
        
+}
+
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
 }
 /************************************************************************
  * FSM STATES DECLARATION
@@ -496,6 +503,7 @@ int main()
 
        robot.fsm[FSM_ID_MAIN].state = &fsm_state_main_init;
        robot.fsm[FSM_ID_MAIN].transition_callback = trans_callback;
+       robot.fsm[FSM_ID_MOTION].transition_callback = move_trans_callback;
 
         /* start threads and wait */
         robot_start();
index 1e846f76ab00aac7a6e7278a73f969925cde5839..457b9c1ee5b5115b7f942e013e793eea2e3d1260 100644 (file)
@@ -21,7 +21,6 @@
 #include <robomath.h>
 #include <map.h>
 
-
 FSM_STATE_DECL(robot_goto_test);
 
 FSM_STATE(init)
@@ -72,6 +71,18 @@ FSM_STATE(robot_goto_test)
        }
 }
 
+void trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
 int main()
 {
        /* robot initialization */
@@ -80,6 +91,8 @@ int main()
        FSM(MAIN)->debug_states = 1;
        FSM(MOTION)->debug_states = 1;
 
+       robot.fsm[FSM_ID_MAIN].transition_callback = trans_callback;
+       robot.fsm[FSM_ID_MOTION].transition_callback = move_trans_callback;
        FSM(MAIN)->state = &fsm_state_main_init;
 
         /* start threads and wait */
index d53b3e12a5052cf0dc84fc21cf1672cf3c028be7..f325b7198c94f8d1b2d3ffe2beb1e722ed5ffeaa 100644 (file)
@@ -216,6 +216,18 @@ void robot_go_closer()
        robot_move_by(0.05, NO_TURN(), NULL);
 }
 
+void trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
 /************************************************************************
  * FSM STATES DECLARATION
  ************************************************************************/
@@ -550,6 +562,8 @@ int main()
 
        FSM(MAIN)->debug_states = 1;
 
+       robot.fsm[FSM_ID_MAIN].transition_callback = trans_callback;
+       robot.fsm[FSM_ID_MOTION].transition_callback = move_trans_callback;
        robot.fsm[FSM_ID_MAIN].state = &fsm_state_main_init;
 
         /* start threads and wait */
index d7379a709df64421224eb5110d870a4719d78672..fcbaf8f9d677cbf6b86dd616afc00920fa8e9b37 100644 (file)
@@ -41,6 +41,19 @@ void follow_line()
        backward = !backward;
 }
 
+void trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
+
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
 FSM_STATE(line)
 {
        switch (FSM_EVENT) {
@@ -93,6 +106,8 @@ int main()
        FSM(MAIN)->debug_states = 1;
        /*FSM(MOVE)->debug_states = 1;*/
 
+       robot.fsm[FSM_ID_MAIN].transition_callback = trans_callback;
+       robot.fsm[FSM_ID_MOTION].transition_callback = move_trans_callback;
        robot.fsm[FSM_ID_MAIN].state = &fsm_state_main_init;
 
         /* Start threads and wait */
index 04ea2be42332e2d74d862c1a8f0ad0f0dda4aea7..aa79d1f1c4f293d2faa8f15d34252ed18111bdfc 100644 (file)
 #include <trgen.h>
 #include <robomath.h>
 
+void trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
 FSM_STATE_DECL(rectangle);
 FSM_STATE_DECL(turn);
 FSM_STATE_DECL(wait);
@@ -96,6 +108,8 @@ int main()
        FSM(MAIN)->debug_states = 1;
        /*FSM(MOVE)->debug_states = 1;*/
 
+       robot.fsm[FSM_ID_MAIN].transition_callback = trans_callback;
+       robot.fsm[FSM_ID_MOTION].transition_callback = move_trans_callback;
        robot.fsm[FSM_ID_MAIN].state = &fsm_state_main_init;
 
         /* start threads and wait */
index ed7f7952bb9f5e6ad0e9eef18016d2e586605c96..a27e0ac453915e75f9bd2dced5e7fc9a64122578 100644 (file)
 #include <trgen.h>
 #include <robomath.h>
 
+void trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
 FSM_STATE_DECL(rectangle);
 FSM_STATE_DECL(turn);
 FSM_STATE_DECL(wait);
@@ -95,6 +107,8 @@ int main()
        FSM(MAIN)->debug_states = 1;
        /*FSM(MOVE)->debug_states = 1;*/
 
+       robot.fsm[FSM_ID_MAIN].transition_callback = trans_callback;
+       robot.fsm[FSM_ID_MOTION].transition_callback = move_trans_callback;
        robot.fsm[FSM_ID_MAIN].state = &fsm_state_main_init;
 
         /* start threads and wait */
index 2fca5748670565e6d51e12d725236e4adb544ab7..b199d0e42548d61885d92e2beefae5b43b0555c5 100644 (file)
 #include <trgen.h>
 #include <robomath.h>
 
+void trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.act_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
+void move_trans_callback(struct robo_fsm *fsm)
+{
+       if(fsm->state_name!=NULL)
+               strncpy(robot.move_fsm_state_name, fsm->state_name, FSM_STATE_NAME_MAX_LEN);
+       
+}
 FSM_STATE_DECL(rectangle);
 FSM_STATE_DECL(turn);
 FSM_STATE_DECL(wait);