[SYS] Optimize memory usage (#1632)

Add MQTT BLEtask stack follow up and reduce allocated stack
Other memory usage optimizations
This commit is contained in:
Florian authored and GitHub committed 2023-05-02 15:22:57 -05:00
1 parent b03e18260f
commit 9bbe909661
3 files changed
+15 -14

No files matched your search

+2 -2
View File
@@ -277,7 +277,7 @@ void ActuatorTrigger() {
PowerIndicatorOFF();
}
// Send the state of the switch to the broker so as to update the status
StaticJsonDocument<JSON_MSG_BUFFER> jsonBuffer;
StaticJsonDocument<64> jsonBuffer;
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
ONOFFdata["cmd"] = (int)level;
# ifdef ESP32
@@ -292,7 +292,7 @@ void ActuatorTrigger() {
void stateONOFFMeasures() {
//Publish actuator state
StaticJsonDocument<JSON_MSG_BUFFER> jsonBuffer;
StaticJsonDocument<64> jsonBuffer;
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
ONOFFdata["cmd"] = (int)digitalRead(ACTUATOR_ONOFF_GPIO);
pub(subjectGTWONOFFtoMQTT, ONOFFdata);
+9 -8
View File
@@ -59,6 +59,9 @@ BTConfig_s BTConfig;
TheengsDecoder decoder;
static TaskHandle_t xCoreTaskHandle;
static TaskHandle_t xProcBLETaskHandle;
struct decompose {
int start;
int len;
@@ -147,6 +150,7 @@ String stateBTMeasures(bool start) {
jo["btqsum"] = btQueueLengthSum;
jo["btqsnd"] = btQueueLengthCount;
jo["btqavg"] = (btQueueLengthCount > 0 ? btQueueLengthSum / (float)btQueueLengthCount : 0);
jo["bletaskstack"] = uxTaskGetStackHighWaterMark(xProcBLETaskHandle);
if (start) {
Log.notice(F("BT sys: "));
@@ -348,9 +352,6 @@ public:
void PublishDeviceData(JsonObject& BLEdata, bool processBLEData = true);
static TaskHandle_t xCoreTaskHandle;
static TaskHandle_t xProcBLETaskHandle;
atomic_int forceBTScan;
JsonBundle jsonBTBufferQueue[BTQueueSize];
@@ -646,7 +647,7 @@ std::string convertServiceData(std::string deviceServiceData) {
char spr[2 * serviceDataLength + 1];
for (int i = 0; i < serviceDataLength; i++) sprintf(spr + 2 * i, "%.2x", (unsigned char)deviceServiceData[i]);
spr[2 * serviceDataLength] = 0;
Log.trace("Converted service data (%d) to %s" CR, serviceDataLength, spr);
Log.trace(F("Converted service data (%d) to %s" CR), serviceDataLength, spr);
return spr;
}
@@ -969,7 +970,7 @@ void setupBT() {
xTaskCreatePinnedToCore(
coreTask, /* Function to implement the task */
"coreTask", /* Name of the task */
10000, /* Stack size in bytes */
5120, /* Stack size in bytes */
NULL, /* Task input parameter */
1, /* Priority of the task */
&xCoreTaskHandle, /* Task handle. */
@@ -1043,9 +1044,9 @@ void launchBTDiscovery(bool overrideDiscovery) {
StaticJsonDocument<JSON_MSG_BUFFER> jsonBuffer;
deserializeJson(jsonBuffer, properties);
for (JsonPair prop : jsonBuffer["properties"].as<JsonObject>()) {
Log.trace("Key: %s", prop.key().c_str());
Log.trace("Unit: %s", prop.value()["unit"].as<const char*>());
Log.trace("Name: %s", prop.value()["name"].as<const char*>());
Log.trace(F("Key: %s"), prop.key().c_str());
Log.trace(F("Unit: %s"), prop.value()["unit"].as<const char*>());
Log.trace(F("Name: %s"), prop.value()["name"].as<const char*>());
String entity_name = String(model_id.c_str()) + "-" + String(prop.key().c_str());
String unique_id = macWOdots + "-" + String(prop.key().c_str());
# if OpenHABDiscovery
+4 -4
View File
@@ -13,16 +13,16 @@ void errorDecoder(SHTC3_Status_TypeDef message) // The errorDecoder function pri
{
switch (message) {
case SHTC3_Status_Nominal:
Log.notice("Nominal");
Log.notice(F("Nominal"));
break;
case SHTC3_Status_Error:
Log.error("Error");
Log.error(F("Error"));
break;
case SHTC3_Status_CRC_Fail:
Log.error("CRC Fail");
Log.error(F("CRC Fail"));
break;
default:
Log.error("Unknown return code");
Log.error(F("Unknown return code"));
break;
}
}