State.h
Go to the documentation of this file.
00001 /* -*- mode: C++ -*-
00002  *
00003  *  Commander finite state machine interface
00004  *
00005  *  Copyright (C) 2007, 2010, Austin Robot Technology
00006  *
00007  *  License: Modified BSD Software License Agreement
00008  *
00009  *  $Id: State.h 435 2010-08-20 15:24:22Z jack.oquin $
00010  */
00011 
00012 #ifndef __CMDR_STATE_H__
00013 #define __CMDR_STATE_H__
00014 
00015 class CmdrState
00016 {
00017 public:
00018   // Commander states
00019   typedef enum
00020     {
00021       Done,                             // mission completed
00022       Init,                             // initial state
00023       Road,                             // travelling on road
00024       N_states                          // total number of states
00025     } state_t;
00026 
00027   // return name of each state as a C string
00028   const char *Name(void)
00029   {
00030     static const char *state_name[N_states] =
00031       {
00032         "Done",
00033         "Init",
00034         "Road",
00035       };
00036     return state_name[state];
00037   }
00038 
00039   CmdrState()
00040   {
00041     this->state = Init;                 // initial state
00042   }
00043 
00044   CmdrState(state_t val)
00045   {
00046     this->state = val;
00047   }
00048 
00049   state_t Value(void)
00050   {
00051     return this->state;
00052   }
00053 
00054   void operator=(state_t newval)
00055   {
00056     this->state = newval;
00057   }
00058 
00059   bool operator==(CmdrState newval)
00060   {
00061     return this->state == newval.state;
00062   }
00063 
00064   bool operator==(state_t newval)
00065   {
00066     return this->state == newval;
00067   }
00068 
00069   bool operator!=(CmdrState newval)
00070   {
00071     return this->state != newval.state;
00072   }
00073 
00074   bool operator!=(state_t newval)
00075   {
00076     return this->state != newval;
00077   }
00078 
00079 private:
00080   state_t state;                        // current state
00081 };
00082 
00083 #endif // __CMDR_STATE_H__


art_nav
Author(s): Austin Robot Technology, Jack O'Quin
autogenerated on Fri Jan 3 2014 11:08:43