[SYS/BT] Semaphores and new BT Controller (#1819)

Add semaphore to the enqueue calls to avoid concurrency issues
Add new BT controller to avoid scan evt timeout bug
This commit is contained in:
Florian authored and GitHub committed 2023-12-01 07:15:07 -06:00
1 parent 5421f0e995
commit eb5b8fa291
45 files changed
+380 -91

No files matched your search

+5 -5
View File
@@ -41,7 +41,7 @@ void PairedDeviceAdded(byte newID) {
RFdata["sensor"] = newID;
RFdata["action"] = "paired";
RFdata["origin"] = subjectRFtoMQTT;
enqueueJsonObject(RFdata);
handleJsonEnqueue(RFdata);
wsdr.pair(NULL, PairedDeviceAdded);
}
@@ -61,7 +61,7 @@ void sendWindSpeedData(byte id, float wind_speed, byte battery_status) {
RFdata["wind_speed"] = wind_speed;
RFdata["battery"] = bitRead(battery_status, 0) == 0 ? "OK" : "Low";
RFdata["origin"] = subjectRFtoMQTT;
enqueueJsonObject(RFdata);
handleJsonEnqueue(RFdata);
Log.trace(F("Store wind speed val: %lu" CR), MQTTvalue);
storeSignalValue(MQTTvalue);
}
@@ -76,7 +76,7 @@ void sendRainData(byte id, float rain_volume, byte battery_status) {
RFdata["rain_volume"] = rain_volume;
RFdata["battery"] = bitRead(battery_status, 1) == 0 ? "OK" : "Low";
RFdata["origin"] = subjectRFtoMQTT;
enqueueJsonObject(RFdata);
handleJsonEnqueue(RFdata);
Log.trace(F("Store rain_volume: %lu" CR), MQTTvalue);
storeSignalValue(MQTTvalue);
}
@@ -92,7 +92,7 @@ void sendWindData(byte id, int wind_direction, float wind_gust, byte battery_sta
RFdata["wind_gust"] = wind_gust;
RFdata["battery"] = bitRead(battery_status, 0) == 0 ? "OK" : "Low";
RFdata["origin"] = subjectRFtoMQTT;
enqueueJsonObject(RFdata);
handleJsonEnqueue(RFdata);
Log.trace(F("Store wind data val: %lu" CR), MQTTvalue);
storeSignalValue(MQTTvalue);
}
@@ -109,7 +109,7 @@ void sendTemperatureData(byte id, float temperature, int humidity, byte battery_
RFdata["humidity"] = humidity;
RFdata["battery"] = bitRead(battery_status, 0) == 0 ? "OK" : "Low";
RFdata["origin"] = subjectRFtoMQTT;
enqueueJsonObject(RFdata);
handleJsonEnqueue(RFdata);
Log.trace(F("Store temp val: %lu" CR), MQTTvalue);
storeSignalValue(MQTTvalue);
}