most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

Committer:
tnhnrl
Date:
Thu Feb 15 23:07:25 2018 +0000
Revision:
49:47ffa4feb6db
Parent:
45:16b8162188ca
Child:
51:c5c40272ecc3
Working pool-tested code. Rudder disabled (some weird coupling issue).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tnhnrl 45:16b8162188ca 1 #include "StaticDefs.hpp"
tnhnrl 45:16b8162188ca 2
tnhnrl 45:16b8162188ca 3 //Declare static global variables using 'construct on use' idiom to ensure they
tnhnrl 45:16b8162188ca 4 // are always constructed correctly and avoid "static initialization order fiasco".
tnhnrl 45:16b8162188ca 5
tnhnrl 45:16b8162188ca 6 Timer & systemTime() {
tnhnrl 45:16b8162188ca 7 static Timer s;
tnhnrl 45:16b8162188ca 8 return s;
tnhnrl 45:16b8162188ca 9 }
tnhnrl 45:16b8162188ca 10
tnhnrl 45:16b8162188ca 11 Ticker & pulse() {
tnhnrl 45:16b8162188ca 12 static Ticker pulse;
tnhnrl 45:16b8162188ca 13 return pulse;
tnhnrl 45:16b8162188ca 14 }
tnhnrl 45:16b8162188ca 15
tnhnrl 45:16b8162188ca 16 MODSERIAL & pc() {
tnhnrl 49:47ffa4feb6db 17 //static MODSERIAL pc(USBTX, USBRX);
tnhnrl 49:47ffa4feb6db 18 static MODSERIAL pc(p9, p10); //XBee tx, rx pins
tnhnrl 45:16b8162188ca 19 return pc;
tnhnrl 45:16b8162188ca 20 }
tnhnrl 45:16b8162188ca 21
tnhnrl 45:16b8162188ca 22 //MODSERIAL & xb() {
tnhnrl 45:16b8162188ca 23 // static MODSERIAL xb(p9, p10); //XBee tx, rx pins
tnhnrl 45:16b8162188ca 24 // return xb;
tnhnrl 45:16b8162188ca 25 //}
tnhnrl 45:16b8162188ca 26
tnhnrl 45:16b8162188ca 27
tnhnrl 45:16b8162188ca 28 //FIX THIS TO USE SPI data logger...
tnhnrl 45:16b8162188ca 29
tnhnrl 45:16b8162188ca 30 MODSERIAL & datalogger() {
tnhnrl 45:16b8162188ca 31 static MODSERIAL datalogger(p28, p27); //Data Logger tx, rx pins
tnhnrl 45:16b8162188ca 32 return datalogger;
tnhnrl 45:16b8162188ca 33 }
tnhnrl 45:16b8162188ca 34
tnhnrl 45:16b8162188ca 35 LocalFileSystem & local() {
tnhnrl 45:16b8162188ca 36 static LocalFileSystem local("local");
tnhnrl 45:16b8162188ca 37 return local;
tnhnrl 45:16b8162188ca 38 }
tnhnrl 45:16b8162188ca 39
tnhnrl 45:16b8162188ca 40 SDFileSystem & sd_card() {
tnhnrl 45:16b8162188ca 41 static SDFileSystem sd_card(p11, p12, p13, p14, "sd"); //SDFileSystem sd_card(MOSI, MISO, SCK, CS, "sd");
tnhnrl 45:16b8162188ca 42 return sd_card;
tnhnrl 45:16b8162188ca 43 }
tnhnrl 45:16b8162188ca 44
tnhnrl 45:16b8162188ca 45 SpiADC & adc() {
tnhnrl 45:16b8162188ca 46 static SpiADC adc(p5,p6,p7,p8,LED2);
tnhnrl 45:16b8162188ca 47 return adc;
tnhnrl 45:16b8162188ca 48 }
tnhnrl 45:16b8162188ca 49
tnhnrl 45:16b8162188ca 50 LinearActuator & bce() {
tnhnrl 45:16b8162188ca 51 static LinearActuator bce(0.01, p25, p29, p30, p18, 0); //interval , pwm, dir, reset, limit switch, adc channel
tnhnrl 45:16b8162188ca 52 return bce;
tnhnrl 45:16b8162188ca 53 }
tnhnrl 45:16b8162188ca 54
tnhnrl 45:16b8162188ca 55 LinearActuator & batt() {
tnhnrl 45:16b8162188ca 56 static LinearActuator batt(0.01, p23, p21, p22, p17, 1); //interval , pwm, dir, reset, limit switchm, adc channel
tnhnrl 45:16b8162188ca 57 return batt;
tnhnrl 45:16b8162188ca 58 }
tnhnrl 45:16b8162188ca 59
tnhnrl 45:16b8162188ca 60 ServoDriver & servo() {
tnhnrl 45:16b8162188ca 61 static ServoDriver servo(p24);
tnhnrl 45:16b8162188ca 62 return servo;
tnhnrl 45:16b8162188ca 63 }
tnhnrl 45:16b8162188ca 64
tnhnrl 45:16b8162188ca 65
tnhnrl 45:16b8162188ca 66 omegaPX209 & depth() {
tnhnrl 45:16b8162188ca 67 static omegaPX209 depth(p19); // pin
tnhnrl 45:16b8162188ca 68 return depth;
tnhnrl 45:16b8162188ca 69 }
tnhnrl 45:16b8162188ca 70
tnhnrl 45:16b8162188ca 71 IMU & imu() {
tnhnrl 45:16b8162188ca 72 static IMU imu(p28, p27); // tx, rx pin
tnhnrl 45:16b8162188ca 73 return imu;
tnhnrl 45:16b8162188ca 74 }
tnhnrl 45:16b8162188ca 75
tnhnrl 45:16b8162188ca 76 OuterLoop & depthLoop() {
tnhnrl 45:16b8162188ca 77 static OuterLoop depthLoop(0.1, 0); // interval, sensor type
tnhnrl 45:16b8162188ca 78 return depthLoop;
tnhnrl 45:16b8162188ca 79 }
tnhnrl 45:16b8162188ca 80
tnhnrl 45:16b8162188ca 81 OuterLoop & pitchLoop() {
tnhnrl 45:16b8162188ca 82 static OuterLoop pitchLoop(0.1, 1); // interval, sensor type
tnhnrl 45:16b8162188ca 83 return pitchLoop;
tnhnrl 45:16b8162188ca 84 }
tnhnrl 45:16b8162188ca 85
tnhnrl 45:16b8162188ca 86 OuterLoop & rudderLoop() {
tnhnrl 45:16b8162188ca 87 static OuterLoop rudderLoop(0.1, 2); // interval, sensor type
tnhnrl 45:16b8162188ca 88 return rudderLoop;
tnhnrl 45:16b8162188ca 89 }
tnhnrl 45:16b8162188ca 90
tnhnrl 45:16b8162188ca 91 StateMachine & stateMachine() {
tnhnrl 45:16b8162188ca 92 static StateMachine stateMachine;
tnhnrl 45:16b8162188ca 93 return stateMachine;
tnhnrl 45:16b8162188ca 94 }
tnhnrl 45:16b8162188ca 95
tnhnrl 45:16b8162188ca 96 ConfigFileIO & configFileIO() {
tnhnrl 45:16b8162188ca 97 static ConfigFileIO configFileIO;
tnhnrl 45:16b8162188ca 98 return configFileIO;
tnhnrl 45:16b8162188ca 99 }
tnhnrl 45:16b8162188ca 100
tnhnrl 45:16b8162188ca 101 SequenceController & sequenceController() {
tnhnrl 45:16b8162188ca 102 static SequenceController sequenceController;
tnhnrl 45:16b8162188ca 103 return sequenceController;
tnhnrl 45:16b8162188ca 104 }
tnhnrl 45:16b8162188ca 105
tnhnrl 45:16b8162188ca 106 MbedLogger & mbedLogger() {
tnhnrl 45:16b8162188ca 107 static MbedLogger mbedLogger("/local/"); //local file system
tnhnrl 45:16b8162188ca 108 return mbedLogger;
tnhnrl 45:16b8162188ca 109 }
tnhnrl 45:16b8162188ca 110
tnhnrl 45:16b8162188ca 111 MbedLogger & sdLogger() {
tnhnrl 45:16b8162188ca 112 static MbedLogger sdLogger("/sd/");
tnhnrl 45:16b8162188ca 113 return sdLogger;
tnhnrl 45:16b8162188ca 114 }
tnhnrl 45:16b8162188ca 115
tnhnrl 45:16b8162188ca 116 DigitalOut & led1() {
tnhnrl 45:16b8162188ca 117 static DigitalOut led1(LED1);
tnhnrl 45:16b8162188ca 118 return led1;
tnhnrl 45:16b8162188ca 119 }
tnhnrl 45:16b8162188ca 120
tnhnrl 45:16b8162188ca 121 DigitalOut & led2() {
tnhnrl 45:16b8162188ca 122 static DigitalOut led2(LED2);
tnhnrl 45:16b8162188ca 123 return led2;
tnhnrl 45:16b8162188ca 124 }
tnhnrl 45:16b8162188ca 125
tnhnrl 45:16b8162188ca 126 DigitalOut & led3() {
tnhnrl 45:16b8162188ca 127 static DigitalOut led3(LED3);
tnhnrl 45:16b8162188ca 128 return led3;
tnhnrl 45:16b8162188ca 129 }
tnhnrl 45:16b8162188ca 130
tnhnrl 45:16b8162188ca 131 DigitalOut & led4() {
tnhnrl 45:16b8162188ca 132 static DigitalOut led4(LED4);
tnhnrl 45:16b8162188ca 133 return led4;
tnhnrl 45:16b8162188ca 134 }