diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..aafa7683 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +Thumbs.db \ No newline at end of file diff --git a/esp8266/webinterface.cpp b/esp8266/webinterface.cpp index 30af27c4..34afdc56 100644 --- a/esp8266/webinterface.cpp +++ b/esp8266/webinterface.cpp @@ -231,21 +231,33 @@ const char TEMP_SVG_1[]PROGMEM ="\n\n\n"; const char TEMP_SVG_3[]PROGMEM ="\n\n"; const char TEMP_SVG_4[]PROGMEM ="\n\n\n"; -const char TEMP_SVG_5[]PROGMEM ="\n\n\n"; -const char TEMP_SVG_12[]PROGMEM =" °C\n"; +const char TEMP_SVG_5[]PROGMEM ="\n"; +const char TEMP_SVG_8[]PROGMEM ="\n\n\n"; +const char TEMP_SVG_15[]PROGMEM =" °C\n"; +const char TEMP_SVG_16[]PROGMEM =""; const char DATA_S[]PROGMEM ="
"; const char DATA_E[]PROGMEM ="\n"; +const char DIV_FLOW[]PROGMEM = "
"; +const char DIV_SPEED[]PROGMEM ="
"; +const char DIV_POSITION[]PROGMEM ="
"; +const char DIV_STATUS[]PROGMEM ="
"; +const char STATUS_1[]PROGMEM ="\n\n"; + +const char PRINTER_1a[]PROGMEM ="\n"; +const char PRINTER_1b[]PROGMEM ="
  
\n"; +const char PRINTER_1c[]PROGMEM ="
\n"; +const char PRINTER_1d[]PROGMEM ="
  \n"; +const char PRINTER_1e[]PROGMEM ="

\n"; -const char PRINTER_1a[]PROGMEM ="

\n"; -const char PRINTER_1b[]PROGMEM ="

