#include "PublicData.h"
#include "SimpleShell.h"
#include "utils.h"
+#include "LPC17xx.h"
#define return_error_on_unhandled_gcode_checksum CHECKSUM("return_error_on_unhandled_gcode")
#define panel_display_message_checksum CHECKSUM("display_message")
#define panel_checksum CHECKSUM("panel")
// goes in Flash, list of Mxxx codes that are allowed when in Halted state
-static const int allowed_mcodes[]= {105,114,119}; // get temp, get pos, get endstops
+static const int allowed_mcodes[]= {105,114,119,80,81,911,503,106,107}; // get temp, get pos, get endstops etc
static bool is_allowed_mcode(int m) {
for (size_t i = 0; i < sizeof(allowed_mcodes)/sizeof(int); ++i) {
if(allowed_mcodes[i] == m) return true;
case 500: // M500 save volatile settings to config-override
THEKERNEL->conveyor->wait_for_empty_queue(); //just to be safe as it can take a while to run
//remove(THEKERNEL->config_override_filename()); // seems to cause a hang every now and then
+ __disable_irq();
{
FileStream fs(THEKERNEL->config_override_filename());
fs.printf("; DO NOT EDIT THIS FILE\n");
THEKERNEL->call_event(ON_GCODE_RECEIVED, gcode );
delete gcode->stream;
delete gcode;
+ __enable_irq();
new_message.stream->printf("Settings Stored to %s\r\nok\r\n", THEKERNEL->config_override_filename());
continue;
case 502: // M502 deletes config-override so everything defaults to what is in config
remove(THEKERNEL->config_override_filename());
- new_message.stream->printf("config override file deleted %s, reboot needed\r\nok\r\n", THEKERNEL->config_override_filename());
delete gcode;
+ new_message.stream->printf("config override file deleted %s, reboot needed\r\nok\r\n", THEKERNEL->config_override_filename());
continue;
case 503: { // M503 display live settings and indicates if there is an override file