Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: APA102
BNP_Ctrl.cpp@0:5648c217e527, 2018-05-14 (annotated)
- Committer:
- vrou44
- Date:
- Mon May 14 12:33:43 2018 +0000
- Revision:
- 0:5648c217e527
Initial version
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| vrou44 | 0:5648c217e527 | 1 | /* |
| vrou44 | 0:5648c217e527 | 2 | * BNP_Ctrl.cpp |
| vrou44 | 0:5648c217e527 | 3 | * |
| vrou44 | 0:5648c217e527 | 4 | * Created on: 23 mars 2018 |
| vrou44 | 0:5648c217e527 | 5 | * Author: hd01073 |
| vrou44 | 0:5648c217e527 | 6 | */ |
| vrou44 | 0:5648c217e527 | 7 | |
| vrou44 | 0:5648c217e527 | 8 | #include <stdio.h> |
| vrou44 | 0:5648c217e527 | 9 | #include "mbed.h" |
| vrou44 | 0:5648c217e527 | 10 | #include "mbed_events.h" |
| vrou44 | 0:5648c217e527 | 11 | #include "BNP_Ctrl.h" |
| vrou44 | 0:5648c217e527 | 12 | #include "MotorCtrl.h" |
| vrou44 | 0:5648c217e527 | 13 | #include "LedCtrl.h" |
| vrou44 | 0:5648c217e527 | 14 | #include "BltLink.h" |
| vrou44 | 0:5648c217e527 | 15 | #include "Audio.h" |
| vrou44 | 0:5648c217e527 | 16 | |
| vrou44 | 0:5648c217e527 | 17 | // 0.33 ==> 1000 Watt @220V |
| vrou44 | 0:5648c217e527 | 18 | #define POWER_IN_WATT_AT_220V 5.0 // adjusted to my air fan !! |
| vrou44 | 0:5648c217e527 | 19 | #define HALL_TRESHOLD ((0.33/1000.0) * POWER_IN_WATT_AT_220V) |
| vrou44 | 0:5648c217e527 | 20 | |
| vrou44 | 0:5648c217e527 | 21 | #define RELAY_PLUG_E_PIN_ID PG_4 |
| vrou44 | 0:5648c217e527 | 22 | #define RELAY_PLUG_C_PIN_ID PG_5 |
| vrou44 | 0:5648c217e527 | 23 | #define RELAY_CLOSING_PIN_VALUE 0 |
| vrou44 | 0:5648c217e527 | 24 | #define RELAY_OPENING_PIN_VALUE 1 |
| vrou44 | 0:5648c217e527 | 25 | |
| vrou44 | 0:5648c217e527 | 26 | |
| vrou44 | 0:5648c217e527 | 27 | DigitalOut *plugE_P = 0 ; // ne fonctionne pas au 31/03/18 ==> on utilise plugC |
| vrou44 | 0:5648c217e527 | 28 | DigitalOut *plugC_P = 0 ; |
| vrou44 | 0:5648c217e527 | 29 | AnalogIn *hallSensorP = 0 ; |
| vrou44 | 0:5648c217e527 | 30 | |
| vrou44 | 0:5648c217e527 | 31 | |
| vrou44 | 0:5648c217e527 | 32 | BNP_Ctrl *BNP_Ctrl::singleInstP = 0 ; |
| vrou44 | 0:5648c217e527 | 33 | |
| vrou44 | 0:5648c217e527 | 34 | |
| vrou44 | 0:5648c217e527 | 35 | void BNP_Ctrl::signalEvent(Evt evt) |
| vrou44 | 0:5648c217e527 | 36 | { |
| vrou44 | 0:5648c217e527 | 37 | mainQueueP->call(instanceFeedFsm, evt) ; |
| vrou44 | 0:5648c217e527 | 38 | } |
| vrou44 | 0:5648c217e527 | 39 | |
| vrou44 | 0:5648c217e527 | 40 | void BNP_Ctrl::init(void) |
| vrou44 | 0:5648c217e527 | 41 | { |
| vrou44 | 0:5648c217e527 | 42 | if (!plugE_P) { |
| vrou44 | 0:5648c217e527 | 43 | plugE_P = new DigitalOut (RELAY_PLUG_E_PIN_ID) ; // relai ok au 31/03/18 |
| vrou44 | 0:5648c217e527 | 44 | } |
| vrou44 | 0:5648c217e527 | 45 | if (!plugC_P) { |
| vrou44 | 0:5648c217e527 | 46 | plugC_P = new DigitalOut (RELAY_PLUG_C_PIN_ID) ; // relai ok au 31/03/18 |
| vrou44 | 0:5648c217e527 | 47 | } |
| vrou44 | 0:5648c217e527 | 48 | if (!hallSensorP) { |
| vrou44 | 0:5648c217e527 | 49 | hallSensorP = new AnalogIn (PB_1) ; |
| vrou44 | 0:5648c217e527 | 50 | } |
| vrou44 | 0:5648c217e527 | 51 | |
| vrou44 | 0:5648c217e527 | 52 | *plugE_P = RELAY_OPENING_PIN_VALUE ; // attention : logique negative. 1 ==> relais ouvert |
| vrou44 | 0:5648c217e527 | 53 | *plugC_P = RELAY_OPENING_PIN_VALUE ; |
| vrou44 | 0:5648c217e527 | 54 | state = initInProgress ; |
| vrou44 | 0:5648c217e527 | 55 | } |
| vrou44 | 0:5648c217e527 | 56 | |
| vrou44 | 0:5648c217e527 | 57 | void BNP_Ctrl::plugConnectDetect(void) |
| vrou44 | 0:5648c217e527 | 58 | { |
| vrou44 | 0:5648c217e527 | 59 | float voltageHallSensor = *hallSensorP ; |
| vrou44 | 0:5648c217e527 | 60 | if ((double)voltageHallSensor > HALL_TRESHOLD) { |
| vrou44 | 0:5648c217e527 | 61 | singleInstP->feedFsm(currentDetected) ; |
| vrou44 | 0:5648c217e527 | 62 | } |
| vrou44 | 0:5648c217e527 | 63 | } |
| vrou44 | 0:5648c217e527 | 64 | |
| vrou44 | 0:5648c217e527 | 65 | |
| vrou44 | 0:5648c217e527 | 66 | void BNP_Ctrl::plugDisconnectDetect(void) |
| vrou44 | 0:5648c217e527 | 67 | { |
| vrou44 | 0:5648c217e527 | 68 | float voltageHallSensor = *hallSensorP ; |
| vrou44 | 0:5648c217e527 | 69 | if ((double)voltageHallSensor < HALL_TRESHOLD) { |
| vrou44 | 0:5648c217e527 | 70 | singleInstP->feedFsm(currentInterrupted) ; |
| vrou44 | 0:5648c217e527 | 71 | } |
| vrou44 | 0:5648c217e527 | 72 | } |
| vrou44 | 0:5648c217e527 | 73 | |
| vrou44 | 0:5648c217e527 | 74 | |
| vrou44 | 0:5648c217e527 | 75 | void BNP_Ctrl::plugConnectTimeoutHdlr(void) |
| vrou44 | 0:5648c217e527 | 76 | { |
| vrou44 | 0:5648c217e527 | 77 | singleInstP->feedFsm(timeoutFired) ; |
| vrou44 | 0:5648c217e527 | 78 | } |
| vrou44 | 0:5648c217e527 | 79 | |
| vrou44 | 0:5648c217e527 | 80 | |
| vrou44 | 0:5648c217e527 | 81 | void BNP_Ctrl::internalDelayExpiredHdlr(void) |
| vrou44 | 0:5648c217e527 | 82 | { |
| vrou44 | 0:5648c217e527 | 83 | singleInstP->feedFsm(delayExpired) ; |
| vrou44 | 0:5648c217e527 | 84 | } |
| vrou44 | 0:5648c217e527 | 85 | |
| vrou44 | 0:5648c217e527 | 86 | |
| vrou44 | 0:5648c217e527 | 87 | void BNP_Ctrl::feedFsm(Evt evt) |
| vrou44 | 0:5648c217e527 | 88 | { |
| vrou44 | 0:5648c217e527 | 89 | switch (state) { |
| vrou44 | 0:5648c217e527 | 90 | case initInProgress: |
| vrou44 | 0:5648c217e527 | 91 | printf ("\r\nBNP_Ctrl: state initInProgress") ; |
| vrou44 | 0:5648c217e527 | 92 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 93 | case irisInitDone : |
| vrou44 | 0:5648c217e527 | 94 | printf ("\r\nBNP_Ctrl: evt irisInitDone") ; |
| vrou44 | 0:5648c217e527 | 95 | LedCtrl::requiredActivity = LedCtrl::signalingTermIdle ; |
| vrou44 | 0:5648c217e527 | 96 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 97 | state = idleWithLed; |
| vrou44 | 0:5648c217e527 | 98 | break ; |
| vrou44 | 0:5648c217e527 | 99 | default: // spurious evt |
| vrou44 | 0:5648c217e527 | 100 | break ; |
| vrou44 | 0:5648c217e527 | 101 | } |
| vrou44 | 0:5648c217e527 | 102 | break ; |
| vrou44 | 0:5648c217e527 | 103 | |
| vrou44 | 0:5648c217e527 | 104 | |
| vrou44 | 0:5648c217e527 | 105 | case idleNoLed : |
| vrou44 | 0:5648c217e527 | 106 | case idleWithLed : |
| vrou44 | 0:5648c217e527 | 107 | printf ("\r\nBNP_Ctrl: state Idle") ; |
| vrou44 | 0:5648c217e527 | 108 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 109 | case oprTerminalReserve : |
| vrou44 | 0:5648c217e527 | 110 | printf ("\r\nBNP_Ctrl: evt oprTerminalReserve") ; |
| vrou44 | 0:5648c217e527 | 111 | LedCtrl::requiredActivity = LedCtrl::signalingTermSelected ; |
| vrou44 | 0:5648c217e527 | 112 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 113 | state = terminalSelected ; |
| vrou44 | 0:5648c217e527 | 114 | break ; |
| vrou44 | 0:5648c217e527 | 115 | default: // spurious evt |
| vrou44 | 0:5648c217e527 | 116 | break ; |
| vrou44 | 0:5648c217e527 | 117 | } |
| vrou44 | 0:5648c217e527 | 118 | break ; |
| vrou44 | 0:5648c217e527 | 119 | |
| vrou44 | 0:5648c217e527 | 120 | |
| vrou44 | 0:5648c217e527 | 121 | case terminalSelected : |
| vrou44 | 0:5648c217e527 | 122 | printf ("\r\nBNP_Ctrl: state terminalSelected") ; |
| vrou44 | 0:5648c217e527 | 123 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 124 | case oprPlugSelection : |
| vrou44 | 0:5648c217e527 | 125 | printf ("\r\nBNP_Ctrl: evt oprPlugSelection") ; |
| vrou44 | 0:5648c217e527 | 126 | LedCtrl::requiredActivity = LedCtrl::signalingPlugSelected ; |
| vrou44 | 0:5648c217e527 | 127 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 128 | MotorCtrl::getInst().targetPosition = BltLink::getInst().selectedIrisPosition ; |
| vrou44 | 0:5648c217e527 | 129 | MotorCtrl::signalEvent(MotorCtrl::newPosRequired) ; |
| vrou44 | 0:5648c217e527 | 130 | state = plugPresentationInProgress; |
| vrou44 | 0:5648c217e527 | 131 | break ; |
| vrou44 | 0:5648c217e527 | 132 | default: // spurious evt |
| vrou44 | 0:5648c217e527 | 133 | break ; |
| vrou44 | 0:5648c217e527 | 134 | } |
| vrou44 | 0:5648c217e527 | 135 | break ; |
| vrou44 | 0:5648c217e527 | 136 | |
| vrou44 | 0:5648c217e527 | 137 | case plugPresentationInProgress: |
| vrou44 | 0:5648c217e527 | 138 | printf ("\r\nBNP_Ctrl: state plugPresentationInProgress") ; |
| vrou44 | 0:5648c217e527 | 139 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 140 | case irisPositionReached : |
| vrou44 | 0:5648c217e527 | 141 | printf ("\r\nBNP_Ctrl: evt irisPos reached") ; |
| vrou44 | 0:5648c217e527 | 142 | if (MotorCtrl::getInst().targetPosition == irisAtPlugEPosition) { |
| vrou44 | 0:5648c217e527 | 143 | *plugE_P = RELAY_CLOSING_PIN_VALUE ; |
| vrou44 | 0:5648c217e527 | 144 | Audio::startPlay(trackPlugE) ; |
| vrou44 | 0:5648c217e527 | 145 | } else { |
| vrou44 | 0:5648c217e527 | 146 | *plugC_P = RELAY_CLOSING_PIN_VALUE ; |
| vrou44 | 0:5648c217e527 | 147 | Audio::startPlay(trackPlugC) ; |
| vrou44 | 0:5648c217e527 | 148 | } |
| vrou44 | 0:5648c217e527 | 149 | autoRepeatTimerId = mainQueueP->call_every(500, plugConnectDetect) ; |
| vrou44 | 0:5648c217e527 | 150 | timeoutId = mainQueueP->call_in (30000, plugConnectTimeoutHdlr) ; |
| vrou44 | 0:5648c217e527 | 151 | state = waitingPlugConnection ; |
| vrou44 | 0:5648c217e527 | 152 | break ; |
| vrou44 | 0:5648c217e527 | 153 | default: // spurious evt |
| vrou44 | 0:5648c217e527 | 154 | break ; |
| vrou44 | 0:5648c217e527 | 155 | } |
| vrou44 | 0:5648c217e527 | 156 | break ; |
| vrou44 | 0:5648c217e527 | 157 | |
| vrou44 | 0:5648c217e527 | 158 | case waitingPlugConnection: |
| vrou44 | 0:5648c217e527 | 159 | printf ("\r\nBNP_Ctrl: state waitingPlugConnection") ; |
| vrou44 | 0:5648c217e527 | 160 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 161 | case currentDetected : |
| vrou44 | 0:5648c217e527 | 162 | printf ("\r\nBNP_Ctrl: evt current detect") ; |
| vrou44 | 0:5648c217e527 | 163 | mainQueueP->cancel(autoRepeatTimerId) ; |
| vrou44 | 0:5648c217e527 | 164 | autoRepeatTimerId = 0 ; |
| vrou44 | 0:5648c217e527 | 165 | mainQueueP->cancel(timeoutId) ; |
| vrou44 | 0:5648c217e527 | 166 | timeoutId = 0 ; |
| vrou44 | 0:5648c217e527 | 167 | LedCtrl::requiredActivity = LedCtrl::signalingCharging ; |
| vrou44 | 0:5648c217e527 | 168 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 169 | autoRepeatTimerId = mainQueueP->call_every(500, plugDisconnectDetect) ; |
| vrou44 | 0:5648c217e527 | 170 | state = chargingInProgress ; |
| vrou44 | 0:5648c217e527 | 171 | break ; |
| vrou44 | 0:5648c217e527 | 172 | |
| vrou44 | 0:5648c217e527 | 173 | case timeoutFired : |
| vrou44 | 0:5648c217e527 | 174 | printf ("\r\nBNP_Ctrl: timeout fired") ; |
| vrou44 | 0:5648c217e527 | 175 | mainQueueP->cancel(autoRepeatTimerId) ; |
| vrou44 | 0:5648c217e527 | 176 | autoRepeatTimerId = 0 ; |
| vrou44 | 0:5648c217e527 | 177 | mainQueueP->cancel(timeoutId) ; |
| vrou44 | 0:5648c217e527 | 178 | timeoutId = 0 ; |
| vrou44 | 0:5648c217e527 | 179 | if (MotorCtrl::getInst().targetPosition == irisAtPlugEPosition) { |
| vrou44 | 0:5648c217e527 | 180 | *plugE_P = RELAY_OPENING_PIN_VALUE; |
| vrou44 | 0:5648c217e527 | 181 | } else { |
| vrou44 | 0:5648c217e527 | 182 | *plugC_P = RELAY_OPENING_PIN_VALUE ; |
| vrou44 | 0:5648c217e527 | 183 | } |
| vrou44 | 0:5648c217e527 | 184 | LedCtrl::requiredActivity = LedCtrl::signalingChargeSuspended ; |
| vrou44 | 0:5648c217e527 | 185 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 186 | MotorCtrl::getInst().targetPosition = BNP_Ctrl::irisAtShieldPosition ; |
| vrou44 | 0:5648c217e527 | 187 | MotorCtrl::signalEvent(MotorCtrl::newPosRequired) ; |
| vrou44 | 0:5648c217e527 | 188 | state = shieldPresentationInProgress ; |
| vrou44 | 0:5648c217e527 | 189 | break ; |
| vrou44 | 0:5648c217e527 | 190 | |
| vrou44 | 0:5648c217e527 | 191 | default: // spurious evt |
| vrou44 | 0:5648c217e527 | 192 | break ; |
| vrou44 | 0:5648c217e527 | 193 | } |
| vrou44 | 0:5648c217e527 | 194 | break ; |
| vrou44 | 0:5648c217e527 | 195 | |
| vrou44 | 0:5648c217e527 | 196 | case chargingInProgress: |
| vrou44 | 0:5648c217e527 | 197 | printf ("\r\nBNP_Ctrl: state chargin") ; |
| vrou44 | 0:5648c217e527 | 198 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 199 | case currentInterrupted : |
| vrou44 | 0:5648c217e527 | 200 | printf ("\r\nBNP_Ctrl: evt no current") ; |
| vrou44 | 0:5648c217e527 | 201 | mainQueueP->cancel(autoRepeatTimerId) ; |
| vrou44 | 0:5648c217e527 | 202 | autoRepeatTimerId = 0 ; |
| vrou44 | 0:5648c217e527 | 203 | if (MotorCtrl::getInst().targetPosition == irisAtPlugEPosition) { |
| vrou44 | 0:5648c217e527 | 204 | *plugE_P = RELAY_OPENING_PIN_VALUE ; |
| vrou44 | 0:5648c217e527 | 205 | } else { |
| vrou44 | 0:5648c217e527 | 206 | *plugC_P = RELAY_OPENING_PIN_VALUE ; |
| vrou44 | 0:5648c217e527 | 207 | } |
| vrou44 | 0:5648c217e527 | 208 | LedCtrl::requiredActivity = LedCtrl::signalingChargeSuspended ; |
| vrou44 | 0:5648c217e527 | 209 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 210 | MotorCtrl::getInst().targetPosition = BNP_Ctrl::irisAtShieldPosition ; |
| vrou44 | 0:5648c217e527 | 211 | MotorCtrl::signalEvent(MotorCtrl::newPosRequired) ; |
| vrou44 | 0:5648c217e527 | 212 | state = shieldPresentationInProgress ; |
| vrou44 | 0:5648c217e527 | 213 | break ; |
| vrou44 | 0:5648c217e527 | 214 | |
| vrou44 | 0:5648c217e527 | 215 | default: // spurious evt |
| vrou44 | 0:5648c217e527 | 216 | break ; |
| vrou44 | 0:5648c217e527 | 217 | } |
| vrou44 | 0:5648c217e527 | 218 | |
| vrou44 | 0:5648c217e527 | 219 | break ; |
| vrou44 | 0:5648c217e527 | 220 | |
| vrou44 | 0:5648c217e527 | 221 | case shieldPresentationInProgress: |
| vrou44 | 0:5648c217e527 | 222 | printf ("\r\nBNP_Ctrl: shield present in progress") ; |
| vrou44 | 0:5648c217e527 | 223 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 224 | case irisPositionReached : |
| vrou44 | 0:5648c217e527 | 225 | case irisPositionTimeOut : // !!! TODO : manage this event separately |
| vrou44 | 0:5648c217e527 | 226 | printf ("\r\nBNP_Ctrl: evt pos reached or to") ; |
| vrou44 | 0:5648c217e527 | 227 | delayId = mainQueueP->call_in (60000, internalDelayExpiredHdlr) ; |
| vrou44 | 0:5648c217e527 | 228 | state = chargingSuspended ; |
| vrou44 | 0:5648c217e527 | 229 | break ; |
| vrou44 | 0:5648c217e527 | 230 | |
| vrou44 | 0:5648c217e527 | 231 | default: |
| vrou44 | 0:5648c217e527 | 232 | break ; |
| vrou44 | 0:5648c217e527 | 233 | } |
| vrou44 | 0:5648c217e527 | 234 | |
| vrou44 | 0:5648c217e527 | 235 | case chargingSuspended: |
| vrou44 | 0:5648c217e527 | 236 | printf ("\r\nBNP_Ctrl: state charge suspend") ; |
| vrou44 | 0:5648c217e527 | 237 | switch (evt) { |
| vrou44 | 0:5648c217e527 | 238 | case delayExpired : |
| vrou44 | 0:5648c217e527 | 239 | printf ("\r\nBNP_Ctrl: evt delay expired") ; |
| vrou44 | 0:5648c217e527 | 240 | delayId = 0 ; |
| vrou44 | 0:5648c217e527 | 241 | LedCtrl::requiredActivity = LedCtrl::signalingTermIdle ; |
| vrou44 | 0:5648c217e527 | 242 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 243 | state = idleWithLed; |
| vrou44 | 0:5648c217e527 | 244 | break ; |
| vrou44 | 0:5648c217e527 | 245 | |
| vrou44 | 0:5648c217e527 | 246 | case oprResumptionRequest : |
| vrou44 | 0:5648c217e527 | 247 | printf ("\r\nBNP_Ctrl: evt resume request") ; |
| vrou44 | 0:5648c217e527 | 248 | mainQueueP->cancel(delayId) ; |
| vrou44 | 0:5648c217e527 | 249 | Audio::startPlay(trackResumption) ; |
| vrou44 | 0:5648c217e527 | 250 | LedCtrl::requiredActivity = LedCtrl::signalingPlugSelected ; |
| vrou44 | 0:5648c217e527 | 251 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 252 | MotorCtrl::getInst().targetPosition = BltLink::getInst().selectedIrisPosition ; |
| vrou44 | 0:5648c217e527 | 253 | MotorCtrl::signalEvent(MotorCtrl::newPosRequired) ; |
| vrou44 | 0:5648c217e527 | 254 | state = plugPresentationInProgress; |
| vrou44 | 0:5648c217e527 | 255 | break ; |
| vrou44 | 0:5648c217e527 | 256 | |
| vrou44 | 0:5648c217e527 | 257 | case oprTerminalRelease: |
| vrou44 | 0:5648c217e527 | 258 | printf ("\r\nBNP_Ctrl: evt oprTerminalRelease") ; |
| vrou44 | 0:5648c217e527 | 259 | delayId = 0 ; |
| vrou44 | 0:5648c217e527 | 260 | LedCtrl::requiredActivity = LedCtrl::signalingTermIdle ; |
| vrou44 | 0:5648c217e527 | 261 | LedCtrl::signalEvent(LedCtrl::activityChangeRequired) ; |
| vrou44 | 0:5648c217e527 | 262 | state = idleWithLed; |
| vrou44 | 0:5648c217e527 | 263 | break ; |
| vrou44 | 0:5648c217e527 | 264 | |
| vrou44 | 0:5648c217e527 | 265 | |
| vrou44 | 0:5648c217e527 | 266 | default: |
| vrou44 | 0:5648c217e527 | 267 | break ; |
| vrou44 | 0:5648c217e527 | 268 | } |
| vrou44 | 0:5648c217e527 | 269 | break ; |
| vrou44 | 0:5648c217e527 | 270 | |
| vrou44 | 0:5648c217e527 | 271 | default : |
| vrou44 | 0:5648c217e527 | 272 | printf ("!!!! ERROR - BNP_Ctrl::feedFsm\n\r") ; |
| vrou44 | 0:5648c217e527 | 273 | break ; |
| vrou44 | 0:5648c217e527 | 274 | } |
| vrou44 | 0:5648c217e527 | 275 | } |