Tekkotsu Homepage | Demos | Overview | Downloads | Dev. Resources | Reference | Credits |
Controller Class ReferenceHandles the menu/command system... when it detects the EmergencyStopMC is activated, it'll kick into high priority. More...
Inheritance diagram for Controller:
Detailed DescriptionHandles the menu/command system... when it detects the EmergencyStopMC is activated, it'll kick into high priority. Keeps track of a command stack. A Control can designate another sub-control, which will receive events until it finishes The GUI uses the same commands as the user (makes it much easier to have only one parser). The commands are:
In return, to send the menus to the GUI, the following messages are sent: (newlines are required where shown)
bool types are expected to be numerical values, 0 for false, non-zero for true.
The upstream is the responsibility of the individual Controls, but the protocol is listed here to keep it together. When a control's state changes, it's that control's responsiblity to refresh the UI (LEDs, console, and GUI as appropriate). Thus, future extensions to the upstream protocol are between the control which will use it and the GUI. Future extensions to the downstream protocol would involve changing Controller and the GUI. The Controller may connect to serr in the future to pop-up an alert anytime output to serr occurs. Note that all state is maintained on the robot - even if the GUI is connected, you can still use the buttons to interact with the controller, and the GUI will update to reflect the changes. In HCI (Human Computer Interaction) parlance, this is the MVC, Model-View-Controller architecture, almost by necessity. (HCI happens to be my double major when I was an undergrad ;) Also, the Controller is responsible for sending out TextMsgEvents from user input it receives - either a !msg command from the console or GUI, or any text at all which is received on the console if there is already a GUI connected. These TextMsgEvents are always status events, and the duration field is always 0. Definition at line 105 of file Controller.h.
Constructor & Destructor Documentation
Constructor. Definition at line 107 of file Controller.h.
Constructor, sets a default root control. Definition at line 108 of file Controller.h.
Destructor. Definition at line 109 of file Controller.h.
shouldn't be called... Member Function Documentation
called when the estop switches on causes the top control to activate, registers for button events Definition at line 583 of file Controller.cc. Referenced by doEvent(), and setEStopID().
returns true when the current time and last time are in different periods Definition at line 204 of file Controller.h. Referenced by trapEvent().
returns true if a valid control is available on the stack if the stack is empty, will push root if it's non-null Definition at line 608 of file Controller.cc. Referenced by activate(), push(), refresh(), takeLine(), and trapEvent().
calls close() on a Java object loaded with loadGUI() (on the desktop) Definition at line 230 of file Controller.cc. Referenced by SegCam::closeServer(), RegionCam::closeServer(), RawCam::closeServer(), DepthCam::closeServer(), WorldStateSerializerBehavior::doStop(), HeadController::doStop(), ArmController::doStop(), and Aibo3DControllerBehavior::doStop().
called by wireless when someone has entered new data on the tekkotsu console (NOT cin) Definition at line 269 of file Controller.cc.
called when the estop switches off causes the top control to deactivate, stops listening for buttons Definition at line 596 of file Controller.cc. Referenced by doEvent(), and setEStopID().
just for e-stop activation/deactivation Reimplemented from BehaviorBase. Definition at line 85 of file Controller.cc.
register for events and resets the cmdstack Reimplemented from BehaviorBase. Definition at line 40 of file Controller.cc.
stop listening for events and resets the cmdstack Reimplemented from BehaviorBase. Definition at line 63 of file Controller.cc.
sends stack of currently active controls Definition at line 539 of file Controller.cc. Referenced by takeLine().
Gives a short description of what this class of behaviors does... you should override this (but don't have to). If you do override this, also consider overriding getDescription() to return it Reimplemented from BehaviorBase. Definition at line 143 of file Controller.h. Referenced by getDescription().
Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis). By default simply returns getName(), because any calls from a BehaviorBase function to getClassDescription() are going to call BehaviorBase::getClassDescription(), not ~YourSubClass~getClassDescription(), because static functions can't be virtual in C++ (doh!) This means that getDescription called on a pointer to a BehaviorBase of unknown subtype would always return an empty string, which is pretty useless. So instead we return the name in this situation. If you want getDescription to return getClassDescription, you'll have to override it in your subclass to do so. Reimplemented from BehaviorBase. Definition at line 144 of file Controller.h.
called by wireless when there's new data from the GUI Definition at line 238 of file Controller.cc. Referenced by doStart().
calls initButtons with the appropriate button offsets for the host robot model Select which model is running and call initButtons with the appropriate button offsets This could be somewhat simplified by using capabilities.getButtonOffset(), (wouldn't need the ERS2xx case with essentially duplicated ERS210 and ERS220 cases), but this style has the advantage that the symbols are checked by the compiler so there's no chance of a typo in a button name going unnoticed. Definition at line 316 of file Controller.cc. Referenced by Controller().
assigns appropriate values to the static event bases Definition at line 357 of file Controller.cc. Referenced by init().
attempts to open a Java object on the desktop Definition at line 212 of file Controller.cc.
attempts to open a Java object on the desktop Definition at line 147 of file Controller.h. Referenced by WorldStateSerializerBehavior::doStart(), HeadController::doStart(), ArmController::doStart(), Aibo3DControllerBehavior::doStart(), WalkCalibration::err(), loadGUI(), SegCam::setupServer(), RegionCam::setupServer(), RawCam::setupServer(), and DepthCam::setupServer().
shouldn't be called...
kills the top control, goes to previous Definition at line 186 of file Controller.cc.
puts a new control on top Definition at line 177 of file Controller.cc. Referenced by chkCmdStack(), and setNext().
refreshes the display, for times like sub-control dying, the previous control needs to reset it's display Definition at line 159 of file Controller.cc. Referenced by pop(), reset(), setRoot(), and takeLine().
refresh camera sketches Definition at line 173 of file Controller.cc.
refresh local sketches Definition at line 169 of file Controller.cc.
refresh world sketches Definition at line 165 of file Controller.cc.
will take the command stack back down to the root Definition at line 149 of file Controller.cc. Referenced by doStart(), doStop(), setRoot(), and takeLine().
called with slots (options), a name to lookup; will select the named control Definition at line 368 of file Controller.cc. Referenced by takeLine().
sets a config value - some values may require additional processing (done here) to have the new values take effect Definition at line 554 of file Controller.cc. Referenced by takeLine().
Sets the emergency stop MC to monitor for pausing. Definition at line 200 of file Controller.cc.
maintains top Control
Definition at line 575 of file Controller.cc. Referenced by push(), select(), takeLine(), and trapEvent().
sets the root level control Definition at line 193 of file Controller.cc.
called with each line that's entered on the tekkotsu console or from the GUI Definition at line 390 of file Controller.cc. Referenced by console_callback(), and gui_comm_callback().
returns the current control Definition at line 137 of file Controller.h.
passes an event to the top control Implements EventTrapper. Definition at line 95 of file Controller.cc. Member Data Documentation
if doReadStdIn() was already called, but the buttons are both still down Definition at line 219 of file Controller.h. Referenced by trapEvent().
event masks used by processEvent() Definition at line 121 of file Controller.h. Referenced by initButtons(), and trapEvent().
the stack of the current control hierarchy Definition at line 201 of file Controller.h. Referenced by activate(), chkCmdStack(), deactivate(), dumpStack(), pop(), push(), refresh(), reset(), setNext(), takeLine(), top(), and trapEvent().
the time of the current event (do*() can check this instead of calling get_time() ) Definition at line 214 of file Controller.h. Referenced by trapEvent().
invalid_MC_ID if not active, otherwise id of high priority LEDs Definition at line 191 of file Controller.h. Referenced by activate(), chkCmdStack(), deactivate(), doStart(), doStop(), and push().
the EmergencyStopMC MC_ID that this Controller is monitoring Definition at line 194 of file Controller.h. Referenced by setEStopID().
the socket to listen on for the gui Definition at line 223 of file Controller.h. Referenced by activate(), chkCmdStack(), closeGUI(), console_callback(), doStart(), doStop(), dumpStack(), loadGUI(), pop(), push(), refreshSketchCamera(), refreshSketchLocal(), refreshSketchWorld(), and takeLine().
true if the Controller is currently active (in the activate()/deactivate() sense, not doStart()/doStop() sense - use isActive() for that...) Definition at line 220 of file Controller.h. Referenced by activate(), deactivate(), doEvent(), doStart(), setEStopID(), and takeLine().
the duration of the last next event (nextItem) Definition at line 216 of file Controller.h. Referenced by trapEvent().
the magnitude of the last next event (nextItem) Definition at line 215 of file Controller.h. Referenced by trapEvent().
event masks used by processEvent() Definition at line 116 of file Controller.h. Referenced by initButtons(), ValueEditControl< T >::pause(), ValueEditControl< T >::processEvent(), and trapEvent().
event masks used by processEvent() Definition at line 118 of file Controller.h. Referenced by initButtons(), and trapEvent().
the duration of the last prev event (prevItem) Definition at line 218 of file Controller.h. Referenced by trapEvent().
the magnitude of the last prev event (prevItem) Definition at line 217 of file Controller.h. Referenced by trapEvent().
event masks used by processEvent() Definition at line 117 of file Controller.h. Referenced by initButtons(), ValueEditControl< T >::pause(), ValueEditControl< T >::processEvent(), and trapEvent().
event masks used by processEvent() Definition at line 119 of file Controller.h. Referenced by initButtons(), and trapEvent().
the base control, if cmdstack underflows, it will be reset to this Definition at line 197 of file Controller.h. Referenced by chkCmdStack(), setRoot(), takeLine(), and ~Controller().
event masks used by processEvent() Definition at line 120 of file Controller.h. Referenced by initButtons(), and trapEvent().
currently can't pull connection socket off of server socket, so only one Controller Definition at line 225 of file Controller.h. Referenced by closeGUI(), console_callback(), doStart(), doStop(), dumpStack(), gui_comm_callback(), loadGUI(), pop(), push(), refreshSketchCamera(), refreshSketchLocal(), refreshSketchWorld(), takeLine(), and ~Controller().
true if ControllerGUI knows how to use the buttons for menu navigation, will intercept button presses Definition at line 221 of file Controller.h. Referenced by activate(), init(), initButtons(), and takeLine(). The documentation for this class was generated from the following files: |
Tekkotsu v5.1CVS |
Generated Mon May 9 04:59:06 2016 by Doxygen 1.6.3 |