The subsystem design/basis for the final project

Dependencies:   mbed-rtos mbed-src pixylib

Committer:
balsamfir
Date:
Sun Mar 13 17:55:42 2016 +0000
Revision:
2:2bc519e14bae
Parent:
1:cc5636894b95
Child:
3:dfb6733ae397
First compile of big ass change

Who changed what in which revision?

UserRevisionLine numberNew contents of line
balsamfir 2:2bc519e14bae 1 // Includes
balsamfir 2:2bc519e14bae 2 // ----------------------------------------------------------------
JamesMacLean 0:80a37292f6b2 3
balsamfir 2:2bc519e14bae 4 #include "global.h"
balsamfir 2:2bc519e14bae 5 #include "robot.h"
balsamfir 2:2bc519e14bae 6 #include "response.h"
balsamfir 2:2bc519e14bae 7 #include "tuning.h"
JamesMacLean 0:80a37292f6b2 8
JamesMacLean 0:80a37292f6b2 9
balsamfir 2:2bc519e14bae 10 // Definitions
balsamfir 2:2bc519e14bae 11 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 12 enum Mode {
balsamfir 2:2bc519e14bae 13 AUTO_TRACK,
balsamfir 2:2bc519e14bae 14 MANUAL_CONTROL,
balsamfir 2:2bc519e14bae 15 PIXY_SUBSYSTEM,
balsamfir 2:2bc519e14bae 16 MOTOR_RESPONSE,
balsamfir 2:2bc519e14bae 17 SPEED_RESPONSE,
balsamfir 2:2bc519e14bae 18 STEERING_RESPONSE,
balsamfir 2:2bc519e14bae 19 TILT_RESPONSE,
balsamfir 2:2bc519e14bae 20 MOTOR_TUNING,
balsamfir 2:2bc519e14bae 21 SPEED_TUNING,
balsamfir 2:2bc519e14bae 22 STEERING_TUNING,
balsamfir 2:2bc519e14bae 23 TILT_TUNING
balsamfir 2:2bc519e14bae 24 };
JamesMacLean 0:80a37292f6b2 25
balsamfir 2:2bc519e14bae 26 void PrintMenu(Serial *pc);
JamesMacLean 0:80a37292f6b2 27
JamesMacLean 0:80a37292f6b2 28
balsamfir 2:2bc519e14bae 29 // Wiring - TODO
balsamfir 2:2bc519e14bae 30 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 31 //
balsamfir 2:2bc519e14bae 32 //
balsamfir 2:2bc519e14bae 33 //
balsamfir 2:2bc519e14bae 34 //
balsamfir 2:2bc519e14bae 35 //
balsamfir 2:2bc519e14bae 36 //
JamesMacLean 0:80a37292f6b2 37
balsamfir 2:2bc519e14bae 38 // Main Program
balsamfir 2:2bc519e14bae 39 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 40 int main() {
balsamfir 2:2bc519e14bae 41 char mode;
JamesMacLean 0:80a37292f6b2 42 while (1) {
balsamfir 2:2bc519e14bae 43 PrintMenu(&pc);
balsamfir 2:2bc519e14bae 44 mode = pc.getc();
balsamfir 2:2bc519e14bae 45 switch (mode) {
balsamfir 2:2bc519e14bae 46 case AUTO_TRACK:
balsamfir 2:2bc519e14bae 47 AutoTrack();
balsamfir 2:2bc519e14bae 48 break;
balsamfir 2:2bc519e14bae 49 case MANUAL_CONTROL:
balsamfir 2:2bc519e14bae 50 ManualControl();
balsamfir 2:2bc519e14bae 51 break;
balsamfir 2:2bc519e14bae 52 case PIXY_SUBSYSTEM:
balsamfir 2:2bc519e14bae 53 PixySubsystem();
balsamfir 2:2bc519e14bae 54 break;
balsamfir 2:2bc519e14bae 55 case MOTOR_RESPONSE:
balsamfir 2:2bc519e14bae 56 MotorResponse();
balsamfir 2:2bc519e14bae 57 break;
balsamfir 2:2bc519e14bae 58 case SPEED_RESPONSE:
balsamfir 2:2bc519e14bae 59 SpeedResponse();
balsamfir 2:2bc519e14bae 60 break;
balsamfir 2:2bc519e14bae 61 case STEERING_RESPONSE:
balsamfir 2:2bc519e14bae 62 SteeringResponse();
balsamfir 2:2bc519e14bae 63 break;
balsamfir 2:2bc519e14bae 64 case TILT_RESPONSE:
balsamfir 2:2bc519e14bae 65 TiltResponse();
balsamfir 2:2bc519e14bae 66 break;
balsamfir 2:2bc519e14bae 67 case MOTOR_TUNING:
balsamfir 2:2bc519e14bae 68 MotorTuning();
balsamfir 2:2bc519e14bae 69 break;
balsamfir 2:2bc519e14bae 70 case SPEED_TUNING:
balsamfir 2:2bc519e14bae 71 SpeedTuning();
balsamfir 2:2bc519e14bae 72 break;
balsamfir 2:2bc519e14bae 73 case STEERING_TUNING:
balsamfir 2:2bc519e14bae 74 SteeringTuning();
balsamfir 2:2bc519e14bae 75 break;
balsamfir 2:2bc519e14bae 76 case TILT_TUNING:
balsamfir 2:2bc519e14bae 77 TiltTuning();
balsamfir 2:2bc519e14bae 78 break;
balsamfir 2:2bc519e14bae 79 default:
balsamfir 2:2bc519e14bae 80 pc.printf("\r\n\r\n Error: Invalid Selection \r\n\r\n");
balsamfir 2:2bc519e14bae 81 wait_ms(2000);
balsamfir 2:2bc519e14bae 82 break;
JamesMacLean 0:80a37292f6b2 83 }
balsamfir 2:2bc519e14bae 84 PrintMenu(&pc);
JamesMacLean 0:80a37292f6b2 85 }
JamesMacLean 0:80a37292f6b2 86 }
JamesMacLean 0:80a37292f6b2 87
balsamfir 2:2bc519e14bae 88 // Other Functions
balsamfir 2:2bc519e14bae 89 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 90 void PrintMenu(Serial *pc){
balsamfir 2:2bc519e14bae 91 pc->printf("---------------------------------------------------------------- \r\n");
balsamfir 2:2bc519e14bae 92 pc->printf("0. Automated Tracking \r\n");
balsamfir 2:2bc519e14bae 93 pc->printf("1. Manual Control \r\n");
balsamfir 2:2bc519e14bae 94 pc->printf("2. Pixy Subsystem \r\n");
balsamfir 2:2bc519e14bae 95 pc->printf("3. Motor Response \r\n");
balsamfir 2:2bc519e14bae 96 pc->printf("4. Speed Response \r\n");
balsamfir 2:2bc519e14bae 97 pc->printf("5. Steering Response \r\n");
balsamfir 2:2bc519e14bae 98 pc->printf("6. Tilt Response \r\n");
balsamfir 2:2bc519e14bae 99 pc->printf("7. Tune Motor \r\n");
balsamfir 2:2bc519e14bae 100 pc->printf("8. Tune Speed \r\n");
balsamfir 2:2bc519e14bae 101 pc->printf("9. Tune Steering \r\n");
balsamfir 2:2bc519e14bae 102 pc->printf("a. Tune Tilt \r\n");
balsamfir 2:2bc519e14bae 103 pc->printf("---------------------------------------------------------------- \r\n\r\n");
JamesMacLean 0:80a37292f6b2 104
balsamfir 2:2bc519e14bae 105 pc->printf("=> ");
JamesMacLean 0:80a37292f6b2 106 }