... | ... |
@@ -39,7 +39,7 @@ |
39 | 39 |
#include "serial.h" |
40 | 40 |
|
41 | 41 |
#include <EEPROM.h> |
42 |
-#define EEPROM_SIZE 1 // To save BeaconType upon restart |
|
42 |
+#define EEPROM_SIZE 3 // To save BeaconType upon restart |
|
43 | 43 |
|
44 | 44 |
//#define DISABLE_BT //For Battery charging test |
45 | 45 |
//#define DEBUG_PAYLOAD //TO print the payload to be sent |
... | ... |
@@ -179,6 +179,10 @@ void loop() { |
179 | 179 |
|
180 | 180 |
beacon_count++; |
181 | 181 |
|
182 |
+ uint32_t storedNum = ( EEPROM.read(1) << 8 ) + EEPROM.read(2); |
|
183 |
+ beacon_num[0] = ((storedNum >> 8) & 0xff ); |
|
184 |
+ beacon_num[1] = (storedNum & 0xff ); |
|
185 |
+ |
|
182 | 186 |
#ifndef DISABLE_BT |
183 | 187 |
// Create the BLE Server |
184 | 188 |
pAdvertising = BLEDevice::getAdvertising(); |
... | ... |
@@ -2,10 +2,10 @@ |
2 | 2 |
#define _BEACON_H |
3 | 3 |
|
4 | 4 |
#define BEACON_SLEEP_ADV 2000 //1.0s between uptime |
5 |
-#define BEACON_ADV_DURATION 400 //400ms |
|
5 |
+#define BEACON_ADV_DURATION 500 //400ms |
|
6 | 6 |
#define BEACON_UUID "7c8a68a6-ddd0-11e9-8a34-2a2ae2dbcce4" |
7 | 7 |
#define BEACON_SERVICE_UUID "feaa" |
8 |
-#define BEACON_NAME "FakeESP" |
|
8 |
+#define BEACON_NAME "Eddy" |
|
9 | 9 |
enum EN_BEACON_TYPE { |
10 | 10 |
EN_BEACON_TYPE_entry = 0x01, |
11 | 11 |
EN_BEACON_TYPE_exit = 0x02, |
... | ... |
@@ -51,7 +51,7 @@ float getBatteryLevel(void) |
51 | 51 |
void DisplayButtonStatus() { |
52 | 52 |
#ifdef ARDUINO_HELTEC_WIFI_LORA_32 |
53 | 53 |
Heltec.display->clear(); |
54 |
- Heltec.display->drawString(0, LINE1, "BT: "+String(macStr)); |
|
54 |
+ Heltec.display->drawString(0, LINE1, "EDDY: "+String(macStr)); |
|
55 | 55 |
Heltec.display->drawString(0, LINE2, "I : "+String(instanceStr)); |
56 | 56 |
Heltec.display->drawString(0, LINE4, beaconTypeStr); |
57 | 57 |
Heltec.display->drawString(0, LINEBOTTOM, "Cnt: "+String(beacon_count)); |
... | ... |
@@ -63,7 +63,7 @@ void DisplayButtonStatus() { |
63 | 63 |
#elif ARDUINO_M5Stick_C //ARDUINO_TTGO_LoRa32_V1 |
64 | 64 |
//M5.Lcd.fillScreen(BLACK); |
65 | 65 |
M5.Lcd.setTextColor(0x7bef, BLACK); |
66 |
- M5.Lcd.setCursor(0, LINE1, 1);M5.Lcd.println("BT: "+String(macStr)); |
|
66 |
+ M5.Lcd.setCursor(0, LINE1, 1);M5.Lcd.println("EDDY: "+String(macStr)); |
|
67 | 67 |
M5.Lcd.setCursor(0, LINE2, 1);M5.Lcd.println("I : "+String(instanceStr)); |
68 | 68 |
M5.Lcd.fillRect(0, LINE4, 160, 15, BLACK); |
69 | 69 |
M5.Lcd.setCursor(0, LINE4, 2);M5.Lcd.setTextColor(GREEN, BLACK); M5.Lcd.println(beaconTypeStr); |
... | ... |
@@ -9,6 +9,7 @@ void serialHelp() { |
9 | 9 |
Serial.println("- help: Display this screen"); |
10 | 10 |
Serial.println("- beacon: Display beacon details"); |
11 | 11 |
Serial.println("- type X: Set type of Beacon"); |
12 |
+ Serial.println("- num aabb: Set the Beacon number in HEX padded to 2bytes"); |
|
12 | 13 |
} |
13 | 14 |
|
14 | 15 |
void serialBeacon() { |
... | ... |
@@ -22,6 +23,27 @@ void serialBeacon() { |
22 | 23 |
Serial.println(serialOut); |
23 | 24 |
} |
24 | 25 |
|
26 |
+void serialNum(char *buf) { |
|
27 |
+ int len = strlen(buf); |
|
28 |
+ char newNum[5]=""; |
|
29 |
+ strncpy(newNum,buf+4,4); |
|
30 |
+ newNum[4] =0x0; |
|
31 |
+ String newNumStr = ""; |
|
32 |
+ newNumStr += newNum; |
|
33 |
+ Serial.println(newNumStr); |
|
34 |
+ uint16_t newNumDW = strtoul(newNum,NULL,16); |
|
35 |
+ EEPROM.write(1, (uint8_t)((newNumDW >> 8) & 0xff) ); |
|
36 |
+ EEPROM.write(2, (uint8_t)(newNumDW & 0xff) ); |
|
37 |
+ EEPROM.commit(); |
|
38 |
+ beacon_num[0] = EEPROM.read(1); |
|
39 |
+ beacon_num[1] = EEPROM.read(2); |
|
40 |
+ String serialOut = "{\"command\": \"num\", \"status\": { "; |
|
41 |
+ serialOut += "\"numDec\": \""+String(newNumDW)+"\", "; |
|
42 |
+ serialOut += "\"numHex\": \""+String(newNum)+"\""; |
|
43 |
+ serialOut += "}"; |
|
44 |
+ Serial.println(serialOut); |
|
45 |
+} |
|
46 |
+ |
|
25 | 47 |
void serialType(EN_BEACON_TYPE type) { |
26 | 48 |
beacon_type = type; |
27 | 49 |
switch( type ) { |
... | ... |
@@ -73,6 +95,8 @@ void pollSerial() { |
73 | 95 |
serialType(EN_BEACON_TYPE_safe); |
74 | 96 |
} else if( 0 == strcmp(command,"type 5") ) { |
75 | 97 |
serialType(EN_BEACON_TYPE_other); |
98 |
+ } else if( 0 == strncmp(command,"num ",4) ) { |
|
99 |
+ serialNum(command); |
|
76 | 100 |
} else { |
77 | 101 |
Serial.println("{\"command\": \""+String(command)+"\", \"status\": \"error\" }"); |
78 | 102 |
} |