[SYS] Optimize memory usage (#1632)
Add MQTT BLEtask stack follow up and reduce allocated stack Other memory usage optimizations
This commit is contained in:
1 parent
b03e18260f
commit
9bbe909661
3 files changed
+15
-14
No files matched your search
@@ -277,7 +277,7 @@ void ActuatorTrigger() {
|
|||||||
PowerIndicatorOFF();
|
PowerIndicatorOFF();
|
||||||
}
|
}
|
||||||
// Send the state of the switch to the broker so as to update the status
|
// 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>();
|
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
|
||||||
ONOFFdata["cmd"] = (int)level;
|
ONOFFdata["cmd"] = (int)level;
|
||||||
# ifdef ESP32
|
# ifdef ESP32
|
||||||
@@ -292,7 +292,7 @@ void ActuatorTrigger() {
|
|||||||
|
|
||||||
void stateONOFFMeasures() {
|
void stateONOFFMeasures() {
|
||||||
//Publish actuator state
|
//Publish actuator state
|
||||||
StaticJsonDocument<JSON_MSG_BUFFER> jsonBuffer;
|
StaticJsonDocument<64> jsonBuffer;
|
||||||
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
|
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
|
||||||
ONOFFdata["cmd"] = (int)digitalRead(ACTUATOR_ONOFF_GPIO);
|
ONOFFdata["cmd"] = (int)digitalRead(ACTUATOR_ONOFF_GPIO);
|
||||||
pub(subjectGTWONOFFtoMQTT, ONOFFdata);
|
pub(subjectGTWONOFFtoMQTT, ONOFFdata);
|
||||||
|
|||||||
+9
-8
@@ -59,6 +59,9 @@ BTConfig_s BTConfig;
|
|||||||
|
|
||||||
TheengsDecoder decoder;
|
TheengsDecoder decoder;
|
||||||
|
|
||||||
|
static TaskHandle_t xCoreTaskHandle;
|
||||||
|
static TaskHandle_t xProcBLETaskHandle;
|
||||||
|
|
||||||
struct decompose {
|
struct decompose {
|
||||||
int start;
|
int start;
|
||||||
int len;
|
int len;
|
||||||
@@ -147,6 +150,7 @@ String stateBTMeasures(bool start) {
|
|||||||
jo["btqsum"] = btQueueLengthSum;
|
jo["btqsum"] = btQueueLengthSum;
|
||||||
jo["btqsnd"] = btQueueLengthCount;
|
jo["btqsnd"] = btQueueLengthCount;
|
||||||
jo["btqavg"] = (btQueueLengthCount > 0 ? btQueueLengthSum / (float)btQueueLengthCount : 0);
|
jo["btqavg"] = (btQueueLengthCount > 0 ? btQueueLengthSum / (float)btQueueLengthCount : 0);
|
||||||
|
jo["bletaskstack"] = uxTaskGetStackHighWaterMark(xProcBLETaskHandle);
|
||||||
|
|
||||||
if (start) {
|
if (start) {
|
||||||
Log.notice(F("BT sys: "));
|
Log.notice(F("BT sys: "));
|
||||||
@@ -348,9 +352,6 @@ public:
|
|||||||
|
|
||||||
void PublishDeviceData(JsonObject& BLEdata, bool processBLEData = true);
|
void PublishDeviceData(JsonObject& BLEdata, bool processBLEData = true);
|
||||||
|
|
||||||
static TaskHandle_t xCoreTaskHandle;
|
|
||||||
static TaskHandle_t xProcBLETaskHandle;
|
|
||||||
|
|
||||||
atomic_int forceBTScan;
|
atomic_int forceBTScan;
|
||||||
|
|
||||||
JsonBundle jsonBTBufferQueue[BTQueueSize];
|
JsonBundle jsonBTBufferQueue[BTQueueSize];
|
||||||
@@ -646,7 +647,7 @@ std::string convertServiceData(std::string deviceServiceData) {
|
|||||||
char spr[2 * serviceDataLength + 1];
|
char spr[2 * serviceDataLength + 1];
|
||||||
for (int i = 0; i < serviceDataLength; i++) sprintf(spr + 2 * i, "%.2x", (unsigned char)deviceServiceData[i]);
|
for (int i = 0; i < serviceDataLength; i++) sprintf(spr + 2 * i, "%.2x", (unsigned char)deviceServiceData[i]);
|
||||||
spr[2 * serviceDataLength] = 0;
|
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;
|
return spr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -969,7 +970,7 @@ void setupBT() {
|
|||||||
xTaskCreatePinnedToCore(
|
xTaskCreatePinnedToCore(
|
||||||
coreTask, /* Function to implement the task */
|
coreTask, /* Function to implement the task */
|
||||||
"coreTask", /* Name of the task */
|
"coreTask", /* Name of the task */
|
||||||
10000, /* Stack size in bytes */
|
5120, /* Stack size in bytes */
|
||||||
NULL, /* Task input parameter */
|
NULL, /* Task input parameter */
|
||||||
1, /* Priority of the task */
|
1, /* Priority of the task */
|
||||||
&xCoreTaskHandle, /* Task handle. */
|
&xCoreTaskHandle, /* Task handle. */
|
||||||
@@ -1043,9 +1044,9 @@ void launchBTDiscovery(bool overrideDiscovery) {
|
|||||||
StaticJsonDocument<JSON_MSG_BUFFER> jsonBuffer;
|
StaticJsonDocument<JSON_MSG_BUFFER> jsonBuffer;
|
||||||
deserializeJson(jsonBuffer, properties);
|
deserializeJson(jsonBuffer, properties);
|
||||||
for (JsonPair prop : jsonBuffer["properties"].as<JsonObject>()) {
|
for (JsonPair prop : jsonBuffer["properties"].as<JsonObject>()) {
|
||||||
Log.trace("Key: %s", prop.key().c_str());
|
Log.trace(F("Key: %s"), prop.key().c_str());
|
||||||
Log.trace("Unit: %s", prop.value()["unit"].as<const char*>());
|
Log.trace(F("Unit: %s"), prop.value()["unit"].as<const char*>());
|
||||||
Log.trace("Name: %s", prop.value()["name"].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 entity_name = String(model_id.c_str()) + "-" + String(prop.key().c_str());
|
||||||
String unique_id = macWOdots + "-" + String(prop.key().c_str());
|
String unique_id = macWOdots + "-" + String(prop.key().c_str());
|
||||||
# if OpenHABDiscovery
|
# if OpenHABDiscovery
|
||||||
|
|||||||
@@ -13,16 +13,16 @@ void errorDecoder(SHTC3_Status_TypeDef message) // The errorDecoder function pri
|
|||||||
{
|
{
|
||||||
switch (message) {
|
switch (message) {
|
||||||
case SHTC3_Status_Nominal:
|
case SHTC3_Status_Nominal:
|
||||||
Log.notice("Nominal");
|
Log.notice(F("Nominal"));
|
||||||
break;
|
break;
|
||||||
case SHTC3_Status_Error:
|
case SHTC3_Status_Error:
|
||||||
Log.error("Error");
|
Log.error(F("Error"));
|
||||||
break;
|
break;
|
||||||
case SHTC3_Status_CRC_Fail:
|
case SHTC3_Status_CRC_Fail:
|
||||||
Log.error("CRC Fail");
|
Log.error(F("CRC Fail"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Log.error("Unknown return code");
|
Log.error(F("Unknown return code"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user