#include "Planner.h"
#include "StepperMotor.h"
#include "EndstopsPublicAccess.h"
+#include "LaserScreen.h"
#include <string>
using namespace std;
void MainMenuScreen::on_enter()
{
THEPANEL->enter_menu_mode();
- THEPANEL->setup_menu(7);
+ THEPANEL->setup_menu(THEPANEL->has_laser()?8:7);
this->refresh_menu();
}
{
switch ( line ) {
case 0: THEPANEL->lcd->printf("DRO"); break;
- case 1: if(THEKERNEL->is_halted()) THEPANEL->lcd->printf("Clear HALT"); else THEPANEL->lcd->printf(THEPANEL->is_playing() ? "Abort" : "Play"); break;
+ case 1: if(THEKERNEL->is_halted()) THEPANEL->lcd->printf("Clear HALT");
+ else if(THEKERNEL->get_feed_hold()) THEPANEL->lcd->printf("Clear Hold");
+ else THEPANEL->lcd->printf(THEPANEL->is_playing() ? "Abort" : "Play"); break;
case 2: THEPANEL->lcd->printf("Jog"); break;
case 3: THEPANEL->lcd->printf("Prepare"); break;
case 4: THEPANEL->lcd->printf("Custom"); break;
case 5: THEPANEL->lcd->printf("Configure"); break;
case 6: THEPANEL->lcd->printf("Probe"); break;
+ case 7: THEPANEL->lcd->printf("Laser"); break; // only used if THEPANEL->has_laser()
}
}
case 0: THEPANEL->enter_screen(this->watch_screen); break;
case 1:
if(THEKERNEL->is_halted()){
- send_command("M999");
+ THEKERNEL->call_event(ON_HALT, (void *)1); // clears on_halt
+ THEPANEL->enter_screen(this->watch_screen);
+ }else if(THEKERNEL->get_feed_hold()){
+ THEKERNEL->set_feed_hold(false);
THEPANEL->enter_screen(this->watch_screen);
}else if(THEPANEL->is_playing()) abort_playing();
else THEPANEL->enter_screen(this->file_screen); break;
case 4: THEPANEL->enter_screen(THEPANEL->custom_screen ); break;
case 5: setupConfigureScreen(); break;
case 6: THEPANEL->enter_screen((new ProbeScreen())->set_parent(this)); break;
+ case 7: THEPANEL->enter_screen((new LaserScreen())->set_parent(this)); break; // self deleting, only used if THEPANEL->has_laser()
}
}