\n";
-const char ALERT_ERROR[] PROGMEM = "
\n";
-const char DIV_E[] PROGMEM = "
\n";
-const char BAUD_RATE[] PROGMEM = "BAUD_RATE";
-const char SLEEP_MODE[] PROGMEM = "SLEEP_MODE";
-const char NETWORK[] PROGMEM = "NETWORK";
-const char REFRESH_1_5[] PROGMEM ="
";
-#define REFRESH5(ip) web_interface.add4send(REFRESH_1_5);web_interface.add4send(ip);web_interface.add4send(REFRESH_2);
-#define REFRESH15(ip) web_interface.add4send(REFRESH_1_15);web_interface.add4send(ip);web_interface.add4send(REFRESH_2);
-#define MSG_SUCCESS(msg) web_interface.add4send(ALERT_SUCCESS);web_interface.add4send(msg);web_interface.add4send(DIV_E);
-#define MSG_ERROR(msg) web_interface.add4send(ALERT_ERROR);web_interface.add4send(msg);web_interface.add4send(DIV_E);
-#define OPTION(value, selected,content) web_interface.add4send(FORM_OPTION_1);web_interface.add4send(value);web_interface.add4send(FORM_OPTION_2);web_interface.add4send(selected);web_interface.add4send(FORM_OPTION_3);web_interface.add4send(content);web_interface.add4send(FORM_OPTION_4);
-#define SELECT_START(id,label,name) web_interface.add4send(FORM_INPUT_1);web_interface.add4send(id);web_interface.add4send(FORM_INPUT_2);web_interface.add4send(label);web_interface.add4send(FORM_SELECT_1);web_interface.add4send(name);web_interface.add4send(FORM_SELECT_2);web_interface.add4send(id);web_interface.add4send(FORM_SELECT_3);
-#define SELECT_START_ERROR(id,label,name) web_interface.add4send(FORM_INPUT_1_ERROR);web_interface.add4send(id);web_interface.add4send(FORM_INPUT_2);web_interface.add4send(label);web_interface.add4send(FORM_SELECT_1);web_interface.add4send(name);web_interface.add4send(FORM_SELECT_2);web_interface.add4send(id);web_interface.add4send(FORM_SELECT_3);
-#define SELECT_END web_interface.add4send(FORM_SELECT_END);
-#define INPUT_TEXT( id,label, name,placeholder,value) web_interface.add4send(FORM_INPUT_1);web_interface.add4send(id);web_interface.add4send(FORM_INPUT_2);web_interface.add4send(label);web_interface.add4send(FORM_INPUT_3);web_interface.add4send(id);web_interface.add4send(FORM_INPUT_4);web_interface.add4send(name);web_interface.add4send(FORM_INPUT_5);web_interface.add4send(placeholder);web_interface.add4send(FORM_INPUT_6);web_interface.add4send(value);web_interface.add4send(FORM_INPUT_7);
-#define INPUT_TEXT_ERROR( id,label, name,placeholder,value) web_interface.add4send(FORM_INPUT_1_ERROR);web_interface.add4send(id);web_interface.add4send(FORM_INPUT_2);web_interface.add4send(label);web_interface.add4send(FORM_INPUT_3);web_interface.add4send(id);web_interface.add4send(FORM_INPUT_4);web_interface.add4send(name);web_interface.add4send(FORM_INPUT_5);web_interface.add4send(placeholder);web_interface.add4send(FORM_INPUT_6);web_interface.add4send(value);web_interface.add4send(FORM_INPUT_7);
-#define LABEL( title, value) web_interface.add4send(LABEL_START); web_interface.add4send(title);web_interface.add4send(LABEL_COLOR);web_interface.add4send(value);web_interface.add4send(LABEL_END);web_interface.add4send(BR);
-#define LABEL_UNITS(title, value,units) web_interface.add4send(LABEL_START); web_interface.add4send(title);web_interface.add4send(LABEL_COLOR);web_interface.add4send(value);web_interface.add4send(units);web_interface.add4send(LABEL_END);web_interface.add4send(BR);
-#define TH_ENTRY(entry) web_interface.add4send(TH_S);web_interface.add4send(entry);web_interface.add4send(TH_E);
-#define THR_ENTRY(entry) web_interface.add4send(TH_R);web_interface.add4send(entry);web_interface.add4send(TH_E);
-#define TD_ENTRY(entry) web_interface.add4send(TD_S);web_interface.add4send(entry);web_interface.add4send(TD_E);
+const char ALERT_SUCCESS[] PROGMEM = "
\n";
+const char ALERT_ERROR[] PROGMEM = "
\n";
+const char DIV_E[] PROGMEM = "
\n";
+const char BAUD_RATE_ID[] PROGMEM = "BAUD_RATE";
+const char SLEEP_MODE_ID[] PROGMEM = "SLEEP_MODE";
+const char NETWORK_ID[] PROGMEM = "NETWORK";
+const char TITLE_SYSTEM[] PROGMEM = "System";
+const char CHIP_ID_TITLE[] PROGMEM = "Chip ID: ";
+const char CPU_FREQ_TITLE[] PROGMEM = "CPU Frequency: ";
+const char FREE_MEM_TITLE[] PROGMEM = "Free Memory: ";
+const char UNIT_HZ [] PROGMEM = "Hz";
+const char UNIT_OCTET[] PROGMEM = " octets";
+const char SDK_VERSION_TITLE[] PROGMEM = "SDK Version: ";
+const char HTTP_START[] PROGMEM = "http://";
+const char HTTP_MDNS_NAME[] PROGMEM = "mDNS name: ";
+const char HTTP_END[] PROGMEM = ".local";
+const char VALUE_11B[] PROGMEM = "11b";
+const char VALUE_11N[] PROGMEM = "11n";
+const char VALUE_11G[] PROGMEM = "11g";
+const char NETWORK_TITLE[] PROGMEM = "Network: ";
+const char VALUE_NONE[] PROGMEM = "None";
+const char VALUE_LIGHT[] PROGMEM = "Light";
+const char VALUE_MODEM[] PROGMEM = "Modem";
+const char SLEEP_MODE_TITLE[] PROGMEM = "Sleep mode: ";
+const char BOOT_VERSION_TITLE[] PROGMEM = "Boot version: ";
+const char BAUD_RATE_TITLE[] PROGMEM = "Baud rate: ";
+const char ACCESS_POINT_TITLE[] PROGMEM = "Access Point";
+const char VALUE_ENABLED[] PROGMEM = " (enabled)";
+const char VALUE_DISABLED[] PROGMEM = " (disabled)";
+const char MAC_ADDRESS_TITLE[] PROGMEM = "Mac address: ";
+const char MAC_LABEL[] PROGMEM = "Mac";
+const char SSID_TITLE[] PROGMEM = "SSID: ";
+const char VALUE_NO[] PROGMEM = "No";
+const char VALUE_YES[] PROGMEM = "Yes";
+const char VISIBLE_TITLE[] PROGMEM = "Visible: ";
+const char CHANNEL_TITLE[] PROGMEM = "Channel: ";
+const char STATUS_TITLE[] PROGMEM = "Status: ";
+const char VALUE_WEP[] PROGMEM = "WEP";
+const char VALUE_WPA[] PROGMEM = "WPA";
+const char VALUE_WPA2[] PROGMEM = "WPA2";
+const char VALUE_WPAWPA2[] PROGMEM = "WPA/WPA2";
+const char VALUE_MAX[] PROGMEM = "MAX";
+const char AUTENTIFICATION_TITLE[] PROGMEM = "Authentification: ";
+const char MAX_CONNECTION_TITLE[] PROGMEM = "Maximum connections : ";
+const char VALUE_STARTED[] PROGMEM = "Started";
+const char VALUE_STOPPED[] PROGMEM = "Stopped";
+const char DHCP_SERVER_TITLE[] PROGMEM = "DHCP Server: ";
+const char IP_TITLE[] PROGMEM = "IP: ";
+const char GATEWAY_TITLE[] PROGMEM = "Gateway: ";
+const char SUBNET_TITLE[] PROGMEM = "Subnet: ";
+const char CONNECTED_STATIONS[] PROGMEM = " connected station(s)";
+const char NUMBER_LABEL[] PROGMEM = "#";
+const char IP_LABEL[] PROGMEM = "IP";
+const char STATION_TITLE[] PROGMEM = "Station";
+const char CONNECTION_TO_TITLE[] PROGMEM = "Connection to: ";
+const char VALUE_CONNECTED[] PROGMEM = "Connected";
+const char VALUE_NO_SSID[] PROGMEM = "SSID not Available!";
+const char VALUE_CONNECTION_FAILED[] PROGMEM = "Connection failed!";
+const char VALUE_CONNECTION_FAILED2[] PROGMEM = "Connection failed! (Wrong Password)";
+const char VALUE_IDLE[] PROGMEM = "Idle";
+const char VALUE_DISCONNECTED[] PROGMEM = "Disconnected";
+const char DHCP_CLIENT_TITLE[] PROGMEM = "DHCP Client: ";
+const char ERROR_QUERY[] PROGMEM = "Error in query!!";
+const char ERROR_WRITING_CHANGES[] PROGMEM = "Error in writing changes!!";
+const char SAVED_CHANGES[] PROGMEM = "Change saved, restarting module...";
+const char SUBMIT_ID[] PROGMEM = "SUBMIT";
+const char SYS_1_ID[] PROGMEM = "SYS1";
+const char BAUD_RATE_NAME[] PROGMEM = "Baud rate";
+const char NETWORK_NAME[] PROGMEM = "Network";
+const char SLEEP_MODE_NAME[] PROGMEM = "Sleep Mode";
+const char VALUE_9600[] PROGMEM = "9600";
+const char VALUE_19200[] PROGMEM = "19200";
+const char VALUE_38400[] PROGMEM = "38400";
+const char VALUE_57600[] PROGMEM = "57600";
+const char VALUE_115200[] PROGMEM = "115200";
+const char VALUE_230400[] PROGMEM = "230400";
+const char SYS_2_ID[] PROGMEM = "SYS2";
+const char SYS_3_ID[] PROGMEM = "SYS3";
+const char VALUE_SELECTED[] PROGMEM = "selected";
+
+#define MSG_SUCCESS(msg) web_interface.add4send(PROGMEM2CHAR(ALERT_SUCCESS));web_interface.add4send(msg);web_interface.add4send(PROGMEM2CHAR(DIV_E));
+#define MSG_ERROR(msg) web_interface.add4send(PROGMEM2CHAR(ALERT_ERROR));web_interface.add4send(msg);web_interface.add4send(PROGMEM2CHAR(DIV_E));
+#define OPTION(value, selected,content) web_interface.add4send(PROGMEM2CHAR(FORM_OPTION_1));web_interface.add4send(value);web_interface.add4send(PROGMEM2CHAR(FORM_OPTION_2));web_interface.add4send(selected);web_interface.add4send(PROGMEM2CHAR(FORM_OPTION_3));web_interface.add4send(content);web_interface.add4send(PROGMEM2CHAR(FORM_OPTION_4));
+#define SELECT_START(id,label,name) web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_1));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_2));web_interface.add4send(label);web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_1));web_interface.add4send(name);web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_2));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_3));
+#define SELECT_START_ERROR(id,label,name) web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_1_ERROR));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_2));web_interface.add4send(label);web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_1));web_interface.add4send(name);web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_2));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_3));
+#define SELECT_END web_interface.add4send(PROGMEM2CHAR(FORM_SELECT_END));
+#define INPUT_TEXT( id,label, name,placeholder,value) web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_1));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_2));web_interface.add4send(label);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_3));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_4));web_interface.add4send(name);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_5));web_interface.add4send(placeholder);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_6));web_interface.add4send(value);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_7));
+#define INPUT_TEXT_ERROR( id,label, name,placeholder,value) web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_1_ERROR));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_2));web_interface.add4send(label);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_3));web_interface.add4send(id);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_4));web_interface.add4send(name);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_5));web_interface.add4send(placeholder);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_6));web_interface.add4send(value);web_interface.add4send(PROGMEM2CHAR(FORM_INPUT_7));
+#define LABEL( title, value) web_interface.add4send(PROGMEM2CHAR(LABEL_START)); web_interface.add4send(title);web_interface.add4send(PROGMEM2CHAR(LABEL_COLOR));web_interface.add4send(value);web_interface.add4send(PROGMEM2CHAR(LABEL_END));web_interface.add4send(PROGMEM2CHAR(BR));
+#define LABEL_UNITS(title, value,units) web_interface.add4send(PROGMEM2CHAR(LABEL_START)); web_interface.add4send(title);web_interface.add4send(PROGMEM2CHAR(LABEL_COLOR));web_interface.add4send(value);web_interface.add4send(units);web_interface.add4send(PROGMEM2CHAR(LABEL_END));web_interface.add4send(PROGMEM2CHAR(BR));
+#define TH_ENTRY(entry) web_interface.add4send(PROGMEM2CHAR(TH_S));web_interface.add4send(entry);web_interface.add4send(PROGMEM2CHAR(TH_E));
+#define THR_ENTRY(entry) web_interface.add4send(PROGMEM2CHAR(TH_R));web_interface.add4send(entry);web_interface.add4send(PROGMEM2CHAR(TH_E));
+#define TD_ENTRY(entry) web_interface.add4send(PROGMEM2CHAR(TD_S));web_interface.add4send(entry);web_interface.add4send(PROGMEM2CHAR(TD_E));
+
+char* ICACHE_FLASH_ATTR strncpy_P(char* dest, const char* src, size_t size) {
+ const char* read = src;
+ char* write = dest;
+ char ch = '.';
+ while (size > 0 && ch != '\0')
+ {
+ ch = pgm_read_byte(read++);
+ *write++ = ch;
+ size--;
+ }
+
+ return dest;
+}
+
+char * progmem2char(const char* src)
+{
+ static char buffer[300];
+ strcpy_P(buffer,src);
+ return buffer;
+}
//cannot put it in class then cast it as std::function
so put outside
void handle_web_interface_root()
@@ -132,82 +224,82 @@ void handle_web_interface_root()
uint8_t mac [WL_MAC_ADDR_LENGTH];
if (wifi_get_opmode()==WIFI_STA ) IP=wifi_config.ip2str(WiFi.localIP());
else IP=wifi_config.ip2str(WiFi.softAPIP());
- web_interface.add4send(PAGE_HEAD_1);
- web_interface.add4send(PAGE_HEAD_2);
+ web_interface.add4send(PROGMEM2CHAR(PAGE_HEAD_1));
+ web_interface.add4send(PROGMEM2CHAR(PAGE_HEAD_2));
//top bar
- web_interface.add4send(NAV_START);
- web_interface.add4send(NAV_LEFT_PART1) ;
- web_interface.add4send(NAV_ELEMENT_ACTIVE) ;
- web_interface.add4send(NAV_LEFT_PART2a );
+ web_interface.add4send(PROGMEM2CHAR(NAV_START));
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART1)) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_ELEMENT_ACTIVE)) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART2a) );
web_interface.add4send(IP.c_str());
- web_interface.add4send(NAV_LEFT_PART2b );
- web_interface.add4send(NAV_LEFT_PART3a );
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART2b));
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART3a));
web_interface.add4send(IP.c_str());
- web_interface.add4send(NAV_LEFT_PART3b) ;
- web_interface.add4send(NAV_RIGHT_PART) ;
- web_interface.add4send(NAV_END) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART3b));
+ web_interface.add4send(PROGMEM2CHAR(NAV_RIGHT_PART)) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_END));
//system part
- web_interface.add4send(PANEL_TOP);
- web_interface.add4send(F("System"));
- web_interface.add4send(PANEL_START);
- LABEL(F("Chip ID: "),String(system_get_chip_id()).c_str())
- LABEL_UNITS(F("CPU Frequency: "),String(system_get_cpu_freq()).c_str(),F("Hz"))
- LABEL_UNITS(F("Free Memory: "),String(system_get_free_heap_size()).c_str(),F(" octets"))
- LABEL(F("SDK Version: "),system_get_sdk_version())
+ web_interface.add4send(PROGMEM2CHAR(PANEL_TOP));
+ web_interface.add4send(PROGMEM2CHAR(TITLE_SYSTEM));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_START));
+ LABEL(PROGMEM2CHAR(CHIP_ID_TITLE),String(system_get_chip_id()).c_str())
+ LABEL_UNITS(PROGMEM2CHAR(CPU_FREQ_TITLE),String(system_get_cpu_freq()).c_str(),PROGMEM2CHAR(UNIT_HZ))
+ LABEL_UNITS(PROGMEM2CHAR(FREE_MEM_TITLE),String(system_get_free_heap_size()).c_str(),PROGMEM2CHAR(UNIT_OCTET))
+ LABEL(PROGMEM2CHAR(SDK_VERSION_TITLE),system_get_sdk_version())
#ifdef MDNS_FEATURE
- sstatus = F("http://");
- sstatus+=LOCAL_NAME;
- LABEL_UNITS(F("mDNS name: "),sstatus.c_str(),F(".local"))
+ sstatus = PROGMEM2CHAR(HTTP_START);
+ sstatus+=PROGMEM2CHAR(LOCAL_NAME);
+ LABEL_UNITS(PROGMEM2CHAR(HTTP_MDNS_NAME),sstatus.c_str(),PROGMEM2CHAR(HTTP_END))
#endif
istatus = wifi_get_phy_mode();
- if (istatus==PHY_MODE_11B) sstatus=F("11b");
- else if (istatus==PHY_MODE_11G) sstatus=F("11g");
- else sstatus=F("11n");
- LABEL(F("Network: "),sstatus.c_str())
+ if (istatus==PHY_MODE_11B) sstatus=PROGMEM2CHAR(VALUE_11B);
+ else if (istatus==PHY_MODE_11G) sstatus=PROGMEM2CHAR(VALUE_11G);
+ else sstatus=PROGMEM2CHAR(VALUE_11N);
+ LABEL(PROGMEM2CHAR(NETWORK_TITLE),sstatus.c_str())
istatus = wifi_get_sleep_type();
- if (istatus==NONE_SLEEP_T) sstatus=F("None");
- else if (istatus==LIGHT_SLEEP_T) sstatus=F("Light");
- else sstatus=F("Modem");
- LABEL(F("Sleep mode: "),sstatus.c_str())
- //LABEL(sbuf,F("Boot mode: "),String(system_get_boot_mode())) //no meaning so far
- LABEL(F("Boot version: "),String(system_get_boot_version()).c_str())
+ if (istatus==NONE_SLEEP_T) sstatus=PROGMEM2CHAR(VALUE_NONE);
+ else if (istatus==LIGHT_SLEEP_T) sstatus=PROGMEM2CHAR(VALUE_LIGHT);
+ else sstatus=PROGMEM2CHAR(VALUE_MODEM);
+ LABEL(PROGMEM2CHAR(SLEEP_MODE_TITLE),sstatus.c_str())
+ //LABEL(sbuf,"Boot mode: ",String(system_get_boot_mode())) //no meaning so far
+ LABEL(PROGMEM2CHAR(BOOT_VERSION_TITLE),String(system_get_boot_version()).c_str())
istatus=0;
if (!CONFIG::read_buffer(EP_BAUD_RATE, (byte *)&istatus , BAUD_LENGH))istatus=0;
- LABEL(F("Baud rate: "),String(istatus).c_str())
- web_interface.add4send(PANEL_END);
+ LABEL(PROGMEM2CHAR(BAUD_RATE_TITLE),String(istatus).c_str())
+ web_interface.add4send(PROGMEM2CHAR(PANEL_END));
//access point
- web_interface.add4send(PANEL_TOP);
- web_interface.add4send(F("Access Point"));
- if(wifi_get_opmode()==WIFI_AP || wifi_get_opmode()==WIFI_AP_STA) web_interface.add4send(F(" (enabled)"));
- else web_interface.add4send(F(" (disabled)"));
- web_interface.add4send(PANEL_START);
- LABEL(F("Mac address: "),wifi_config.mac2str(WiFi.softAPmacAddress(mac)))
+ web_interface.add4send(PROGMEM2CHAR(PANEL_TOP));
+ web_interface.add4send(PROGMEM2CHAR(ACCESS_POINT_TITLE));
+ if(wifi_get_opmode()==WIFI_AP || wifi_get_opmode()==WIFI_AP_STA) web_interface.add4send(PROGMEM2CHAR(VALUE_ENABLED));
+ else web_interface.add4send(PROGMEM2CHAR(VALUE_DISABLED));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_START));
+ LABEL(PROGMEM2CHAR(MAC_ADDRESS_TITLE),wifi_config.mac2str(WiFi.softAPmacAddress(mac)))
if (wifi_get_opmode()==WIFI_AP || wifi_get_opmode()==WIFI_AP_STA)
{
if (wifi_softap_get_config(&apconfig))
{
- LABEL(F("SSID: "),(char *)(apconfig.ssid))
- if(apconfig.ssid_hidden==1)sstatus=F("No");
- else sstatus=F("Yes");
- LABEL(F("Visible: "),sstatus.c_str())
- LABEL(F("Channel: "),String(apconfig.channel).c_str())
- if (apconfig.authmode==AUTH_OPEN)sstatus=F("None");
- else if (apconfig.authmode==AUTH_WEP)sstatus=F("WEP");
- else if (apconfig.authmode==AUTH_WPA_PSK)sstatus=F("WPA");
- else if (apconfig.authmode==AUTH_WPA2_PSK)sstatus=F("WPA2");
- else if (apconfig.authmode==AUTH_WPA_WPA2_PSK)sstatus=F("WPA/WPA2");
- else sstatus=F("MAX"); //what is this one ? WPS ? Cannot find information
- LABEL(F("Authentification: "),sstatus.c_str())
- LABEL(F("Maximum connections : "),String(apconfig.max_connection).c_str())
+ LABEL(PROGMEM2CHAR(SSID_TITLE),(char *)(apconfig.ssid))
+ if(apconfig.ssid_hidden==1)sstatus=PROGMEM2CHAR(VALUE_NO);
+ else sstatus=PROGMEM2CHAR(VALUE_YES);
+ LABEL(PROGMEM2CHAR(VISIBLE_TITLE),sstatus.c_str())
+ LABEL(PROGMEM2CHAR(CHANNEL_TITLE),String(apconfig.channel).c_str())
+ if (apconfig.authmode==AUTH_OPEN)sstatus=PROGMEM2CHAR(VALUE_NONE);
+ else if (apconfig.authmode==AUTH_WEP)sstatus=PROGMEM2CHAR(VALUE_WEP);
+ else if (apconfig.authmode==AUTH_WPA_PSK)sstatus=PROGMEM2CHAR(VALUE_WPA);
+ else if (apconfig.authmode==AUTH_WPA2_PSK)sstatus=PROGMEM2CHAR(VALUE_WPA2);
+ else if (apconfig.authmode==AUTH_WPA_WPA2_PSK)sstatus=PROGMEM2CHAR(VALUE_WPAWPA2);
+ else sstatus=PROGMEM2CHAR(VALUE_MAX); //what is this one ? WPS ? Cannot find information
+ LABEL(PROGMEM2CHAR(AUTENTIFICATION_TITLE),sstatus.c_str())
+ LABEL(PROGMEM2CHAR(MAX_CONNECTION_TITLE),String(apconfig.max_connection).c_str())
}
- if (wifi_softap_dhcps_status()==DHCP_STARTED)sstatus=F("Started");
- else sstatus=F("Stopped");
- LABEL(F("DHCP Server: "),sstatus.c_str())
+ if (wifi_softap_dhcps_status()==DHCP_STARTED)sstatus=PROGMEM2CHAR(VALUE_STARTED);
+ else sstatus=PROGMEM2CHAR(VALUE_STOPPED);
+ LABEL(PROGMEM2CHAR(DHCP_SERVER_TITLE),sstatus.c_str())
if (wifi_get_ip_info(SOFTAP_IF,&info))
{
- LABEL(F("IP: "),wifi_config.ip2str(info.ip.addr))
- LABEL(F("Gateway: "),wifi_config.ip2str(info.gw.addr))
- LABEL(F("Subnet: "),wifi_config.ip2str(info.netmask.addr))
+ LABEL(PROGMEM2CHAR(IP_TITLE),wifi_config.ip2str(info.ip.addr))
+ LABEL(PROGMEM2CHAR(GATEWAY_TITLE),wifi_config.ip2str(info.gw.addr))
+ LABEL(PROGMEM2CHAR(SUBNET_TITLE),wifi_config.ip2str(info.netmask.addr))
}
//List number of client
istatus = 0;
@@ -221,66 +313,66 @@ void handle_web_interface_root()
stationtmp = STAILQ_NEXT(stationtmp, next);
}
//start table as at least one connected
- web_interface.add4send(TABLE_START);
- web_interface.add4send(CAPTION_S);
+ web_interface.add4send(PROGMEM2CHAR(TABLE_START));
+ web_interface.add4send(PROGMEM2CHAR(CAPTION_S));
web_interface.add4send(String(istatus).c_str());
- web_interface.add4send(F(" connected station(s)"));
- web_interface.add4send(CAPTION_S);
- web_interface.add4send(THEAD_S);
- web_interface.add4send(TR_S);
- TH_ENTRY(F("#"))
- TH_ENTRY(F("Mac"))
- TH_ENTRY(F("IP"))
- web_interface.add4send(TR_E);
- web_interface.add4send(THEAD_E);
- web_interface.add4send(TBODY_S);
+ web_interface.add4send(PROGMEM2CHAR(CONNECTED_STATIONS));
+ web_interface.add4send(PROGMEM2CHAR(CAPTION_E));
+ web_interface.add4send(PROGMEM2CHAR(THEAD_S));
+ web_interface.add4send(PROGMEM2CHAR(TR_S));
+ TH_ENTRY(PROGMEM2CHAR(NUMBER_LABEL))
+ TH_ENTRY(PROGMEM2CHAR(MAC_LABEL))
+ TH_ENTRY(PROGMEM2CHAR(IP_LABEL))
+ web_interface.add4send(PROGMEM2CHAR(TR_E));
+ web_interface.add4send(PROGMEM2CHAR(THEAD_E));
+ web_interface.add4send(PROGMEM2CHAR(TBODY_S));
istatus=0;
while(station)
{
istatus++;
//display each client
- web_interface.add4send(TR_S);
+ web_interface.add4send(PROGMEM2CHAR(TR_S));
THR_ENTRY(String(istatus).c_str())
TD_ENTRY(wifi_config.mac2str(station->bssid))
- static char ipstr [16];
- if (0>sprintf(ipstr, IPSTR,IP2STR(&station->ip))) strcpy (ipstr, F("0.0.0.0"));
- TD_ENTRY(ipstr)
- web_interface.add4send(TR_E);
+ //static char ipstr [16];
+ //if (0>sprintf(ipstr, IPSTR,IP2STR(&station->ip))) strcpy (ipstr, "0.0.0.0");
+ TD_ENTRY(wifi_config.ip2str((byte *)&station->ip))
+ web_interface.add4send(PROGMEM2CHAR(TR_E));
station = STAILQ_NEXT(station, next);
}
- web_interface.add4send(TBODY_E);
+ web_interface.add4send(PROGMEM2CHAR(TBODY_E));
//close table
- web_interface.add4send(TABLE_END);
+ web_interface.add4send(PROGMEM2CHAR(TABLE_END));
wifi_softap_free_station_info();
}
- web_interface.add4send(PANEL_END);
- web_interface.add4send(PANEL_TOP);
- web_interface.add4send(F("Station"));
- if(wifi_get_opmode()==WIFI_STA || wifi_get_opmode()==WIFI_AP_STA) web_interface.add4send(F(" (enabled)"));
- else web_interface.add4send(F(" (disabled)"));
- web_interface.add4send(PANEL_START);
- LABEL(F("Mac address: "),wifi_config.mac2str(WiFi.macAddress(mac)))
+ web_interface.add4send(PROGMEM2CHAR(PANEL_END));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_TOP));
+ web_interface.add4send(PROGMEM2CHAR(STATION_TITLE));
+ if(wifi_get_opmode()==WIFI_STA || wifi_get_opmode()==WIFI_AP_STA) web_interface.add4send(PROGMEM2CHAR(VALUE_ENABLED));
+ else web_interface.add4send(PROGMEM2CHAR(VALUE_DISABLED));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_START));
+ LABEL(PROGMEM2CHAR(MAC_ADDRESS_TITLE),wifi_config.mac2str(WiFi.macAddress(mac)))
if(wifi_get_opmode()==WIFI_STA || wifi_get_opmode()==WIFI_AP_STA)
{
- LABEL(F("Connection to: "),WiFi.SSID())
- LABEL(F("Channel: "),String(wifi_get_channel()).c_str())
+ LABEL(PROGMEM2CHAR(CONNECTION_TO_TITLE),WiFi.SSID())
+ LABEL(PROGMEM2CHAR(CHANNEL_TITLE),String(wifi_get_channel()).c_str())
istatus = wifi_station_get_connect_status();
- if (istatus==STATION_GOT_IP) sstatus=F("Connected");
- else if (istatus==STATION_NO_AP_FOUND) sstatus=F("SSID not Available!");
- else if (istatus==STATION_CONNECT_FAIL) sstatus=F("Connecion failed!");
- else if (istatus==STATION_WRONG_PASSWORD) sstatus=F("Connecion failed! (Wrong Password)");
- else if (istatus==STATION_IDLE) sstatus=F("Idle");//should not happen
- else sstatus=F("Disconnected");
- LABEL(F("Status: "),sstatus.c_str())
- if (wifi_station_dhcpc_status()==DHCP_STARTED)sstatus=F("Started");
- else sstatus=F("Stopped");
- LABEL(F("DHCP Client: "),sstatus.c_str())
- LABEL(F("IP: "),wifi_config.ip2str(WiFi.localIP()))
- LABEL(F("Gateway: "),wifi_config.ip2str(WiFi.gatewayIP()))
- LABEL(F("Subnet: "),wifi_config.ip2str(WiFi.subnetMask()))
+ if (istatus==STATION_GOT_IP) sstatus=PROGMEM2CHAR(VALUE_CONNECTED);
+ else if (istatus==STATION_NO_AP_FOUND) sstatus=PROGMEM2CHAR(VALUE_NO_SSID);
+ else if (istatus==STATION_CONNECT_FAIL) sstatus=PROGMEM2CHAR(VALUE_CONNECTION_FAILED);
+ else if (istatus==STATION_WRONG_PASSWORD) sstatus=PROGMEM2CHAR(VALUE_CONNECTION_FAILED2);
+ else if (istatus==STATION_IDLE) sstatus=PROGMEM2CHAR(VALUE_IDLE);//should not happen
+ else sstatus=PROGMEM2CHAR(VALUE_DISCONNECTED);
+ LABEL(PROGMEM2CHAR(STATUS_TITLE),sstatus.c_str())
+ if (wifi_station_dhcpc_status()==DHCP_STARTED)sstatus=PROGMEM2CHAR(VALUE_STARTED);
+ else sstatus=PROGMEM2CHAR(VALUE_STOPPED);
+ LABEL(PROGMEM2CHAR(DHCP_CLIENT_TITLE),sstatus.c_str())
+ LABEL(PROGMEM2CHAR(IP_TITLE),wifi_config.ip2str(WiFi.localIP()))
+ LABEL(PROGMEM2CHAR(GATEWAY_TITLE),wifi_config.ip2str(WiFi.gatewayIP()))
+ LABEL(PROGMEM2CHAR(SUBNET_TITLE),wifi_config.ip2str(WiFi.subnetMask()))
}
- web_interface.add4send(PANEL_END);
- web_interface.add4send(PAGE_BOTTOM);
+ web_interface.add4send(PROGMEM2CHAR(PANEL_END));
+ web_interface.add4send(PROGMEM2CHAR(PAGE_BOTTOM));
web_interface.flushbuffer();
}
@@ -295,25 +387,25 @@ void handle_web_interface_configSys()
byte bnetwork=0;
byte bsleepmode=0;
//check is it is a submission or a display
- if (web_interface.WebServer.hasArg(F("SUBMIT")))
+ if (web_interface.WebServer.hasArg(PROGMEM2CHAR(SUBMIT_ID)))
{ //is there a correct list of values?
- if (web_interface.WebServer.hasArg(BAUD_RATE) && web_interface.WebServer.hasArg(SLEEP_MODE)&& web_interface.WebServer.hasArg(NETWORK))
+ if (web_interface.WebServer.hasArg(PROGMEM2CHAR(BAUD_RATE_ID)) && web_interface.WebServer.hasArg(PROGMEM2CHAR(SLEEP_MODE_ID))&& web_interface.WebServer.hasArg(PROGMEM2CHAR(NETWORK_ID)))
{ //is each value correct ?
- ibaud = atoi(web_interface.WebServer.arg(BAUD_RATE).c_str());
- bnetwork = atoi(web_interface.WebServer.arg(NETWORK).c_str());
- bsleepmode = atoi(web_interface.WebServer.arg(SLEEP_MODE).c_str());
+ ibaud = atoi(web_interface.WebServer.arg(PROGMEM2CHAR(BAUD_RATE_ID)).c_str());
+ bnetwork = atoi(web_interface.WebServer.arg(PROGMEM2CHAR(NETWORK_ID)).c_str());
+ bsleepmode = atoi(web_interface.WebServer.arg(PROGMEM2CHAR(SLEEP_MODE_ID)).c_str());
if (!(ibaud==9600 || ibaud==19200|| ibaud==38400|| ibaud==57600|| ibaud==115200|| ibaud==230400) ||
!(bnetwork==PHY_MODE_11B||bnetwork==PHY_MODE_11G||bnetwork==PHY_MODE_11N) ||
!(bsleepmode==NONE_SLEEP_T ||bsleepmode==LIGHT_SLEEP_T ||bsleepmode==MODEM_SLEEP_T ))
{
msg_alert_error=true;
- smsg=F("Error in query!!");
+ smsg=PROGMEM2CHAR(ERROR_QUERY);
}
}
else
{
msg_alert_error=true;
- smsg=F("Error in query!!");
+ smsg=PROGMEM2CHAR(ERROR_QUERY);
}
//if no error apply the changes
if (msg_alert_error!=true)
@@ -321,13 +413,13 @@ void handle_web_interface_configSys()
if(!CONFIG::write_buffer(EP_BAUD_RATE,(const byte *)&ibaud,BAUD_LENGH) ||!CONFIG::write_byte(EP_PHY_MODE,bnetwork) ||!CONFIG::write_byte(EP_SLEEP_MODE,bsleepmode))
{
msg_alert_error=true;
- smsg=F("Error in writing changes!!");
+ smsg=PROGMEM2CHAR(ERROR_WRITING_CHANGES);
}
else
if (!msg_alert_error)
{
msg_alert_success=true;
- smsg=F("Change saved, restarting module...");
+ smsg=PROGMEM2CHAR(SAVED_CHANGES);
}
}
@@ -335,81 +427,81 @@ void handle_web_interface_configSys()
if (!CONFIG::read_buffer(EP_BAUD_RATE, (byte *)&istatus , BAUD_LENGH))istatus=0;
if (wifi_get_opmode()==WIFI_STA ) stmp=wifi_config.ip2str(WiFi.localIP());
else stmp=wifi_config.ip2str(WiFi.softAPIP());
- web_interface.add4send(PAGE_HEAD_1);
- web_interface.add4send(PAGE_HEAD_2);
- web_interface.add4send(NAV_START) ;
- web_interface.add4send(NAV_LEFT_PART1) ;
- web_interface.add4send(NAV_LEFT_PART2a) ;
+ web_interface.add4send(PROGMEM2CHAR(PAGE_HEAD_1));
+ web_interface.add4send(PROGMEM2CHAR(PAGE_HEAD_2));
+ web_interface.add4send(PROGMEM2CHAR(NAV_START)) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART1)) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART2a)) ;
web_interface.add4send(stmp.c_str());
- web_interface.add4send(NAV_LEFT_PART2b);
- web_interface.add4send(NAV_ELEMENT_ACTIVE) ;
- web_interface.add4send(NAV_LEFT_PART3a) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART2b));
+ web_interface.add4send(PROGMEM2CHAR(NAV_ELEMENT_ACTIVE)) ;
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART3a));
web_interface.add4send(stmp.c_str());
- web_interface.add4send(NAV_LEFT_PART3b) ;
- web_interface.add4send(NAV_RIGHT_PART) ;
- web_interface.add4send(NAV_END) ;
- web_interface.add4send(PANEL_TOP);
- web_interface.add4send(F("System"));
- web_interface.add4send(PANEL_START);
- web_interface.add4send(FORM_START);
+ web_interface.add4send(PROGMEM2CHAR(NAV_LEFT_PART3b));
+ web_interface.add4send(PROGMEM2CHAR(NAV_RIGHT_PART));
+ web_interface.add4send(PROGMEM2CHAR(NAV_END));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_TOP));
+ web_interface.add4send(PROGMEM2CHAR(TITLE_SYSTEM));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_START));
+ web_interface.add4send(PROGMEM2CHAR(FORM_START));
- SELECT_START(F("SYS1"),F("Baud rate"),F("BAUD_RATE"))
- if (istatus==9600)stmp = F("selected");
+ SELECT_START(PROGMEM2CHAR(SYS_1_ID),PROGMEM2CHAR(BAUD_RATE_NAME),PROGMEM2CHAR(BAUD_RATE_ID))
+ if (istatus==9600)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(F("9600"), stmp.c_str(),F("9600"))
- if (istatus==19200)stmp = F("selected");
+ OPTION(PROGMEM2CHAR(VALUE_9600), stmp.c_str(),PROGMEM2CHAR(VALUE_9600))
+ if (istatus==19200)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(F("19200"), stmp.c_str(),F("19200"))
- if (istatus==38400)stmp = F("selected");
+ OPTION(PROGMEM2CHAR(VALUE_19200), stmp.c_str(),PROGMEM2CHAR(VALUE_19200))
+ if (istatus==38400)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(F("38400"), stmp.c_str(),F("38400"))
- if (istatus==57600)stmp = F("selected");
+ OPTION(PROGMEM2CHAR(VALUE_38400), stmp.c_str(),PROGMEM2CHAR(VALUE_38400))
+ if (istatus==57600)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(F("57600"), stmp.c_str(),F("57600"))
- if (istatus==115200)stmp = F("selected");
+ OPTION(PROGMEM2CHAR(VALUE_57600), stmp.c_str(),PROGMEM2CHAR(VALUE_57600))
+ if (istatus==115200)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(F("115200"), stmp.c_str(),F("115200"))
- if (istatus==230400)stmp = F("selected");
+ OPTION(PROGMEM2CHAR(VALUE_115200), stmp.c_str(),PROGMEM2CHAR(VALUE_115200))
+ if (istatus==230400)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(F("230400"), stmp.c_str(),F("230400"))
+ OPTION(PROGMEM2CHAR(VALUE_230400), stmp.c_str(),PROGMEM2CHAR(VALUE_230400))
SELECT_END
- web_interface.add4send(BR);
+ web_interface.add4send(PROGMEM2CHAR(BR));
if (!CONFIG::read_byte(EP_PHY_MODE, &bflag ))bflag=0;
- SELECT_START(F("SYS2"),F("Network"),NETWORK)
- if (bflag==PHY_MODE_11B)stmp = F("selected");
+ SELECT_START(PROGMEM2CHAR(SYS_2_ID),PROGMEM2CHAR(NETWORK_NAME),PROGMEM2CHAR(NETWORK_ID))
+ if (bflag==PHY_MODE_11B)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(String(PHY_MODE_11B).c_str(), stmp.c_str(),F("11b"))
- if (bflag==PHY_MODE_11G)stmp = F("selected");
+ OPTION(String(PHY_MODE_11B).c_str(), stmp.c_str(),PROGMEM2CHAR(VALUE_11B))
+ if (bflag==PHY_MODE_11G)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(String(PHY_MODE_11G).c_str(), stmp.c_str(),F("11g"))
- if (bflag==PHY_MODE_11N)stmp = F("selected");
+ OPTION(String(PHY_MODE_11G).c_str(), stmp.c_str(),PROGMEM2CHAR(VALUE_11G))
+ if (bflag==PHY_MODE_11N)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
if (wifi_get_opmode()==WIFI_STA )
{
- OPTION(String(PHY_MODE_11N).c_str(), stmp.c_str(),F("11n"))
+ OPTION(String(PHY_MODE_11N).c_str(), stmp.c_str(),PROGMEM2CHAR(VALUE_11N))
}
SELECT_END
- web_interface.add4send(BR);
+ web_interface.add4send(PROGMEM2CHAR(BR));
if (!CONFIG::read_byte(EP_SLEEP_MODE, &bflag ))bflag=0;
- SELECT_START(F("SYS3"),F("Sleep Mode"),SLEEP_MODE)
- if (bflag==NONE_SLEEP_T)stmp = F("selected");
+ SELECT_START(PROGMEM2CHAR(SYS_3_ID),PROGMEM2CHAR(SLEEP_MODE_NAME),PROGMEM2CHAR(SLEEP_MODE_ID))
+ if (bflag==NONE_SLEEP_T)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(String(NONE_SLEEP_T).c_str(), stmp.c_str(),F("None"))
- if (bflag==LIGHT_SLEEP_T)stmp = F("selected");
+ OPTION(String(NONE_SLEEP_T).c_str(), stmp.c_str(),PROGMEM2CHAR(VALUE_NONE))
+ if (bflag==LIGHT_SLEEP_T)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(String(LIGHT_SLEEP_T).c_str(), stmp.c_str(),F("Light"))
- if (bflag==MODEM_SLEEP_T)stmp = F("selected");
+ OPTION(String(LIGHT_SLEEP_T).c_str(), stmp.c_str(),PROGMEM2CHAR(VALUE_LIGHT))
+ if (bflag==MODEM_SLEEP_T)stmp = PROGMEM2CHAR(VALUE_SELECTED);
else stmp="";
- OPTION(String(MODEM_SLEEP_T).c_str(), stmp.c_str(),F("Modem"))
+ OPTION(String(MODEM_SLEEP_T).c_str(), stmp.c_str(),PROGMEM2CHAR(VALUE_MODEM))
SELECT_END
- web_interface.add4send(FORM_SUBMIT);
- web_interface.add4send(FORM_END);
- web_interface.add4send(PANEL_END);
+ web_interface.add4send(PROGMEM2CHAR(FORM_SUBMIT));
+ web_interface.add4send(PROGMEM2CHAR(FORM_END));
+ web_interface.add4send(PROGMEM2CHAR(PANEL_END));
if(msg_alert_error)
{
MSG_ERROR(smsg.c_str())
@@ -418,7 +510,7 @@ if(msg_alert_success)
{
MSG_SUCCESS(smsg.c_str())
}
- web_interface.add4send(PAGE_BOTTOM);
+ web_interface.add4send(PROGMEM2CHAR(PAGE_BOTTOM));
web_interface.flushbuffer();
if (msg_alert_success && !msg_alert_error)
{
@@ -431,9 +523,9 @@ void handle_not_found()
String IP;
if (wifi_get_opmode()==WIFI_STA ) IP=wifi_config.ip2str(WiFi.localIP());
else IP=wifi_config.ip2str(WiFi.softAPIP());
- web_interface.add4send(T404_PAGE);
+ web_interface.add4send(PROGMEM2CHAR(T404_PAGE));
web_interface.add4send(IP.c_str());
- web_interface.add4send(T404_PAGE_2);
+ web_interface.add4send(PROGMEM2CHAR(T404_PAGE_2));
web_interface.flushbuffer();
}
@@ -492,12 +584,12 @@ void WEBINTERFACE_CLASS::add4send(const char * data2send, bool bimmediatsend)
{//send current buffer first
if(!bsendingstarted)
{ //no header send so first send using header 2500 limit allow to add extra without calculation
- web_interface.WebServer.send(200, F("text/html"), buffer2send);
+ web_interface.WebServer.send(200, "text/html", buffer2send);
bsendingstarted=true;
}
else
{ //direct data send
- web_interface.WebServer.client().print(buffer2send);
+ web_interface.WebServer.sendContent(buffer2send);
}
buffer2send=data2send;
//do we need to purge or to store ?
@@ -505,7 +597,7 @@ void WEBINTERFACE_CLASS::add4send(const char * data2send, bool bimmediatsend)
{//if some data flush
if (buffer2send.length()>0)
{
- web_interface.WebServer.client().print(buffer2send);
+ web_interface.WebServer.sendContent(buffer2send);
//reset buffer
buffer2send="";
}
@@ -519,8 +611,8 @@ void WEBINTERFACE_CLASS::add4send(const char * data2send, bool bimmediatsend)
WEBINTERFACE_CLASS::WEBINTERFACE_CLASS (int port):WebServer(port)
{
//init what will handle "/"
- WebServer.on(F("/"),HTTP_ANY, handle_web_interface_root);
- WebServer.on(F("/CONFIGSYS"),HTTP_ANY, handle_web_interface_configSys);
+ WebServer.on("/",HTTP_ANY, handle_web_interface_root);
+ WebServer.on("/CONFIGSYS",HTTP_ANY, handle_web_interface_configSys);
WebServer.onNotFound( handle_not_found);
buffer2send="";
}
diff --git a/esp8266/wifi.cpp b/esp8266/wifi.cpp
index 6b8bc34f..3bb28bdc 100644
--- a/esp8266/wifi.cpp
+++ b/esp8266/wifi.cpp
@@ -56,7 +56,7 @@ byte WIFI_CONFIG::split_ip (char * ptr,byte * part)
char * WIFI_CONFIG::mac2str(uint8_t mac [WL_MAC_ADDR_LENGTH])
{
static char macstr [18];
- if (0>sprintf(macstr,F("%02X:%02X:%02X:%02X:%02X:%02X"),mac[0],mac[1],mac[2],mac[3],mac[4],mac[5])) strcpy (macstr, F("00:00:00:00:00:00"));
+ if (0>sprintf(macstr,"%02X:%02X:%02X:%02X:%02X:%02X",mac[0],mac[1],mac[2],mac[3],mac[4],mac[5])) strcpy (macstr, "00:00:00:00:00:00");
return macstr;
}
@@ -64,7 +64,7 @@ char * WIFI_CONFIG::mac2str(uint8_t mac [WL_MAC_ADDR_LENGTH])
char * WIFI_CONFIG::ip2str(IPAddress Ip )
{
static char ipstr [16];
- if (0>sprintf(ipstr, F("%i.%i.%i.%i"),Ip[0],Ip[1],Ip[2],Ip[3])) strcpy (ipstr, F("0.0.0.0"));
+ if (0>sprintf(ipstr, "%i.%i.%i.%i",Ip[0],Ip[1],Ip[2],Ip[3])) strcpy (ipstr, "0.0.0.0");
return ipstr;
}
@@ -154,7 +154,7 @@ bool WIFI_CONFIG::Setup()
// - second argument is the IP address to advertise
// we send our IP address on the WiFi network
// Note: for AP mode we would use WiFi.softAPIP()!
- if (!mdns.begin(LOCAL_NAME, currentIP)) {
+ if (!mdns.begin(PROGMEM2CHAR(LOCAL_NAME), currentIP)) {
Serial.println(F("Error setting up MDNS responder!"));
}
#endif