mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-27 21:26:43 +00:00
Increase buffer size
This commit is contained in:
parent
42185a44bb
commit
2fee5c27d8
@ -242,7 +242,7 @@ int lv_zifont_font_init(lv_font_t ** font, const char * font_path, uint16_t size
|
||||
* @param unicode_letter an unicode letter which bitmap should be get
|
||||
* @return pointer to the bitmap or NULL if not found
|
||||
*/
|
||||
const uint8_t * IRAM_ATTR lv_font_get_bitmap_fmt_zifont(const lv_font_t * font, uint32_t unicode_letter)
|
||||
const uint8_t * lv_font_get_bitmap_fmt_zifont(const lv_font_t * font, uint32_t unicode_letter)
|
||||
{
|
||||
/* Bitmap still in buffer */
|
||||
if(charInBuffer == unicode_letter && charBitmap_p) {
|
||||
@ -263,7 +263,7 @@ const uint8_t * IRAM_ATTR lv_font_get_bitmap_fmt_zifont(const lv_font_t * font,
|
||||
}
|
||||
|
||||
File file;
|
||||
char filename[127];
|
||||
char filename[128];
|
||||
uint32_t glyphID;
|
||||
uint16_t charmap_position;
|
||||
|
||||
|
26
src/hasp.cpp
26
src/hasp.cpp
@ -203,7 +203,7 @@ void haspSendNewEvent(lv_obj_t * obj, char * val)
|
||||
uint8_t objid;
|
||||
|
||||
if(FindIdFromObj(obj, &pageid, &objid)) {
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
// sprintf_P(buffer, PSTR("HASP: Send p[%u].b[%u].event=%d"), pageid, objid, val);
|
||||
// debugPrintln(buffer);
|
||||
|
||||
@ -219,7 +219,7 @@ void haspSendNewValue(lv_obj_t * obj, int32_t val)
|
||||
uint8_t objid;
|
||||
|
||||
if(FindIdFromObj(obj, &pageid, &objid)) {
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
// sprintf_P(buffer, PSTR("HASP: Send p[%u].b[%u].val=%d"), pageid, objid, val);
|
||||
// debugPrintln(buffer);
|
||||
|
||||
@ -235,7 +235,7 @@ void haspSendNewValue(lv_obj_t * obj, String txt)
|
||||
uint8_t objid;
|
||||
|
||||
if(FindIdFromObj(obj, &pageid, &objid)) {
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
// sprintf_P(buffer, PSTR("HASP: Send p[%u].b[%u].txt='%s'"), pageid, objid, txt.c_str());
|
||||
// debugPrintln(buffer);
|
||||
|
||||
@ -251,7 +251,7 @@ void haspSendNewValue(lv_obj_t * obj, const char * txt)
|
||||
uint8_t objid;
|
||||
|
||||
if(FindIdFromObj(obj, &pageid, &objid)) {
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
// sprintf_P(buffer, PSTR("HASP: Send p[%u].b[%u].txt='%s'"), pageid, objid, txt);
|
||||
// debugPrintln(buffer);
|
||||
|
||||
@ -418,13 +418,13 @@ bool haspGetObjAttribute(lv_obj_t * obj, String strAttr, std::string & strPayloa
|
||||
return true;
|
||||
}
|
||||
if(check_obj_type(list.type[0], LV_HASP_DDLIST)) {
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
lv_ddlist_get_selected_str(obj, buffer, sizeof(buffer));
|
||||
strPayload = String(buffer).c_str();
|
||||
return true;
|
||||
}
|
||||
if(check_obj_type(list.type[0], LV_HASP_ROLLER)) {
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
lv_roller_get_selected_str(obj, buffer, sizeof(buffer));
|
||||
strPayload = String(buffer).c_str();
|
||||
return true;
|
||||
@ -740,7 +740,7 @@ void haspDisplayAP(const char * ssid, const char * pass)
|
||||
String txt((char *)0);
|
||||
txt.reserve(64);
|
||||
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("WIFI:S:%s;T:WPA;P:%s;;"), ssid, pass);
|
||||
|
||||
/*Clear all screens*/
|
||||
@ -1201,7 +1201,7 @@ static void btn_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
uint8_t pageid = 0;
|
||||
lv_obj_user_data_t objid;
|
||||
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
sprintf(buffer, PSTR("HASP: "));
|
||||
|
||||
if(obj != lv_disp_get_layer_sys(NULL)) {
|
||||
@ -1319,7 +1319,7 @@ static void ddlist_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
haspSendNewValue(obj, lv_ddlist_get_selected(obj));
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
lv_ddlist_get_selected_str(obj, buffer, sizeof(buffer));
|
||||
haspSendNewValue(obj, String(buffer));
|
||||
}
|
||||
@ -1329,7 +1329,7 @@ static void roller_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
haspSendNewValue(obj, lv_roller_get_selected(obj));
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
lv_roller_get_selected_str(obj, buffer, sizeof(buffer));
|
||||
haspSendNewValue(obj, String(buffer));
|
||||
}
|
||||
@ -1346,7 +1346,7 @@ String haspGetNodename()
|
||||
|
||||
String haspGetVersion()
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), "%u.%u.%u", HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION);
|
||||
return buffer;
|
||||
}
|
||||
@ -1615,7 +1615,7 @@ void haspNewObject(const JsonObject & config)
|
||||
}
|
||||
/** testing end **/
|
||||
|
||||
char msg[127];
|
||||
char msg[128];
|
||||
lv_obj_type_t list;
|
||||
lv_obj_get_type(obj, &list);
|
||||
sprintf_P(msg, PSTR("HASP: * p[%u].b[%u] = %s"), pageid, temp, list.type[0]);
|
||||
@ -1632,7 +1632,7 @@ void haspNewObject(const JsonObject & config)
|
||||
|
||||
void haspLoadPage(String pages)
|
||||
{
|
||||
char msg[127];
|
||||
char msg[128];
|
||||
|
||||
if(!SPIFFS.begin()) {
|
||||
errorPrintln(String(F("HASP: %sFS not mounted. Failed to load ")) + pages.c_str());
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
void confDebugSet(const char * name)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf(buffer, sizeof(buffer), PSTR("CONF: * %s set"), name);
|
||||
debugPrintln(buffer);
|
||||
}
|
||||
@ -89,7 +89,7 @@ void configStartDebug(bool setupdebug, String & configFile)
|
||||
void configGetConfig(JsonDocument & settings, bool setupdebug = false)
|
||||
{
|
||||
String configFile((char *)0);
|
||||
configFile.reserve(127);
|
||||
configFile.reserve(128);
|
||||
configFile = String(FPSTR(HASP_CONFIG_FILE));
|
||||
File file = SPIFFS.open(configFile, "r");
|
||||
|
||||
@ -130,7 +130,7 @@ void configGetConfig(JsonDocument & settings, bool setupdebug = false)
|
||||
void configWriteConfig()
|
||||
{
|
||||
String configFile((char *)0);
|
||||
configFile.reserve(127);
|
||||
configFile.reserve(128);
|
||||
configFile = String(FPSTR(HASP_CONFIG_FILE));
|
||||
|
||||
/* Read Config File */
|
||||
@ -198,15 +198,15 @@ void configSetup(JsonDocument & settings)
|
||||
void configOutput(const JsonObject & settings)
|
||||
{
|
||||
String output((char *)0);
|
||||
output.reserve(127);
|
||||
output.reserve(128);
|
||||
serializeJson(settings, output);
|
||||
|
||||
String passmask((char *)0);
|
||||
passmask.reserve(127);
|
||||
passmask.reserve(128);
|
||||
passmask = F("\"pass\":\"********\"");
|
||||
|
||||
String password((char *)0);
|
||||
password.reserve(127);
|
||||
password.reserve(128);
|
||||
password = F("\"pass\":\"");
|
||||
password += settings[F("pass")].as<String>();
|
||||
password += F("\"");
|
||||
|
@ -64,36 +64,36 @@ static Ticker tick; /* timer for interrupt handler */
|
||||
static TFT_eSPI tft; // = TFT_eSPI(); /* TFT instance */
|
||||
static uint16_t calData[5] = {0, 65535, 0, 65535, 0};
|
||||
|
||||
bool IRAM_ATTR guiCheckSleep()
|
||||
bool guiCheckSleep()
|
||||
{
|
||||
if(lv_disp_get_inactive_time(NULL) >= (guiSleepTime1 + guiSleepTime2) * 1000) {
|
||||
uint32_t idle = lv_disp_get_inactive_time(NULL);
|
||||
if(idle >= (guiSleepTime1 + guiSleepTime2) * 1000) {
|
||||
if(guiSleeping != 2) {
|
||||
dispatchIdle(F("LONG"));
|
||||
guiSleeping = 2;
|
||||
}
|
||||
return true;
|
||||
} else if(lv_disp_get_inactive_time(NULL) >= guiSleepTime1 * 1000) {
|
||||
} else if(idle >= guiSleepTime1 * 1000) {
|
||||
if(guiSleeping != 1) {
|
||||
dispatchIdle(F("SHORT"));
|
||||
guiSleeping = 1;
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
if(guiSleeping != 0) {
|
||||
dispatchIdle(F("OFF"));
|
||||
guiSleeping = 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if(guiSleeping != 0) {
|
||||
dispatchIdle(F("OFF"));
|
||||
guiSleeping = 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#if LV_USE_LOG != 0
|
||||
/* Serial debugging */
|
||||
void debugLvgl(lv_log_level_t level, const char * file, uint32_t line, const char * dsc)
|
||||
{
|
||||
char msg[127];
|
||||
snprintf(msg, sizeof(msg), PSTR("LVGL: %s@%d->%s"), file, line, dsc);
|
||||
debugPrintln(msg);
|
||||
char buffer[128];
|
||||
snprintf(buffer, sizeof(buffer), PSTR("LVGL: %s@%d->%s"), file, line, dsc);
|
||||
debugPrintln(buffer);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -283,7 +283,7 @@ void guiSetup(TFT_eSPI & screen, JsonObject settings)
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
/* allocate on iram (or psram ?) */
|
||||
buffer_size = 16 * 1024u; // 32 KBytes
|
||||
buffer_size = 16 * 1024u; // 32 KBytes *2
|
||||
static lv_color_t * guiVdbBuffer1 = (lv_color_t *)malloc(sizeof(lv_color_t) * buffer_size);
|
||||
static lv_color_t * guiVdbBuffer2 = (lv_color_t *)malloc(sizeof(lv_color_t) * buffer_size);
|
||||
static lv_disp_buf_t disp_buf;
|
||||
@ -297,7 +297,7 @@ void guiSetup(TFT_eSPI & screen, JsonObject settings)
|
||||
lv_disp_buf_init(&disp_buf, guiVdbBuffer1, NULL, buffer_size);
|
||||
#endif
|
||||
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("LVGL: Rotation : %d"), guiRotation);
|
||||
debugPrintln(buffer);
|
||||
|
||||
@ -524,7 +524,7 @@ bool guiSetConfig(const JsonObject & settings)
|
||||
|
||||
void guiSendBmpHeader()
|
||||
{
|
||||
uint8_t buffer[127];
|
||||
uint8_t buffer[128];
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
|
||||
lv_disp_t * disp = lv_disp_get_default();
|
||||
@ -620,7 +620,7 @@ void guiSendBmpHeader()
|
||||
void guiTakeScreenshot(const char * pFileName)
|
||||
{
|
||||
pFileOut = SPIFFS.open(pFileName, "w");
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
|
||||
if(pFileOut == NULL) {
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("[Display] error: %s cannot be opened"), pFileName);
|
||||
|
@ -13,7 +13,7 @@ String esp32ResetReason(uint8_t cpuid)
|
||||
RESET_REASON reason = rtc_get_reset_reason(cpuid);
|
||||
|
||||
String resetReason((char *)0);
|
||||
resetReason.reserve(127);
|
||||
resetReason.reserve(128);
|
||||
|
||||
resetReason += F("CPU");
|
||||
resetReason += cpuid;
|
||||
@ -78,7 +78,7 @@ String halGetResetInfo()
|
||||
{
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
String resetReason((char *)0);
|
||||
resetReason.reserve(127);
|
||||
resetReason.reserve(128);
|
||||
|
||||
resetReason += String(esp32ResetReason(0));
|
||||
resetReason += F(" / ");
|
||||
|
@ -102,7 +102,7 @@ bool httpIsAuthenticated(const String & page)
|
||||
}
|
||||
}
|
||||
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf(buffer, sizeof(buffer), PSTR("HTTP: Sending %s page to client connected from: %s"), page.c_str(),
|
||||
webServer.client().remoteIP().toString().c_str());
|
||||
debugPrintln(buffer);
|
||||
@ -111,21 +111,21 @@ bool httpIsAuthenticated(const String & page)
|
||||
|
||||
String getOption(int value, String label, bool selected)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("<option value='%d'%s>%s</option>"), value,
|
||||
(selected ? PSTR(" selected") : ""), label.c_str());
|
||||
return buffer;
|
||||
}
|
||||
String getOption(String value, String label, bool selected)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("<option value='%s'%s>%s</option>"), value.c_str(),
|
||||
(selected ? PSTR(" selected") : ""), label.c_str());
|
||||
return buffer;
|
||||
}
|
||||
void webSendFooter()
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%u.%u.%u"), HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION);
|
||||
|
||||
webServer.sendContent_P(HTTP_END);
|
||||
@ -135,7 +135,7 @@ void webSendFooter()
|
||||
|
||||
void webSendPage(String & nodename, uint32_t httpdatalength, bool gohome = false)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%u.%u.%u"), HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION);
|
||||
|
||||
@ -170,7 +170,7 @@ void webHandleRoot()
|
||||
{
|
||||
if(!httpIsAuthenticated(F("root"))) return;
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -294,7 +294,7 @@ void webHandleInfo()
|
||||
{ // http://plate01/
|
||||
if(!httpIsAuthenticated(F("info"))) return;
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -423,7 +423,7 @@ String getContentType(String filename)
|
||||
encodedString += ' ';
|
||||
} else if(c == '%') {
|
||||
// char buffer[3];
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
i++;
|
||||
buffer[0] = str.charAt(i);
|
||||
i++;
|
||||
@ -475,7 +475,7 @@ void handleFileUpload()
|
||||
if(upload->status == UPLOAD_FILE_START) {
|
||||
if(!httpIsAuthenticated(F("fileupload"))) return;
|
||||
String filename((char *)0);
|
||||
filename.reserve(127);
|
||||
filename.reserve(128);
|
||||
filename = upload->filename;
|
||||
if(!filename.startsWith("/")) {
|
||||
filename = "/";
|
||||
@ -493,13 +493,13 @@ void handleFileUpload()
|
||||
// DBG_OUTPUT_PORT.print("handleFileUpload Data: "); debugPrintln(upload.currentSize);
|
||||
if(fsUploadFile) {
|
||||
fsUploadFile.write(upload->buf, upload->currentSize);
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
sprintf_P(buffer, PSTR(" * Uploaded %u bytes"), upload->totalSize + upload->currentSize);
|
||||
debugPrintln(buffer);
|
||||
}
|
||||
} else if(upload->status == UPLOAD_FILE_END) {
|
||||
if(fsUploadFile) {
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
sprintf_P(buffer, PSTR("Uploaded %s (%u bytes)"), fsUploadFile.name(), upload->totalSize);
|
||||
debugPrintln(buffer);
|
||||
fsUploadFile.close();
|
||||
@ -516,7 +516,7 @@ void handleFileDelete()
|
||||
{
|
||||
if(!httpIsAuthenticated(F("filedelete"))) return;
|
||||
|
||||
char mimetype[127];
|
||||
char mimetype[128];
|
||||
sprintf(mimetype, PSTR("text/plain"));
|
||||
|
||||
if(webServer.args() == 0) {
|
||||
@ -662,7 +662,7 @@ void webHandleConfig()
|
||||
httpHandleReboot();
|
||||
}
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -709,16 +709,15 @@ void webHandleMqttConfig()
|
||||
DynamicJsonDocument settings(256);
|
||||
mqttGetConfig(settings.to<JsonObject>());
|
||||
|
||||
// char buffer[127];
|
||||
String nodename = haspGetNodename();
|
||||
// char buffer[128];
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
|
||||
httpMessage += String(F("<form method='POST' action='/config'>"));
|
||||
httpMessage += F("<b>HASP Node Name</b> <i><small>(required. lowercase letters, numbers, and _ only)</small>"
|
||||
"</i><input id='haspGetNodename()' required name='haspGetNodename()' maxlength=15 "
|
||||
"</i><input id='name' required name='name' maxlength=15 "
|
||||
"placeholder='HASP Node Name' pattern='[a-z0-9_]*' value='");
|
||||
httpMessage += nodename;
|
||||
httpMessage += settings[FPSTR(F_CONFIG_NAME)].as<String>();
|
||||
httpMessage += F("'><br/><br/><b>Group Name</b> <i><small>(required)</small></i><input id='group' required "
|
||||
"name='group' maxlength=15 placeholder='Group Name' value='");
|
||||
httpMessage += settings[FPSTR(F_CONFIG_GROUP)].as<String>();
|
||||
@ -739,6 +738,7 @@ void webHandleMqttConfig()
|
||||
httpMessage +=
|
||||
PSTR("<p><form method='get' action='/config'><button type='submit'>Configuration</button></form></p>");
|
||||
|
||||
String nodename = haspGetNodename();
|
||||
webSendPage(nodename, httpMessage.length(), false);
|
||||
webServer.sendContent(httpMessage);
|
||||
httpMessage.clear();
|
||||
@ -754,7 +754,7 @@ void webHandleGuiConfig()
|
||||
DynamicJsonDocument settings(256);
|
||||
guiGetConfig(settings.to<JsonObject>());
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -824,7 +824,7 @@ void webHandleWifiConfig()
|
||||
DynamicJsonDocument settings(256);
|
||||
wifiGetConfig(settings.to<JsonObject>());
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -861,7 +861,7 @@ void webHandleHttpConfig()
|
||||
DynamicJsonDocument settings(256);
|
||||
httpGetConfig(settings.to<JsonObject>());
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -895,7 +895,7 @@ void webHandleDebugConfig()
|
||||
DynamicJsonDocument settings(256);
|
||||
debugGetConfig(settings.to<JsonObject>());
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -924,7 +924,7 @@ void webHandleHaspConfig()
|
||||
DynamicJsonDocument settings(256);
|
||||
haspGetConfig(settings.to<JsonObject>());
|
||||
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String nodename = haspGetNodename();
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
@ -1058,7 +1058,7 @@ void httpHandleEspFirmware()
|
||||
if(!httpIsAuthenticated(F("espfirmware"))) return;
|
||||
|
||||
String nodename = haspGetNodename();
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
httpMessage += String(F("<h1>"));
|
||||
@ -1082,7 +1082,7 @@ void httpHandleResetConfig()
|
||||
|
||||
bool resetConfirmed = webServer.arg(F("confirm")) == F("yes");
|
||||
String nodename = haspGetNodename();
|
||||
// char buffer[127];
|
||||
// char buffer[128];
|
||||
String httpMessage((char *)0);
|
||||
httpMessage.reserve(1500);
|
||||
|
||||
@ -1141,7 +1141,7 @@ void httpSetup(const JsonObject & settings)
|
||||
// load editor
|
||||
webServer.on(F("/edit"), HTTP_GET, []() {
|
||||
if(!handleFileRead("/edit.htm")) {
|
||||
char mimetype[127];
|
||||
char mimetype[128];
|
||||
sprintf(mimetype, PSTR("text/plain"));
|
||||
webServer.send_P(404, mimetype, PSTR("FileNotFound"));
|
||||
}
|
||||
@ -1154,14 +1154,14 @@ void httpSetup(const JsonObject & settings)
|
||||
// get heap status, analog input value and all GPIO statuses in one json call
|
||||
/*webServer.on(F("/all"), HTTP_GET, []() {
|
||||
String json;
|
||||
json.reserve(127);
|
||||
json.reserve(128);
|
||||
json += F("{\"heap\":");
|
||||
json += String(ESP.getFreeHeap());
|
||||
json += F(", \"analog\":");
|
||||
json += String(analogRead(A0));
|
||||
json += F("}");
|
||||
|
||||
char mimetype[127];
|
||||
char mimetype[128];
|
||||
sprintf(mimetype, PSTR("text/json"));
|
||||
webServer.send(200, mimetype, json);
|
||||
json.clear();
|
||||
|
@ -27,7 +27,7 @@ void debugPrintln(String & debugText)
|
||||
void debugPrintln(const __FlashStringHelper * debugText)
|
||||
{
|
||||
String buffer((char *)0);
|
||||
buffer.reserve(127);
|
||||
buffer.reserve(128);
|
||||
buffer = debugText;
|
||||
debugPrintln(buffer);
|
||||
}
|
||||
@ -37,13 +37,13 @@ void debugPrintln(const char * debugText)
|
||||
serialPrintln(debugText);
|
||||
|
||||
#if HASP_USE_SYSLOG != 0
|
||||
syslogSend(0, debugText.c_str());
|
||||
syslogSend(0, debugText);
|
||||
#endif
|
||||
}
|
||||
|
||||
void errorPrintln(String debugText)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
sprintf_P(buffer, debugText.c_str(), PSTR("[ERROR] "));
|
||||
serialPrintln(buffer);
|
||||
|
||||
@ -54,7 +54,7 @@ void errorPrintln(String debugText)
|
||||
|
||||
void warningPrintln(String debugText)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
sprintf_P(buffer, debugText.c_str(), PSTR("[WARNING] "));
|
||||
serialPrintln(buffer);
|
||||
|
||||
|
@ -31,7 +31,7 @@ void mdnsStart()
|
||||
/*if(debugTelnetEnabled) {
|
||||
}
|
||||
return;
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%u.%u.%u"), HASP_VERSION_MAJOR, HASP_VERSION_MINOR,
|
||||
HASP_VERSION_REVISION);
|
||||
MDNS.addServiceTxt(hasp2Node, "tcp", "app_version", buffer); */
|
||||
|
@ -99,30 +99,39 @@ void IRAM_ATTR mqttSendState(const char * subtopic, const char * payload)
|
||||
// light = 0/1
|
||||
// brightness = 100
|
||||
|
||||
char mqttTopic[127];
|
||||
char mqttPayload[127 * 5];
|
||||
char mqttTopic[128];
|
||||
char mqttPayload[128 * 5];
|
||||
|
||||
snprintf_P(mqttTopic, sizeof(mqttTopic), PSTR("%sstate/%s"), mqttNodeTopic.c_str(), subtopic);
|
||||
mqttClient.publish(mqttTopic, payload);
|
||||
debugPrintln(String(F("MQTT OUT: ")) + String(mqttTopic) + " = " + String(payload));
|
||||
|
||||
String msg((char *)0);
|
||||
msg.reserve(512);
|
||||
msg = F("MQTT OUT: ");
|
||||
msg += mqttTopic;
|
||||
msg += " = ";
|
||||
msg += payload;
|
||||
debugPrintln(msg);
|
||||
|
||||
// as json
|
||||
snprintf_P(mqttTopic, sizeof(mqttTopic), PSTR("%sstate/json"), mqttNodeTopic.c_str());
|
||||
snprintf_P(mqttPayload, sizeof(mqttPayload), PSTR("{\"%s\":\"%s\"}"), subtopic, payload);
|
||||
mqttClient.publish(mqttTopic, mqttPayload);
|
||||
debugPrintln(String(F("MQTT OUT: ")) + String(mqttTopic) + " = " + String(mqttPayload));
|
||||
// snprintf_P(mqttTopic, sizeof(mqttTopic), PSTR("%sstate/json"), mqttNodeTopic.c_str());
|
||||
// snprintf_P(mqttPayload, sizeof(mqttPayload), PSTR("{\"%s\":\"%s\"}"), subtopic, payload);
|
||||
// mqttClient.publish(mqttTopic, mqttPayload);
|
||||
// debugPrintln(String(F("MQTT OUT: ")) + String(mqttTopic) + " = " + String(mqttPayload));
|
||||
}
|
||||
|
||||
void IRAM_ATTR mqttSendNewValue(uint8_t pageid, uint8_t btnid, const char * attribute, String txt)
|
||||
{
|
||||
char subtopic[127];
|
||||
snprintf_P(subtopic, sizeof(subtopic), PSTR("p[%u].b[%u].%s"), pageid, btnid, attribute);
|
||||
mqttSendState(subtopic, txt.c_str());
|
||||
char topic[128];
|
||||
char payload[128];
|
||||
snprintf_P(topic, sizeof(topic), PSTR("json"));
|
||||
snprintf_P(payload, sizeof(payload), PSTR("{\"p[%u].b[%u].%s\":\"%s\"}"), pageid, btnid, attribute, txt.c_str());
|
||||
mqttSendState(topic, payload);
|
||||
}
|
||||
|
||||
void IRAM_ATTR mqttSendNewValue(uint8_t pageid, uint8_t btnid, int32_t val)
|
||||
{
|
||||
char value[127];
|
||||
char value[128];
|
||||
itoa(val, value, 10);
|
||||
mqttSendNewValue(pageid, btnid, "val", value);
|
||||
}
|
||||
@ -134,14 +143,14 @@ void IRAM_ATTR mqttSendNewValue(uint8_t pageid, uint8_t btnid, String txt)
|
||||
|
||||
void IRAM_ATTR mqttSendNewEvent(uint8_t pageid, uint8_t btnid, char * value) // int32_t val)
|
||||
{
|
||||
// char value[127];
|
||||
// char value[128];
|
||||
// itoa(val, value, 10);
|
||||
mqttSendNewValue(pageid, btnid, "event", value);
|
||||
}
|
||||
|
||||
void mqttStatusUpdate()
|
||||
{ // Periodically publish a JSON string indicating system status
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), "%u.%u.%u", HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION);
|
||||
|
||||
String mqttStatusPayload((char *)0);
|
||||
@ -278,7 +287,7 @@ void mqttCallback(char * topic, byte * payload, unsigned int length)
|
||||
|
||||
if(strTopic == F("status") &&
|
||||
strPayload == F("OFF")) { // catch a dangling LWT from a previous connection if it appears
|
||||
char topicBuffer[127];
|
||||
char topicBuffer[128];
|
||||
snprintf_P(topicBuffer, sizeof(topicBuffer), PSTR("%sstatus"), mqttNodeTopic.c_str());
|
||||
mqttClient.publish(topicBuffer, "ON", true);
|
||||
|
||||
@ -294,12 +303,12 @@ void mqttReconnect()
|
||||
static uint8_t mqttReconnectCount = 0;
|
||||
bool mqttFirstConnect = true;
|
||||
String nodeName((char *)0);
|
||||
nodeName.reserve(127);
|
||||
nodeName.reserve(128);
|
||||
nodeName = haspGetNodename();
|
||||
char topicBuffer[127];
|
||||
char topicBuffer[128];
|
||||
|
||||
// Generate an MQTT client ID as haspNode + our MAC address
|
||||
mqttClientId.reserve(127);
|
||||
mqttClientId.reserve(128);
|
||||
mqttClientId = nodeName;
|
||||
mqttClientId += F("-");
|
||||
mqttClientId += wifiGetMacAddress(3, "");
|
||||
@ -401,9 +410,9 @@ void mqttReconnect()
|
||||
|
||||
void mqttSetup(const JsonObject & settings)
|
||||
{
|
||||
mqttClientId.reserve(127);
|
||||
mqttNodeTopic.reserve(127);
|
||||
mqttGroupTopic.reserve(127);
|
||||
mqttClientId.reserve(128);
|
||||
mqttNodeTopic.reserve(128);
|
||||
mqttGroupTopic.reserve(128);
|
||||
|
||||
mqttSetConfig(settings);
|
||||
|
||||
@ -437,7 +446,7 @@ bool mqttIsConnected()
|
||||
void mqttStop()
|
||||
{
|
||||
if(mqttClient.connected()) {
|
||||
char topicBuffer[127];
|
||||
char topicBuffer[128];
|
||||
|
||||
snprintf_P(topicBuffer, sizeof(topicBuffer), PSTR("%sstatus"), mqttNodeTopic.c_str());
|
||||
mqttClient.publish(topicBuffer, "OFF");
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
void spiffsList()
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
debugPrintln(PSTR("FILE: Listing files on the internal flash:"));
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
@ -41,7 +41,7 @@ void spiffsSetup()
|
||||
// no SPIFFS settings, as settings depend on SPIFFS
|
||||
|
||||
#if HASP_USE_SPIFFS
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
if(!SPIFFS.begin()) {
|
||||
#else
|
||||
@ -62,7 +62,7 @@ void spiffsLoop()
|
||||
String spiffsFormatBytes(size_t bytes)
|
||||
{
|
||||
String output((char *)0);
|
||||
output.reserve(127);
|
||||
output.reserve(128);
|
||||
|
||||
if(bytes < 1024) {
|
||||
output += bytes;
|
||||
|
@ -28,7 +28,7 @@ void tftStop()
|
||||
|
||||
void tftOffsetInfo(uint8_t pin, uint8_t x_offset, uint8_t y_offset)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
if(x_offset != 0) {
|
||||
sprintf_P(buffer, PSTR("TFT: R%u x offset = %i"), pin, x_offset);
|
||||
debugPrintln(buffer);
|
||||
@ -42,7 +42,7 @@ void tftOffsetInfo(uint8_t pin, uint8_t x_offset, uint8_t y_offset)
|
||||
void tftPinInfo(String pinfunction, int8_t pin)
|
||||
{
|
||||
if(pin != -1) {
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
sprintf_P(buffer, PSTR("TFT: %s = D%i (GPIO %i)"), pinfunction.c_str(), getPinName(pin), pin);
|
||||
debugPrintln(buffer);
|
||||
}
|
||||
@ -51,7 +51,7 @@ void tftPinInfo(String pinfunction, int8_t pin)
|
||||
void tftShowConfig(TFT_eSPI & tft)
|
||||
{
|
||||
setup_t tftSetup;
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
tft.getSetup(tftSetup);
|
||||
|
||||
sprintf_P(buffer, PSTR("TFT: TFT_eSPI ver = %s"), tftSetup.version.c_str());
|
||||
|
@ -46,7 +46,7 @@ String wifiGetMacAddress(int start, const char * seperator)
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
String cMac((char *)0);
|
||||
cMac.reserve(127);
|
||||
cMac.reserve(128);
|
||||
|
||||
for(int i = start; i < 6; ++i) {
|
||||
if(mac[i] < 0x10) cMac += "0";
|
||||
@ -60,7 +60,7 @@ String wifiGetMacAddress(int start, const char * seperator)
|
||||
void wifiConnected(IPAddress ipaddress)
|
||||
{
|
||||
bool isConnected = WiFi.status() == WL_CONNECTED;
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("WIFI: Received IP address %s"), ipaddress.toString().c_str());
|
||||
debugPrintln(buffer);
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("WIFI: Connected = %s"), isConnected ? PSTR("yes") : PSTR("no"));
|
||||
@ -76,7 +76,7 @@ void wifiConnected(IPAddress ipaddress)
|
||||
|
||||
void wifiDisconnected(const char * ssid, uint8_t reason)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("WIFI: Disconnected from %s (Reason: %d)"), ssid, reason);
|
||||
debugPrintln(buffer);
|
||||
WiFi.reconnect();
|
||||
@ -84,7 +84,7 @@ void wifiDisconnected(const char * ssid, uint8_t reason)
|
||||
|
||||
void wifiSsidConnected(const char * ssid)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("WIFI: Connected to SSID %s. Requesting IP..."), ssid);
|
||||
debugPrintln(buffer);
|
||||
}
|
||||
@ -130,7 +130,7 @@ void wifiSTADisconnected(WiFiEventStationModeDisconnected info)
|
||||
|
||||
void wifiSetup(JsonObject settings)
|
||||
{
|
||||
char buffer[127];
|
||||
char buffer[128];
|
||||
|
||||
wifiSetConfig(settings);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user