\n"; -const char PRINTER_1c[]PROGMEM ="   \n"; -const char PRINTER_1d[]PROGMEM ="
\n"; const char PRINTER_2[]PROGMEM ="\n"; const char PRINTER_4[]PROGMEM ="\n"; -#define TEMP_SVG(temperature,description) buffer2send+=(PROGMEM2CHAR(TEMP_SVG_1));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_2));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_3));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_4));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_5));buffer2send+=String(temperature+5);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_6));buffer2send+=String(temperature+15);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_7));buffer2send+=String(temperature+10);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_8));buffer2send+=String(temperature+5);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_9));buffer2send+=String(temperature+15);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_10));buffer2send+=String(temperature+10);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_11));buffer2send+=description;buffer2send+=(PROGMEM2CHAR(TEMP_SVG_12)); +#define TEMP_SVG(temperature,target,description) buffer2send+=(PROGMEM2CHAR(TEMP_SVG_1));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_2));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_3));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_4));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_5));buffer2send+=String(target+10); buffer2send+=(PROGMEM2CHAR(TEMP_SVG_6));buffer2send+=String(target+10); buffer2send+=(PROGMEM2CHAR(TEMP_SVG_7));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_8));buffer2send+=String(temperature+5);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_9));buffer2send+=String(temperature+15);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_10));buffer2send+=String(temperature+10);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_11));buffer2send+=String(temperature+5);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_12));buffer2send+=String(temperature+15);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_13));buffer2send+=String(temperature+10);buffer2send+=(PROGMEM2CHAR(TEMP_SVG_14));buffer2send+=description;buffer2send+=(PROGMEM2CHAR(TEMP_SVG_15));buffer2send+=(PROGMEM2CHAR(TEMP_SVG_16)); #define MSG_SUCCESS(msg) buffer2send+=(PROGMEM2CHAR(ALERT_SUCCESS));buffer2send+=(msg);buffer2send+=(PROGMEM2CHAR(DIV_E)); #define MSG_ERROR(msg) buffer2send+=(PROGMEM2CHAR(ALERT_ERROR));buffer2send+=(msg);buffer2send+=(PROGMEM2CHAR(DIV_E)); @@ -280,7 +293,7 @@ const char PRINTER_12[]PROGMEM ="\n"; #define THR_ENTRY(entry) buffer2send+=(PROGMEM2CHAR(TH_R));buffer2send+=(entry);buffer2send+=(PROGMEM2CHAR(TH_E)); #define TD_ENTRY(entry) buffer2send+=(PROGMEM2CHAR(TD_S));buffer2send+=(entry);buffer2send+=(PROGMEM2CHAR(TD_E)); #define TOPBAR(IP,menu) buffer2send+=(PROGMEM2CHAR(NAV_START)); buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART1)) ; buffer2send+=(menu==1?PROGMEM2CHAR(NAV_ELEMENT_ACTIVE):"") ; buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART2a) ); buffer2send+=(IP); buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART2b));buffer2send+=(menu==2?PROGMEM2CHAR(NAV_ELEMENT_ACTIVE):"") ; buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART3a) ); buffer2send+=(IP); buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART3b));buffer2send+=(menu==3?PROGMEM2CHAR(NAV_ELEMENT_ACTIVE):"") ; buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART4a) ); buffer2send+=(IP); buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART4b)); buffer2send+=(menu==4?PROGMEM2CHAR(NAV_ELEMENT_ACTIVE):"") ; buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART5a) ); buffer2send+=(IP); buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART5b));buffer2send+=(menu==5?PROGMEM2CHAR(NAV_ELEMENT_ACTIVE):"") ; buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART6a) ); buffer2send+=(IP); buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PART6b));buffer2send+=(PROGMEM2CHAR(NAV_LEFT_PARTEND)); buffer2send+=(PROGMEM2CHAR(NAV_RIGHT_PART)) ; buffer2send+=(PROGMEM2CHAR(NAV_END)); - +#define STATUS_SVG(color) buffer2send+=(PROGMEM2CHAR(STATUS_1));buffer2send+=(color);buffer2send+=(PROGMEM2CHAR(STATUS_2)); char * progmem2char(const char* src) @@ -1408,7 +1421,7 @@ void handle_web_interface_printer() String IP; String stmp; String buffer2send =""; - Serial.println("M114"); + //Serial.println("M114"); Serial.println("M220"); Serial.println("M221"); //display page @@ -1426,6 +1439,7 @@ void handle_web_interface_printer() buffer2send+=(PROGMEM2CHAR(PRINTER_1b)); buffer2send+=(PROGMEM2CHAR(PRINTER_1c)); buffer2send+=(PROGMEM2CHAR(PRINTER_1d)); + buffer2send+=(PROGMEM2CHAR(PRINTER_1e)); buffer2send+=(PROGMEM2CHAR(PRINTER_2)); buffer2send+=stmp.c_str(); buffer2send+=(PROGMEM2CHAR(PRINTER_3)); @@ -1435,6 +1449,7 @@ void handle_web_interface_printer() buffer2send+=(PROGMEM2CHAR(PRINTER_6b)); buffer2send+=(PROGMEM2CHAR(PRINTER_6c)); buffer2send+=(PROGMEM2CHAR(PRINTER_6d)); + buffer2send+=(PROGMEM2CHAR(PRINTER_6e)); buffer2send+=(PROGMEM2CHAR(PRINTER_7)); buffer2send+=(PROGMEM2CHAR(PRINTER_8)); buffer2send+=(PROGMEM2CHAR(PRINTER_9)); @@ -1448,78 +1463,102 @@ void handle_web_interface_printer() void handle_web_interface_status() { Serial.println("M105"); + Serial.println("M114"); String buffer2send =(PROGMEM2CHAR(DATA_S)); String description; + String status_color; + static bool flashit = true; int temperature,target; + flashit=!flashit; if ((system_get_time()-web_interface->last_temp)<3200000) { - int Tpos = web_interface->answer4M105.indexOf("T:"); - int slashpos = web_interface->answer4M105.indexOf(" /",Tpos); - int spacepos = web_interface->answer4M105.indexOf(" ",slashpos+1); - if(slashpos!=-1 && spacepos!=-1 ) - { - temperature = (int)atof(web_interface->answer4M105.substring(Tpos+2,slashpos).c_str()); - target = (int)atof(web_interface->answer4M105.substring(slashpos+2,spacepos).c_str()); - Tpos = web_interface->answer4M105.indexOf("T1:"); - if (Tpos>-1) description = "Extruder 1: "; - else description = "Extruder : "; - description += String(temperature); - description += "/"; - if (target >0) description += String(target); - else description += "off"; - TEMP_SVG(temperature,description) - } - //check for second extruder - Tpos = web_interface->answer4M105.indexOf("T1:"); - if (Tpos>-1) + if (flashit)status_color="lime"; + else status_color="darkgreen"; + } + else if ((system_get_time()-web_interface->last_temp)<32000000) + { + if (flashit)status_color="#FFFF66"; + else status_color="gold"; + } + else + { + if (flashit)status_color="red"; + else status_color="darkred"; + } + + int Tpos = web_interface->answer4M105.indexOf("T:"); + int slashpos = web_interface->answer4M105.indexOf(" /",Tpos); + int spacepos = web_interface->answer4M105.indexOf(" ",slashpos+1); + if(slashpos!=-1 && spacepos!=-1 ) { - slashpos = web_interface->answer4M105.indexOf(" /",Tpos); - spacepos = web_interface->answer4M105.indexOf(" ",slashpos+1); - if(slashpos!=-1 && spacepos!=-1 ) - { - temperature = (int)atof(web_interface->answer4M105.substring(Tpos+3,slashpos).c_str()); - target = (int)atof(web_interface->answer4M105.substring(slashpos+2,spacepos).c_str()); - description = "Extruder 2: "; - description += String(temperature); - description += "/"; - if (target >0) description += String(target); - else description += "off"; - buffer2send+=(PROGMEM2CHAR(BR)); - TEMP_SVG(temperature,description) - } + temperature = (int)atof(web_interface->answer4M105.substring(Tpos+2,slashpos).c_str()); + target = (int)atof(web_interface->answer4M105.substring(slashpos+2,spacepos).c_str()); + Tpos = web_interface->answer4M105.indexOf("T1:"); + if (Tpos>-1) description = "Extruder 1: "; + else description = "Extruder : "; + description += String(temperature); + description += "/"; + if (target >0) description += String(target); + else description += "off"; + TEMP_SVG(temperature,target,description) } - //check for bed - Tpos = web_interface->answer4M105.indexOf("B:"); - if (Tpos>-1) + //check for second extruder + Tpos = web_interface->answer4M105.indexOf("T1:"); + if (Tpos>-1) + { + slashpos = web_interface->answer4M105.indexOf(" /",Tpos); + spacepos = web_interface->answer4M105.indexOf(" ",slashpos+1); + if(slashpos!=-1 && spacepos!=-1 ) { - slashpos = web_interface->answer4M105.indexOf(" /",Tpos); - spacepos = web_interface->answer4M105.indexOf(" ",slashpos+1); - if(slashpos!=-1 && spacepos!=-1 ) - { - temperature = (int)atof(web_interface->answer4M105.substring(Tpos+2,slashpos).c_str()); - target = (int)atof(web_interface->answer4M105.substring(slashpos+2,spacepos).c_str()); - description = "Bed: "; - description += String(temperature); - description += "/"; - if (target >0) description += String(target); - else description += "off"; - buffer2send+=(PROGMEM2CHAR(BR)); - TEMP_SVG(temperature*2,description) - } + temperature = (int)atof(web_interface->answer4M105.substring(Tpos+3,slashpos).c_str()); + target = (int)atof(web_interface->answer4M105.substring(slashpos+2,spacepos).c_str()); + description = "Extruder 2: "; + description += String(temperature); + description += "/"; + if (target >0) description += String(target); + else description += "off"; + buffer2send+=(PROGMEM2CHAR(BR)); + TEMP_SVG(temperature,target,description) + } + } + //check for bed + Tpos = web_interface->answer4M105.indexOf("B:"); + if (Tpos>-1) + { + slashpos = web_interface->answer4M105.indexOf(" /",Tpos); + spacepos = web_interface->answer4M105.indexOf(" ",slashpos+1); + if(slashpos!=-1 && spacepos!=-1 ) + { + temperature = (int)atof(web_interface->answer4M105.substring(Tpos+2,slashpos).c_str()); + target = (int)atof(web_interface->answer4M105.substring(slashpos+2,spacepos).c_str()); + description = "Bed: "; + description += String(temperature); + description += "/"; + if (target >0) description += String(target); + else description += "off"; + buffer2send+=(PROGMEM2CHAR(BR)); + TEMP_SVG(temperature*2,target*2,description) } } - else buffer2send += "Processing...."; buffer2send+=(PROGMEM2CHAR(DIV_E)); - buffer2send+="
"; + buffer2send+=(PROGMEM2CHAR(DIV_POSITION)); int Epos = web_interface->answer4M114.indexOf("E:"); - buffer2send+=web_interface->answer4M114.substring(0,Epos); + description=web_interface->answer4M114.substring(0,Epos); + description.replace("X:","  "; buffer2send+=(PROGMEM2CHAR(DIV_E)); - buffer2send+="
"; + buffer2send+=(PROGMEM2CHAR(DIV_SPEED)); buffer2send+=web_interface->answer4M220; buffer2send+=(PROGMEM2CHAR(DIV_E)); - buffer2send+="
"; + buffer2send+=(PROGMEM2CHAR(DIV_FLOW)); buffer2send+=web_interface->answer4M221; buffer2send+=(PROGMEM2CHAR(DIV_E)); + buffer2send+=(PROGMEM2CHAR(DIV_STATUS)); + STATUS_SVG(status_color) + buffer2send+=(PROGMEM2CHAR(DIV_E)); buffer2send+=(PROGMEM2CHAR(DATA_E)); web_interface->WebServer.send(200, "text/html", buffer2send); @@ -1572,10 +1611,10 @@ WEBINTERFACE_CLASS::WEBINTERFACE_CLASS (int port):WebServer(port) WebServer.on("/STATUS",HTTP_ANY, handle_web_interface_status); WebServer.on("/PRINTER",HTTP_ANY, handle_web_interface_printer); WebServer.onNotFound( handle_not_found); - answer4M105="T:0 /0"; - answer4M114=""; - answer4M220=""; - answer4M221=""; + answer4M105="T:0 /0 "; + answer4M114="X:0.0 Y:0.0 Z:0.0"; + answer4M220="100"; + answer4M221="100"; last_temp=system_get_time(); } diff --git a/page5.png b/page5.png index 5cf14452..55802a0a 100644 Binary files a/page5.png and b/page5.png differ