Dr. Davis and Dr. Dyer special studies robotics project
Dependencies: BSP_DISCO_F469NI LCD_DISCO_F469NI TS_DISCO_F469NI mbed Motordriver
Fork of Configurable_Robots by
Classes/RobotMVC/RobotController.cpp
- Committer:
- blu12758
- Date:
- 2017-05-09
- Revision:
- 10:4dd8b18e07d0
- Parent:
- 9:4ae116881502
- Child:
- 11:10a7bb4bc714
File content as of revision 10:4dd8b18e07d0:
//OU Configurable Robot Project //Spring 2017 //William Bonner #ifndef R_CONTROLLER #define R_CONTROLLER #include "RobotController.h" #endif //Constructors/Destructors RobotController::~RobotController() { //#TODO } RobotController::RobotController() { setView(new RobotView()); setModel(new RobotModel()); } //Handles choices made by the user on the robot interface //input: selection value void RobotController::userSelection(int s) { //no input if(s < 0) return; model->setMode(0); switch(view->getPage()) { default: if(s == 0) view->setPage(1); return; case 0: return; case 1://Main Menu switch(s) { case 0: view->setPage(2); model->setMode(2); return; case 1: view->setPage(3); model->setMode(3); return; case 2: view->setPage(4); model->setMode(4); return; case 3: view->setPage(5); model->setMode(5); return; case 4: view->setPage(6); model->setMode(6); return; } return; case 2://Line Follower case 3://Object Avoidance case 4://Light Avoidance case 5://TV Remote Control case 6://Wiimote Control if(s==0) view->setPage(1); return; } } //Go to main menu void RobotController::main() { model->setMode(0); view->setPage(1); } //Listens for inputs void RobotController::listen() { userSelection(view->listen()); } //Update robot state void RobotController::update() { int info = model->update(); char buffer[50]; switch(model->getMode()) { default: case 0: break; case 2://Line Follower sprintf (buffer, "%d", info); view->writeString(buffer, 15); break; case 3://Object Avoidance sprintf (buffer, "%d", info); view->writeString(buffer, 15); break; case 4://Light Avoidance sprintf (buffer, "%d", info); view->writeString(buffer, 15); break; case 5://TV Remote Control sprintf (buffer, "%d", info); view->writeString(buffer, 15); break; case 6://Wiimote Control sprintf (buffer, "%d", info); view->writeString(buffer, 15); break; } }