added distance information in blink frequency

This commit is contained in:
2021-06-25 20:02:16 +02:00
parent 163ee7b8df
commit 42135c6482
2 changed files with 55 additions and 20 deletions

View File

@@ -13,10 +13,10 @@ platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
; upload_port = COM[6]
upload_protocol = espota
#; upload_port = COM[6]
#upload_protocol = espota
upload_port = 192.168.2.92
; board_build.partitions = huge_app.csv
;board_build.partitions = huge_app.csv
board_build.partitions = min_spiffs.csv

View File

@@ -53,20 +53,27 @@ class MyServerCallbacks : public BLEServerCallbacks {
}
};
// uint8_t toggle = 0;
uint8_t alarmFired = 0;
uint8_t alarmFired_1km = 0;
uint8_t alarmFired_500m = 0;
uint8_t alarmFired_300m = 0;
int state = 0;
class MyAlarmCallback : public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic * pCharacteristic) {
std::string value = pCharacteristic->getValue();
for (int i = 0; i < value.length(); i++) {
Serial.print(value[i]);
}
Serial.println("");
if (value.compare("X") == 0) {
Serial.println("found X");
alarmFired = 1;
alarmFired_1km = 1;
state = 0;
}
else if (value.compare("XX") == 0) {
Serial.println("found XX");
alarmFired_500m = 1;
state = 0;
}
else if (value.compare("XXX") == 0) {
Serial.println("found XXX");
alarmFired_300m = 1;
state = 0;
}
else if (value.compare("U") == 0) {
@@ -120,6 +127,8 @@ void setup() {
Serial.begin(115200);
EEPROM.begin(EEPROM_SIZE);
// needs to be uncommend for very first boot
// EEPROM.write(MODE_ADDRESS, MODE_BLE);
// EEPROM.commit();
@@ -130,7 +139,7 @@ void setup() {
// upcounting timer 1MHz
timer = timerBegin(0, 40, true);
timerAttachInterrupt(timer, &onTimer, true);
timerAlarmWrite(timer, 100000, true);
timerAlarmWrite(timer, 400000, true);
timerAlarmEnable(timer);
// blink led
@@ -205,7 +214,20 @@ void setup() {
// ArduinoOTA.begin();
}
// toggles pin and returns new state of pin
uint8_t togglePin(uint8_t pin, uint8_t state) {
if (state == 0) {
digitalWrite(pin, HIGH);
return 1;
}
else {
digitalWrite(pin, LOW);
return 0;
}
}
std::string x;
uint8_t stateLED = 0;
void loop() {
if (mode == MODE_WIFI) {
@@ -216,7 +238,7 @@ void loop() {
// BLE mode
// occures every 100ms
// occures every 200ms
if (ctr > 0) {
portENTER_CRITICAL(&timerMux);
ctr--;
@@ -230,22 +252,35 @@ void loop() {
}
state++;
#else
if (alarmFired) {
if (state % 2 == 0) {
digitalWrite(ALARM_LED, HIGH);
if (alarmFired_1km) {
if (state % 4 == 0) {
stateLED = togglePin(ALARM_LED, stateLED);
}
else {
digitalWrite(ALARM_LED, LOW);
state++;
}
else if (alarmFired_500m) {
if (state % 3 == 0) {
stateLED = togglePin(ALARM_LED, stateLED);
}
state++;
}
else if (alarmFired_300m) {
if (state % 2 == 0) {
stateLED = togglePin(ALARM_LED, stateLED);
}
state++;
}
#endif
if (state == 22) {
if (state == 50) {
state = 0;
digitalWrite(ALARM_LED, LOW);
stateLED = 0;
#if defined TESTMODE
ctr = -20;
#endif
alarmFired = 0;
alarmFired_1km = 0;
alarmFired_500m = 0;
alarmFired_300m = 0;
}
}
@@ -271,6 +306,6 @@ void loop() {
oldDeviceConnected = deviceConnected;
}
delay(500);
// delay(500);
}
}