Refactor Sensors available

Refactor Sensors available
This commit is contained in:
Theo Arends 2019-08-16 18:30:45 +02:00
parent 26d331501b
commit 676c7867ca
2 changed files with 7 additions and 6 deletions

View File

@ -331,12 +331,13 @@ void CmndStatus(void)
}
if ((0 == payload) || (4 == payload)) {
char sensors[LOGSZ];
Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS4_MEMORY "\":{\"" D_JSON_PROGRAMSIZE "\":%d,\"" D_JSON_FREEMEMORY "\":%d,\"" D_JSON_HEAPSIZE "\":%d,\""
D_JSON_PROGRAMFLASHSIZE "\":%d,\"" D_JSON_FLASHSIZE "\":%d,\"" D_JSON_FLASHCHIPID "\":\"%06X\",\"" D_JSON_FLASHMODE "\":%d,\""
D_JSON_FEATURES "\":[\"%08X\",\"%08X\",\"%08X\",\"%08X\",\"%08X\",\"%08X\"],\"Sensors\":%s}}"),
ESP.getSketchSize()/1024, ESP.getFreeSketchSpace()/1024, ESP.getFreeHeap()/1024,
ESP.getFlashChipSize()/1024, ESP.getFlashChipRealSize()/1024, ESP.getFlashChipId(), ESP.getFlashChipMode(),
LANGUAGE_LCID, feature_drv1, feature_drv2, feature_sns1, feature_sns2, feature5, XsnsSensorsAvailable().c_str());
LANGUAGE_LCID, feature_drv1, feature_drv2, feature_sns1, feature_sns2, feature5, XsnsSensorsAvailable(sensors));
MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "4"));
}

View File

@ -828,19 +828,19 @@ bool XsnsEnabled(uint32_t sns_index)
return true;
}
String XsnsSensorsAvailable()
char* XsnsSensorsAvailable(char* sensors)
{
String sensors = F("[");
// Return string like [2,3,4,5,8,9,10,14,15,17,18,34]
sensors[0] = '\0';
for (uint32_t i = 0; i < sizeof(kXsnsList); i++) {
#ifdef XFUNC_PTR_IN_ROM
uint32_t sensorid = pgm_read_byte(kXsnsList + i);
#else
uint32_t sensorid = kXsnsList[i];
#endif
if (i) { sensors += F(","); }
sensors += String(sensorid);
snprintf_P(sensors, LOGSZ, PSTR("%s%s%d"), sensors, (!i) ? "[" : ",", sensorid);
}
sensors += F("]");
snprintf_P(sensors, LOGSZ, PSTR("%s]"), sensors); // Max length is about 3 x 96 < LOGSZ
return sensors;
}