New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
Status/Status.cpp@0:c6a85bb2a827, 2015-03-04 (annotated)
- Committer:
- joe4465
- Date:
- Wed Mar 04 18:50:37 2015 +0000
- Revision:
- 0:c6a85bb2a827
- Child:
- 2:969dfa4f2436
New version of quadcopter software, written following OO principles
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
joe4465 | 0:c6a85bb2a827 | 1 | #include "Status.h" |
joe4465 | 0:c6a85bb2a827 | 2 | |
joe4465 | 0:c6a85bb2a827 | 3 | Status::Status(){} |
joe4465 | 0:c6a85bb2a827 | 4 | |
joe4465 | 0:c6a85bb2a827 | 5 | Status::~Status(){} |
joe4465 | 0:c6a85bb2a827 | 6 | |
joe4465 | 0:c6a85bb2a827 | 7 | bool Status::initialise() |
joe4465 | 0:c6a85bb2a827 | 8 | { |
joe4465 | 0:c6a85bb2a827 | 9 | setState(PREFLIGHT); |
joe4465 | 0:c6a85bb2a827 | 10 | } |
joe4465 | 0:c6a85bb2a827 | 11 | |
joe4465 | 0:c6a85bb2a827 | 12 | bool Status::setState(State state) |
joe4465 | 0:c6a85bb2a827 | 13 | { |
joe4465 | 0:c6a85bb2a827 | 14 | switch(state) |
joe4465 | 0:c6a85bb2a827 | 15 | { |
joe4465 | 0:c6a85bb2a827 | 16 | case PREFLIGHT: |
joe4465 | 0:c6a85bb2a827 | 17 | setFlightMode(NOT_SET); |
joe4465 | 0:c6a85bb2a827 | 18 | setBaseStationMode(STATUS); |
joe4465 | 0:c6a85bb2a827 | 19 | setBatteryLevel(0); |
joe4465 | 0:c6a85bb2a827 | 20 | setArmed(false); |
joe4465 | 0:c6a85bb2a827 | 21 | setInitialised(false); |
joe4465 | 0:c6a85bb2a827 | 22 | return true; |
joe4465 | 0:c6a85bb2a827 | 23 | |
joe4465 | 0:c6a85bb2a827 | 24 | case STANDBY: |
joe4465 | 0:c6a85bb2a827 | 25 | |
joe4465 | 0:c6a85bb2a827 | 26 | return true; |
joe4465 | 0:c6a85bb2a827 | 27 | |
joe4465 | 0:c6a85bb2a827 | 28 | |
joe4465 | 0:c6a85bb2a827 | 29 | case GROUND_READY: |
joe4465 | 0:c6a85bb2a827 | 30 | |
joe4465 | 0:c6a85bb2a827 | 31 | return true; |
joe4465 | 0:c6a85bb2a827 | 32 | |
joe4465 | 0:c6a85bb2a827 | 33 | |
joe4465 | 0:c6a85bb2a827 | 34 | case MANUAL: |
joe4465 | 0:c6a85bb2a827 | 35 | |
joe4465 | 0:c6a85bb2a827 | 36 | return true; |
joe4465 | 0:c6a85bb2a827 | 37 | |
joe4465 | 0:c6a85bb2a827 | 38 | |
joe4465 | 0:c6a85bb2a827 | 39 | case STABILISED: |
joe4465 | 0:c6a85bb2a827 | 40 | |
joe4465 | 0:c6a85bb2a827 | 41 | return true; |
joe4465 | 0:c6a85bb2a827 | 42 | |
joe4465 | 0:c6a85bb2a827 | 43 | |
joe4465 | 0:c6a85bb2a827 | 44 | case AUTO: |
joe4465 | 0:c6a85bb2a827 | 45 | |
joe4465 | 0:c6a85bb2a827 | 46 | return true; |
joe4465 | 0:c6a85bb2a827 | 47 | |
joe4465 | 0:c6a85bb2a827 | 48 | |
joe4465 | 0:c6a85bb2a827 | 49 | case ABORT: |
joe4465 | 0:c6a85bb2a827 | 50 | |
joe4465 | 0:c6a85bb2a827 | 51 | return true; |
joe4465 | 0:c6a85bb2a827 | 52 | |
joe4465 | 0:c6a85bb2a827 | 53 | |
joe4465 | 0:c6a85bb2a827 | 54 | case EMG_LAND: |
joe4465 | 0:c6a85bb2a827 | 55 | |
joe4465 | 0:c6a85bb2a827 | 56 | return true; |
joe4465 | 0:c6a85bb2a827 | 57 | |
joe4465 | 0:c6a85bb2a827 | 58 | |
joe4465 | 0:c6a85bb2a827 | 59 | case EMG_OFF: |
joe4465 | 0:c6a85bb2a827 | 60 | |
joe4465 | 0:c6a85bb2a827 | 61 | return true; |
joe4465 | 0:c6a85bb2a827 | 62 | |
joe4465 | 0:c6a85bb2a827 | 63 | |
joe4465 | 0:c6a85bb2a827 | 64 | case GROUND_ERROR: |
joe4465 | 0:c6a85bb2a827 | 65 | |
joe4465 | 0:c6a85bb2a827 | 66 | return true; |
joe4465 | 0:c6a85bb2a827 | 67 | |
joe4465 | 0:c6a85bb2a827 | 68 | |
joe4465 | 0:c6a85bb2a827 | 69 | default: |
joe4465 | 0:c6a85bb2a827 | 70 | |
joe4465 | 0:c6a85bb2a827 | 71 | return false; |
joe4465 | 0:c6a85bb2a827 | 72 | |
joe4465 | 0:c6a85bb2a827 | 73 | } |
joe4465 | 0:c6a85bb2a827 | 74 | } |
joe4465 | 0:c6a85bb2a827 | 75 | |
joe4465 | 0:c6a85bb2a827 | 76 | Status::State Status::getState() |
joe4465 | 0:c6a85bb2a827 | 77 | { |
joe4465 | 0:c6a85bb2a827 | 78 | return _state; |
joe4465 | 0:c6a85bb2a827 | 79 | } |
joe4465 | 0:c6a85bb2a827 | 80 | |
joe4465 | 0:c6a85bb2a827 | 81 | bool Status::setFlightMode(FlightMode flightMode) |
joe4465 | 0:c6a85bb2a827 | 82 | { |
joe4465 | 0:c6a85bb2a827 | 83 | _flightMode = flightMode; |
joe4465 | 0:c6a85bb2a827 | 84 | return true; |
joe4465 | 0:c6a85bb2a827 | 85 | } |
joe4465 | 0:c6a85bb2a827 | 86 | |
joe4465 | 0:c6a85bb2a827 | 87 | Status::FlightMode Status::getFlightMode() |
joe4465 | 0:c6a85bb2a827 | 88 | { |
joe4465 | 0:c6a85bb2a827 | 89 | return _flightMode; |
joe4465 | 0:c6a85bb2a827 | 90 | } |
joe4465 | 0:c6a85bb2a827 | 91 | |
joe4465 | 0:c6a85bb2a827 | 92 | bool Status::setBaseStationMode(BaseStationMode baseStationMode) |
joe4465 | 0:c6a85bb2a827 | 93 | { |
joe4465 | 0:c6a85bb2a827 | 94 | _baseStationMode = baseStationMode; |
joe4465 | 0:c6a85bb2a827 | 95 | return true; |
joe4465 | 0:c6a85bb2a827 | 96 | } |
joe4465 | 0:c6a85bb2a827 | 97 | |
joe4465 | 0:c6a85bb2a827 | 98 | Status::BaseStationMode Status::getBaseStationMode() |
joe4465 | 0:c6a85bb2a827 | 99 | { |
joe4465 | 0:c6a85bb2a827 | 100 | return _baseStationMode; |
joe4465 | 0:c6a85bb2a827 | 101 | } |
joe4465 | 0:c6a85bb2a827 | 102 | |
joe4465 | 0:c6a85bb2a827 | 103 | bool Status::setBatteryLevel(float batteryLevel) |
joe4465 | 0:c6a85bb2a827 | 104 | { |
joe4465 | 0:c6a85bb2a827 | 105 | _batteryLevel = batteryLevel; |
joe4465 | 0:c6a85bb2a827 | 106 | return true; |
joe4465 | 0:c6a85bb2a827 | 107 | } |
joe4465 | 0:c6a85bb2a827 | 108 | |
joe4465 | 0:c6a85bb2a827 | 109 | float Status::getBatteryLevel() |
joe4465 | 0:c6a85bb2a827 | 110 | { |
joe4465 | 0:c6a85bb2a827 | 111 | return _batteryLevel; |
joe4465 | 0:c6a85bb2a827 | 112 | } |
joe4465 | 0:c6a85bb2a827 | 113 | |
joe4465 | 0:c6a85bb2a827 | 114 | bool Status::setArmed(bool armed) |
joe4465 | 0:c6a85bb2a827 | 115 | { |
joe4465 | 0:c6a85bb2a827 | 116 | _armed = armed; |
joe4465 | 0:c6a85bb2a827 | 117 | return true; |
joe4465 | 0:c6a85bb2a827 | 118 | } |
joe4465 | 0:c6a85bb2a827 | 119 | |
joe4465 | 0:c6a85bb2a827 | 120 | bool Status::getArmed() |
joe4465 | 0:c6a85bb2a827 | 121 | { |
joe4465 | 0:c6a85bb2a827 | 122 | return _armed; |
joe4465 | 0:c6a85bb2a827 | 123 | } |
joe4465 | 0:c6a85bb2a827 | 124 | |
joe4465 | 0:c6a85bb2a827 | 125 | bool Status::setInitialised(bool initialised) |
joe4465 | 0:c6a85bb2a827 | 126 | { |
joe4465 | 0:c6a85bb2a827 | 127 | _initialised = initialised; |
joe4465 | 0:c6a85bb2a827 | 128 | return true; |
joe4465 | 0:c6a85bb2a827 | 129 | } |
joe4465 | 0:c6a85bb2a827 | 130 | |
joe4465 | 0:c6a85bb2a827 | 131 | bool Status::getInitialised() |
joe4465 | 0:c6a85bb2a827 | 132 | { |
joe4465 | 0:c6a85bb2a827 | 133 | return _initialised; |
joe4465 | 0:c6a85bb2a827 | 134 | } |
joe4465 | 0:c6a85bb2a827 | 135 | |
joe4465 | 0:c6a85bb2a827 | 136 | bool Status::setRcConnected(bool rcConnected) |
joe4465 | 0:c6a85bb2a827 | 137 | { |
joe4465 | 0:c6a85bb2a827 | 138 | _rcConnected = rcConnected; |
joe4465 | 0:c6a85bb2a827 | 139 | return true; |
joe4465 | 0:c6a85bb2a827 | 140 | } |
joe4465 | 0:c6a85bb2a827 | 141 | |
joe4465 | 0:c6a85bb2a827 | 142 | bool Status::getRcConnected() |
joe4465 | 0:c6a85bb2a827 | 143 | { |
joe4465 | 0:c6a85bb2a827 | 144 | return _rcConnected; |
joe4465 | 0:c6a85bb2a827 | 145 | } |