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 Dec 21 23:13:44 2017 +0000
Revision:
39:58375ca6b6ff
Parent:
34:9b66c5188051
Child:
40:ccdd34615533
Pool-tested code with Mbed logging and OpenLog (SD card)

Who changed what in which revision?

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