| ... | ... |
@@ -28,6 +28,9 @@ |
| 28 | 28 |
#include "display.h" |
| 29 | 29 |
#include "button.h" |
| 30 | 30 |
|
| 31 |
+#include <EEPROM.h> |
|
| 32 |
+#define EEPROM_SIZE 1 // To save BeaconType upon restart |
|
| 33 |
+ |
|
| 31 | 34 |
BLEAdvertising *pAdvertising; |
| 32 | 35 |
|
| 33 | 36 |
|
| ... | ... |
@@ -80,6 +83,7 @@ void setup() {
|
| 80 | 83 |
Heltec.display->clear(); |
| 81 | 84 |
#endif //_HELTEC_H_ |
| 82 | 85 |
Serial.begin(115200); |
| 86 |
+ EEPROM.begin(EEPROM_SIZE); |
|
| 83 | 87 |
|
| 84 | 88 |
Serial.println("------------------------------");
|
| 85 | 89 |
|
| ... | ... |
@@ -117,7 +121,32 @@ void setup() {
|
| 117 | 121 |
} |
| 118 | 122 |
sprintf(macStr,"%02x:%02x:%02x:%02x:%02x:%02x", new_mac[0], new_mac[1], new_mac[2], new_mac[3], new_mac[4], new_mac[5]); |
| 119 | 123 |
|
| 120 |
- beaconTypeStr = "Init(Safe) "; |
|
| 124 |
+ beacon_type = EEPROM.read(0); |
|
| 125 |
+ if( ( 0 == beacon_type ) || ( 0xff == beacon_type ) ) {
|
|
| 126 |
+ beacon_type = EN_BEACON_TYPE_safe; |
|
| 127 |
+ beaconTypeStr = "Init(Safe) "; |
|
| 128 |
+ } |
|
| 129 |
+ switch( beacon_type ) {
|
|
| 130 |
+ case EN_BEACON_TYPE_entry: |
|
| 131 |
+ beaconTypeStr="Init(Entry) "; |
|
| 132 |
+ break; |
|
| 133 |
+ case EN_BEACON_TYPE_hazard: |
|
| 134 |
+ beaconTypeStr="Init(Hazard)"; |
|
| 135 |
+ break; |
|
| 136 |
+ case EN_BEACON_TYPE_safe: |
|
| 137 |
+ beaconTypeStr="Init(Safe) "; |
|
| 138 |
+ break; |
|
| 139 |
+ case EN_BEACON_TYPE_exit: |
|
| 140 |
+ beaconTypeStr="Init(Exit) "; |
|
| 141 |
+ break; |
|
| 142 |
+ case EN_BEACON_TYPE_other: |
|
| 143 |
+ beaconTypeStr="Init(Other)"; |
|
| 144 |
+ break; |
|
| 145 |
+ default: |
|
| 146 |
+ beacon_type = EN_BEACON_TYPE_safe; |
|
| 147 |
+ beaconTypeStr="Init(Safe) "; |
|
| 148 |
+ break; |
|
| 149 |
+ } |
|
| 121 | 150 |
|
| 122 | 151 |
// Create the BLE Device |
| 123 | 152 |
BLEDevice::init(BEACON_NAME); |
| ... | ... |
@@ -1,6 +1,7 @@ |
| 1 | 1 |
#ifndef _BUTTON_H |
| 2 | 2 |
#define _BUTTON_H |
| 3 | 3 |
|
| 4 |
+#include <EEPROM.h> |
|
| 4 | 5 |
#include "beacon.h" |
| 5 | 6 |
|
| 6 | 7 |
int buttonState = 0; // variable for reading the pushbutton status |
| ... | ... |
@@ -39,6 +40,8 @@ void pollPrg() |
| 39 | 40 |
break; |
| 40 | 41 |
} |
| 41 | 42 |
Serial.println("Switching to "+beaconTypeStr);
|
| 43 |
+ EEPROM.write(0, beacon_type); |
|
| 44 |
+ EEPROM.commit(); |
|
| 42 | 45 |
} |
| 43 | 46 |
DisplayButtonStatus(); |
| 44 | 47 |
} |