chiark / gitweb /
add autotemp support to the lcd
authorBernhard <bkubicek@x201.(none)>
Sun, 27 Nov 2011 15:45:19 +0000 (16:45 +0100)
committerBernhard <bkubicek@x201.(none)>
Sun, 27 Nov 2011 15:45:19 +0000 (16:45 +0100)
Marlin/ultralcd.pde

index a90a6c66dd1a4e6752bf63fa4c20bc46c0cec6bb..a4bb640b709e3d43a8deb42c8de35fab6aaf061f 100644 (file)
@@ -660,7 +660,12 @@ void MainMenu::showTune()
 //   \r
 \r
 enum {\r
-  ItemCT_exit, ItemCT_nozzle, ItemCT_fan,\r
+  ItemCT_exit,ItemCT_nozzle,\r
+#ifdef AUTOTEMP\r
+  ItemCT_autotempactive,\r
+  ItemCT_autotempmin,ItemCT_autotempmax,ItemCT_autotempfact,\r
+#endif\r
+  ItemCT_fan,\r
   ItemCT_PID_P,ItemCT_PID_I,ItemCT_PID_D,ItemCT_PID_C\r
 };\r
 \r
@@ -708,7 +713,128 @@ void MainMenu::showControlTemp()
           }\r
         }\r
       }break;\r
-      \r
+      #ifdef AUTOTEMP\r
+      case ItemCT_autotempmin:\r
+      {\r
+        if(force_lcd_update)\r
+        {\r
+          lcd.setCursor(0,line);lcdprintPGM(" \002 Min:");\r
+          lcd.setCursor(13,line);lcd.print(ftostr3(autotemp_max));\r
+        }\r
+        \r
+        if((activeline==line) )\r
+        {\r
+          if(CLICKED)\r
+          {\r
+            linechanging=!linechanging;\r
+            if(linechanging)\r
+            {\r
+               encoderpos=intround(autotemp_max);\r
+            }\r
+            else\r
+            {\r
+              autotemp_max=encoderpos;\r
+              encoderpos=activeline*lcdslow;\r
+              beepshort();\r
+            }\r
+            BLOCK;\r
+          }\r
+          if(linechanging)\r
+          {\r
+            if(encoderpos<0) encoderpos=0;\r
+            if(encoderpos>260) encoderpos=260;\r
+            lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));\r
+          }\r
+        }\r
+      }break;  \r
+      case ItemCT_autotempmax:\r
+      {\r
+        if(force_lcd_update)\r
+        {\r
+          lcd.setCursor(0,line);lcdprintPGM(" \002 Max:");\r
+          lcd.setCursor(13,line);lcd.print(ftostr3(autotemp_max));\r
+        }\r
+        \r
+        if((activeline==line) )\r
+        {\r
+          if(CLICKED)\r
+          {\r
+            linechanging=!linechanging;\r
+            if(linechanging)\r
+            {\r
+               encoderpos=intround(autotemp_max);\r
+            }\r
+            else\r
+            {\r
+              autotemp_max=encoderpos;\r
+              encoderpos=activeline*lcdslow;\r
+              beepshort();\r
+            }\r
+            BLOCK;\r
+          }\r
+          if(linechanging)\r
+          {\r
+            if(encoderpos<0) encoderpos=0;\r
+            if(encoderpos>260) encoderpos=260;\r
+            lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));\r
+          }\r
+        }\r
+      }break;  \r
+      case ItemCT_autotempfact:\r
+      {\r
+        if(force_lcd_update)\r
+        {\r
+          lcd.setCursor(0,line);lcdprintPGM(" \002 Fact:");\r
+          lcd.setCursor(13,line);lcd.print(ftostr32(autotemp_factor));\r
+        }\r
+        \r
+        if((activeline==line) )\r
+        {\r
+          if(CLICKED)\r
+          {\r
+            linechanging=!linechanging;\r
+            if(linechanging)\r
+            {\r
+               encoderpos=intround(autotemp_factor*100);\r
+            }\r
+            else\r
+            {\r
+              autotemp_max=encoderpos;\r
+              encoderpos=activeline*lcdslow;\r
+              beepshort();\r
+            }\r
+            BLOCK;\r
+          }\r
+          if(linechanging)\r
+          {\r
+            if(encoderpos<0) encoderpos=0;\r
+            if(encoderpos>99) encoderpos=99;\r
+            lcd.setCursor(13,line);lcd.print(ftostr32(encoderpos/100.));\r
+          }\r
+        }\r
+      }break;\r
+      case ItemCT_autotempactive:\r
+      {\r
+        if(force_lcd_update)\r
+        {\r
+          lcd.setCursor(0,line);lcdprintPGM(" Autotemp:");\r
+          lcd.setCursor(13,line);\r
+         if(autotemp_enabled)\r
+           lcdprintPGM("On");\r
+         else\r
+           lcdprintPGM("Off");\r
+        }\r
+        \r
+        if((activeline==line) )\r
+        {\r
+          if(CLICKED)\r
+          {\r
+            autotemp_enabled=!autotemp_enabled;\r
+            BLOCK;\r
+          }\r
+        }\r
+      }break;  \r
+      #endif //autotemp\r
       case ItemCT_fan:\r
       {\r
         if(force_lcd_update)\r
@@ -1620,6 +1746,19 @@ char *ftostr31(const float &x)
   return conv;\r
 }\r
 \r
+char *ftostr32(const float &x)\r
+{\r
+  int xx=x*100;\r
+  conv[0]=(xx>=0)?'+':'-';\r
+  xx=abs(xx);\r
+  conv[1]=(xx/100)%10+'0';\r
+  conv[2]='.';\r
+  conv[3]=(xx/10)%10+'0';\r
+  conv[4]=(xx)%10+'0';\r
+  conv[6]=0;\r
+  return conv;\r
+}\r
+\r
 char *itostr31(const int &xx)\r
 {\r
   conv[0]=(xx>=0)?'+':'-';\r