1
0
mirror of https://github.com/bdring/Grbl_Esp32.git synced 2025-09-03 11:22:38 +02:00

$sd/show and handle settings in SD files

This commit is contained in:
Mitch Bradley
2020-10-06 08:28:34 -10:00
parent e04c289e6b
commit 986b4de931
4 changed files with 32 additions and 6 deletions

View File

@@ -142,7 +142,7 @@ void protocol_main_loop() {
char fileLine[255]; char fileLine[255];
if (readFileLine(fileLine, 255)) { if (readFileLine(fileLine, 255)) {
SD_ready_next = false; SD_ready_next = false;
report_status_message(gc_execute_line(fileLine, SD_client), SD_client); report_status_message(execute_line(fileLine, SD_client, SD_auth_level), SD_client);
} else { } else {
char temp[50]; char temp[50];
sd_get_current_filename(temp); sd_get_current_filename(temp);

View File

@@ -23,6 +23,7 @@
File myFile; File myFile;
bool SD_ready_next = false; // Grbl has processed a line and is waiting for another bool SD_ready_next = false; // Grbl has processed a line and is waiting for another
uint8_t SD_client = CLIENT_SERIAL; uint8_t SD_client = CLIENT_SERIAL;
WebUI::AuthenticationLevel SD_auth_level = WebUI::AuthenticationLevel::LEVEL_GUEST;
uint32_t sd_current_line_number; // stores the most recent line number read from the SD uint32_t sd_current_line_number; // stores the most recent line number read from the SD
static char comment[LINE_BUFFER_SIZE]; // Line to be executed. Zero-terminated. static char comment[LINE_BUFFER_SIZE]; // Line to be executed. Zero-terminated.

View File

@@ -31,6 +31,7 @@ const int SDCARD_BUSY_PARSING = 8;
extern bool SD_ready_next; // Grbl has processed a line and is waiting for another extern bool SD_ready_next; // Grbl has processed a line and is waiting for another
extern uint8_t SD_client; extern uint8_t SD_client;
extern WebUI::AuthenticationLevel SD_auth_level;
//bool sd_mount(); //bool sd_mount();
uint8_t get_sd_state(bool refresh); uint8_t get_sd_state(bool refresh);

View File

@@ -642,7 +642,7 @@ namespace WebUI {
} }
#ifdef ENABLE_SD_CARD #ifdef ENABLE_SD_CARD
static Error runSDFile(char* parameter, AuthenticationLevel auth_level) { // ESP220 static Error openSDFile(char* parameter) {
parameter = trim(parameter); parameter = trim(parameter);
if (*parameter == '\0') { if (*parameter == '\0') {
webPrintln("Missing file name!"); webPrintln("Missing file name!");
@@ -665,7 +665,29 @@ namespace WebUI {
if (!openFile(SD, parameter)) { if (!openFile(SD, parameter)) {
report_status_message(Error::SdFailedRead, (espresponse) ? espresponse->client() : CLIENT_ALL); report_status_message(Error::SdFailedRead, (espresponse) ? espresponse->client() : CLIENT_ALL);
webPrintln(""); webPrintln("");
return Error::Ok; return Error::SdFailedOpenFile;
}
return Error::Ok;
}
static Error showSDFile(char* parameter, AuthenticationLevel auth_level) { // ESP221
Error err;
if ((err = openSDFile(parameter)) != Error::Ok) {
return err;
}
SD_client = (espresponse) ? espresponse->client() : CLIENT_ALL;
char fileLine[255];
while (readFileLine(fileLine, 255)) {
webPrintln(fileLine);
}
webPrintln("");
closeFile();
return Error::Ok;
}
static Error runSDFile(char* parameter, AuthenticationLevel auth_level) { // ESP220
Error err;
if ((err = openSDFile(parameter)) != Error::Ok) {
return err;
} }
char fileLine[255]; char fileLine[255];
if (!readFileLine(fileLine, 255)) { if (!readFileLine(fileLine, 255)) {
@@ -675,9 +697,10 @@ namespace WebUI {
return Error::Ok; return Error::Ok;
} }
SD_client = (espresponse) ? espresponse->client() : CLIENT_ALL; SD_client = (espresponse) ? espresponse->client() : CLIENT_ALL;
report_status_message(gc_execute_line(fileLine, (espresponse) ? espresponse->client() : CLIENT_ALL), SD_auth_level = auth_level;
(espresponse) ? espresponse->client() : CLIENT_ALL); // execute the first line // execute the first line now; Protocol.cpp handles later ones when SD_ready_next
report_realtime_status((espresponse) ? espresponse->client() : CLIENT_ALL); report_status_message(execute_line(fileLine, SD_client, SD_auth_level), SD_client);
report_realtime_status(SD_client);
webPrintln(""); webPrintln("");
return Error::Ok; return Error::Ok;
} }
@@ -985,6 +1008,7 @@ namespace WebUI {
new WebCommand(NULL, WEBCMD, WU, "ESP400", "WebUI/List", listSettings); new WebCommand(NULL, WEBCMD, WU, "ESP400", "WebUI/List", listSettings);
#endif #endif
#ifdef ENABLE_SD_CARD #ifdef ENABLE_SD_CARD
new WebCommand("path", WEBCMD, WU, "ESP221", "SD/Show", showSDFile);
new WebCommand("path", WEBCMD, WU, "ESP220", "SD/Run", runSDFile); new WebCommand("path", WEBCMD, WU, "ESP220", "SD/Run", runSDFile);
new WebCommand("file_or_directory_path", WEBCMD, WU, "ESP215", "SD/Delete", deleteSDObject); new WebCommand("file_or_directory_path", WEBCMD, WU, "ESP215", "SD/Delete", deleteSDObject);
new WebCommand(NULL, WEBCMD, WU, "ESP210", "SD/List", listSDFiles); new WebCommand(NULL, WEBCMD, WU, "ESP210", "SD/List", listSDFiles);