Enumerate hotends for display in panel temperature settings
[clinton/Smoothieware.git] / src / modules / utils / panel / screens / PrepareScreen.cpp
index 7339b82..cb45b34 100644 (file)
 #include "ExtruderScreen.h"
 #include "libs/nuts_bolts.h"
 #include "libs/utils.h"
+#include "checksumm.h"
+#include "ModifyValuesScreen.h"
 #include "PublicDataRequest.h"
-#include "modules/tools/temperaturecontrol/TemperatureControlPublicAccess.h"
+#include "PublicData.h"
+#include "TemperatureControlPublicAccess.h"
 
 #include <string>
 using namespace std;
@@ -22,67 +25,67 @@ PrepareScreen::PrepareScreen()
 {
     // Children screens
     this->extruder_screen = (new ExtruderScreen()  )->set_parent(this);
-    //    this->temp_screen     = (new TempScreen()      )->set_parent(this);
+    THEPANEL->temperature_screen->set_parent(this);
 }
 
 void PrepareScreen::on_enter()
 {
-    this->panel->enter_menu_mode();
-    this->panel->setup_menu(8);
+    THEPANEL->enter_menu_mode();
+    THEPANEL->setup_menu(9);
     this->refresh_menu();
 }
 
 void PrepareScreen::on_refresh()
 {
-    if ( this->panel->menu_change() ) {
+    if ( THEPANEL->menu_change() ) {
         this->refresh_menu();
     }
-    if ( this->panel->click() ) {
-        this->clicked_menu_entry(this->panel->get_menu_current_line());
+    if ( THEPANEL->click() ) {
+        this->clicked_menu_entry(THEPANEL->get_menu_current_line());
     }
 }
 
 void PrepareScreen::display_menu_line(uint16_t line)
 {
     switch ( line ) {
-        case 0: this->panel->lcd->printf("Back"           ); break;
-        case 1: this->panel->lcd->printf("Home All Axis"  ); break;
-        case 2: this->panel->lcd->printf("Set Home"       ); break;
-        case 3: this->panel->lcd->printf("Set Z0"         ); break;
-        case 4: this->panel->lcd->printf("Pre Heat"       ); break;
-        case 5: this->panel->lcd->printf("Cool Down"      ); break;
-        case 6: this->panel->lcd->printf("Extrude"        ); break;
-        case 7: this->panel->lcd->printf("Motors off"     ); break;
-            //case 8: this->panel->lcd->printf("Set Temperature"); break;
+        case 0: THEPANEL->lcd->printf("Back"           ); break;
+        case 1: THEPANEL->lcd->printf("Home All Axis"  ); break;
+        case 2: THEPANEL->lcd->printf("Set Home"       ); break;
+        case 3: THEPANEL->lcd->printf("Set Z0"         ); break;
+        case 4: THEPANEL->lcd->printf("Pre Heat"       ); break;
+        case 5: THEPANEL->lcd->printf("Cool Down"      ); break;
+        case 6: THEPANEL->lcd->printf("Extrude"        ); break;
+        case 7: THEPANEL->lcd->printf("Motors off"     ); break;
+        case 8: THEPANEL->lcd->printf("Set Temperature"); break;
     }
 }
 
 void PrepareScreen::clicked_menu_entry(uint16_t line)
 {
     switch ( line ) {
-        case 0: this->panel->enter_screen(this->parent); break;
+        case 0: THEPANEL->enter_screen(this->parent); break;
         case 1: command = "G28"; break;
         case 2: command = "G92 X0 Y0 Z0"; break;
         case 3: command = "G92 Z0"; break;
         case 4: this->preheat(); break;
         case 5: this->cooldown(); break;
-        case 6: this->panel->enter_screen(this->extruder_screen); break;
+        case 6: THEPANEL->enter_screen(this->extruder_screen); break;
         case 7: command = "M84"; break;
-            //case 8: this->panel->enter_screen(this->temp_screen      ); break;
+        case 8: THEPANEL->enter_screen(THEPANEL->temperature_screen); break;
     }
 }
 
 void PrepareScreen::preheat()
 {
-    double t = panel->get_default_hotend_temp();
+    float t = THEPANEL->get_default_hotend_temp();
     THEKERNEL->public_data->set_value( temperature_control_checksum, hotend_checksum, &t );
-    t = panel->get_default_bed_temp();
+    t = THEPANEL->get_default_bed_temp();
     THEKERNEL->public_data->set_value( temperature_control_checksum, bed_checksum, &t );
 }
 
 void PrepareScreen::cooldown()
 {
-    double t = 0;
+    float t = 0;
     THEKERNEL->public_data->set_value( temperature_control_checksum, hotend_checksum, &t );
     THEKERNEL->public_data->set_value( temperature_control_checksum, bed_checksum, &t );
 }
@@ -95,3 +98,4 @@ void PrepareScreen::on_main_loop()
     send_command(this->command.c_str());
     this->command.clear();
 }
+