New serial protocol handling and .gcode is only appended when it's needed.

This commit is contained in:
Knutwurst
2020-07-09 10:37:14 +02:00
parent 73c98e400b
commit d88d98d691
2 changed files with 61 additions and 55 deletions

View File

@@ -123,10 +123,9 @@ void AnycubicTouchscreenClass::Setup()
pinMode(SD_DETECT_PIN, INPUT);
WRITE(SD_DETECT_PIN, HIGH);
#endif
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
pinMode(19, INPUT);
WRITE(19, HIGH);
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
if ((READ(19) == true) && FilamentSensorEnabled)
{
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
@@ -549,56 +548,56 @@ void AnycubicTouchscreenClass::PrintList()
switch (filenumber)
{
case 0: // Page 1
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Preheat Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Preheat Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Pause>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Pause>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Resume>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Resume>.gcode");
break;
case 4: // Page 2
HARDWARE_SERIAL_PROTOCOLLNPGM("<Start Mesh Leveling>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Start Mesh Leveling>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Next Mesh Point>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Next Mesh Point>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Start Mesh Leveling>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Start Mesh Leveling>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Next Mesh Point>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Next Mesh Point>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.1>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.1>.gcode");
break;
case 8: // Page 3
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.02>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.01>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.01>.gcode");
break;
case 12: // Page 4
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Hotend>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Hotend>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Save EEPROM>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Save EEPROM>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Hotend>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Hotend>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Ultrabase>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Save EEPROM>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Save EEPROM>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Load FW Defaults>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Load FW Defaults>.gcode");
break;
case 16: // Page 5
HARDWARE_SERIAL_PROTOCOLLNPGM("<Disable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Disable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Enable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Enable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Disable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Disable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Enable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Enable Fil. Sensor>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>.gcode");
break;
default:
@@ -609,7 +608,7 @@ void AnycubicTouchscreenClass::PrintList()
else if (card.isMounted())
{
uint16_t count = filenumber;
uint16_t max_files;
uint16_t max_files = 0;
uint16_t dir_files = card.countFilesInWorkDir();
// What is this shit? What if there are exactely 3 files+folders?
@@ -629,15 +628,15 @@ void AnycubicTouchscreenClass::PrintList()
{
if (strcmp(card.getWorkDirName(), "/") == 0)
{
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>.gcode");
HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>.gcode");
SERIAL_ECHO(count);
SERIAL_ECHOLNPGM(": <Special Menu>.gcode");
}
else
{
HARDWARE_SERIAL_PROTOCOLLNPGM("DIR_UP.gcode");
HARDWARE_SERIAL_PROTOCOLLNPGM("DIR_UP.gcode");
HARDWARE_SERIAL_PROTOCOLLN("DIR_UP.gcode");
HARDWARE_SERIAL_PROTOCOLLN("DIR_UP.gcode");
SERIAL_ECHO(count);
SERIAL_ECHOLNPGM(": DIR_UP.gcode");
}
@@ -672,18 +671,24 @@ void AnycubicTouchscreenClass::PrintList()
}
}
}
outputString[fileNameLen] = '\0';
outputString[MAX_PRINTABLE_FILENAME_LEN - 6] = '.';
outputString[MAX_PRINTABLE_FILENAME_LEN - 5] = 'g';
outputString[MAX_PRINTABLE_FILENAME_LEN - 4] = 'c';
outputString[MAX_PRINTABLE_FILENAME_LEN - 3] = 'o';
outputString[MAX_PRINTABLE_FILENAME_LEN - 2] = 'd';
outputString[MAX_PRINTABLE_FILENAME_LEN - 1] = 'e';
outputString[MAX_PRINTABLE_FILENAME_LEN] = '\0';
if (strcasestr(outputString, ".gcode") == NULL) {
outputString[MAX_PRINTABLE_FILENAME_LEN - 7] = '.';
outputString[MAX_PRINTABLE_FILENAME_LEN - 6] = 'g';
outputString[MAX_PRINTABLE_FILENAME_LEN - 5] = 'c';
outputString[MAX_PRINTABLE_FILENAME_LEN - 4] = 'o';
outputString[MAX_PRINTABLE_FILENAME_LEN - 3] = 'd';
outputString[MAX_PRINTABLE_FILENAME_LEN - 2] = 'e';
outputString[MAX_PRINTABLE_FILENAME_LEN - 1] = '\0';
}
if (card.flag.filenameIsDir)
{
/*
HARDWARE_SERIAL_PROTOCOLPGM("/");
HARDWARE_SERIAL_PROTOCOLLN(card.filename);
HARDWARE_SERIAL_PROTOCOLPGM("/");
@@ -691,6 +696,7 @@ void AnycubicTouchscreenClass::PrintList()
SERIAL_ECHO(count);
SERIAL_ECHOPGM(": /");
SERIAL_ECHOLN(outputString);
*/
}
else
{
@@ -706,8 +712,8 @@ void AnycubicTouchscreenClass::PrintList()
#endif
else
{
//HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>.gcode");
//HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>.gcode");
//HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>.gcode");
//HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>.gcode");
}
}

View File

@@ -115,7 +115,7 @@ private:
void ReheatNozzle();
void ParkAfterStop();
char currentTouchscreenSelection[64];
char currentTouchscreenSelection[30];
char currentFileOrDirectory[30];
uint8_t SpecialMenu = false;
uint8_t FilamentSensorEnabled = true;