... | ... |
@@ -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 |
} |