The subsystem design/basis for the final project

Dependencies:   mbed-rtos mbed-src pixylib

main.cpp

Committer:
balsamfir
Date:
2016-03-13
Revision:
2:2bc519e14bae
Parent:
1:cc5636894b95
Child:
3:dfb6733ae397

File content as of revision 2:2bc519e14bae:

// Includes
// ----------------------------------------------------------------

#include "global.h"
#include "robot.h"
#include "response.h"
#include "tuning.h"


// Definitions
// ----------------------------------------------------------------
enum Mode {
    AUTO_TRACK, 
    MANUAL_CONTROL, 
    PIXY_SUBSYSTEM, 
    MOTOR_RESPONSE,
    SPEED_RESPONSE,
    STEERING_RESPONSE,
    TILT_RESPONSE,
    MOTOR_TUNING,
    SPEED_TUNING,
    STEERING_TUNING,
    TILT_TUNING
};

void PrintMenu(Serial *pc);


// Wiring - TODO
// ----------------------------------------------------------------
//
//
//
//
//
//

// Main Program
// ----------------------------------------------------------------
int main() {  
    char mode;
    while (1) {
        PrintMenu(&pc);
        mode = pc.getc();
        switch (mode) {
            case AUTO_TRACK: 
                AutoTrack();
                break;
            case MANUAL_CONTROL: 
                ManualControl();
                break;
            case PIXY_SUBSYSTEM: 
                PixySubsystem();
                break;
            case MOTOR_RESPONSE: 
                MotorResponse();
                break;
            case SPEED_RESPONSE: 
                SpeedResponse();
                break;
            case STEERING_RESPONSE: 
                SteeringResponse();
                break;
            case TILT_RESPONSE: 
                TiltResponse();
                break;
            case MOTOR_TUNING: 
                MotorTuning();
                break;
            case SPEED_TUNING: 
                SpeedTuning();
                break;
            case STEERING_TUNING: 
                SteeringTuning();
                break;
            case TILT_TUNING: 
                TiltTuning();
                break;
            default:
                pc.printf("\r\n\r\n Error: Invalid Selection \r\n\r\n");
                wait_ms(2000);
                break;
        }
        PrintMenu(&pc);
    }
}

// Other Functions
// ----------------------------------------------------------------
void PrintMenu(Serial *pc){
    pc->printf("---------------------------------------------------------------- \r\n");
    pc->printf("0. Automated Tracking \r\n");
    pc->printf("1. Manual Control \r\n");
    pc->printf("2. Pixy Subsystem \r\n");
    pc->printf("3. Motor Response \r\n");
    pc->printf("4. Speed Response \r\n");
    pc->printf("5. Steering Response \r\n");
    pc->printf("6. Tilt Response \r\n");
    pc->printf("7. Tune Motor \r\n");
    pc->printf("8. Tune Speed \r\n");
    pc->printf("9. Tune Steering \r\n");
    pc->printf("a. Tune Tilt \r\n");
    pc->printf("---------------------------------------------------------------- \r\n\r\n");
    
    pc->printf("=> ");
}