//ShmapSetRectangleFlag(2.74, 0.0, 3.0, 2.1, MAP_FLAG_WALL, 0); /* right */
}
-static void trans_callback(struct robo_fsm *fsm)
+void trans_callback()
{
-/* if (fsm == &robot.fsm.main) {
- strncpy(robot.orte.fsm_main.state_name, fsm->state_name, sizeof(robot.orte.fsm_main.state_name));
+ if (robot.MAIN == robot.sched.getActualHandle()) {
+ strncpy(robot.orte.fsm_main.state_name, robot.MAIN->state_name, sizeof(robot.orte.fsm_main.state_name));
ORTEPublicationSend(robot.orte.publication_fsm_main);
- } else if (fsm == &robot.fsm.motion) {
- strncpy(robot.orte.fsm_motion.state_name, fsm->state_name, sizeof(robot.orte.fsm_motion.state_name));
+ } else if (robot.MOTION == robot.sched.getActualHandle()) {
+ strncpy(robot.orte.fsm_motion.state_name, robot.MOTION->state_name, sizeof(robot.orte.fsm_motion.state_name));
ORTEPublicationSend(robot.orte.publication_fsm_motion);
- } else if (fsm == &robot.fsm.act) {
- strncpy(robot.orte.fsm_act.state_name, fsm->state_name, sizeof(robot.orte.fsm_act.state_name));
- ORTEPublicationSend(robot.orte.publication_fsm_act);
}
-*/
}
/**
ref_pos.y = y;
ref_pos.phi = phi;
}
+}
+
+void Robot::set_state_name(const char* name)
+{
+ sched.getActualHandle()->state_name = name;
+ trans_callback();
}
\ No newline at end of file