Updated files for expanded Long_FileName support
- /src/gcode/sd/M20.cpp
- Added L and S arguments.
- Added ability to specify preference if no L / S argument specified.
- /src/gcode/sd/M33.cpp
- Modified command that requests the feedback to work with the reworked routine.
- /Configuration_adv.h
- Added two new defines to trigger the defaults for M20 rework
- /src/sd/cardreader.h
- Changes necessary to work with reworked cardreadper.cpp file
- /src/sd/cardreader.cpp
- Expanded functionality for Long FileNames
- Modified SelectByName routine to be able to return the file if a long name was specified instead of the 8.3 name
- Modified Card.LS function to work with new M20 functionality
- Modified PrintListing function to work with new M20 Functionality
- If requesting long filenames back, this calls the 'printLongPath' function to retrieve said filenames
- Modified printLongPath function to be compatible with new PrintListing routine functionality
- Modified diveToFile routine to be able to support Long FileNames
- This routine is what most others use to pick and choose files on the card for reading and writing.
- Adding support in this routine automatically brought the rest up to par.
- Routine works with both DOS8.3 names and long names now.
#Known Issues:
- When uploading a file to SD with octoprint, it was uploaded using the 8.3 format (expected).
- Calling M33 to read the long filename of this file resulted in the first file with a long filename to show up instead. For me it was firmware.bin that was being displayed instead of 'PLA_LI~1.GCO'
- After inspecting the SD card itself, I don't know if theres a workaround for this yet.
- I have put in a string comparison check in order to prevent this issue from occuring though. The workaround will display the 8.3 filename if the first 3 characters of the long filename don't match up with the DOS name.
- Writing to the SD card using M28/M29 still requires use of the 8.3 filename. (The rest of the path should work in long form though, as long as the folder path exists.
- This is due to how SdBaseFile.cpp is written.
- This module is expecting the 8.3 format, and if it isn't give then filename in that format it rejects the operation.
- I'm fairly confident it has to do with this command line in the ' ::open( ' routine:
if (!make83Name(path, dname, &path)) return false;
- Fixed incorrect LCD text string
- Fixed incorrect refresh of filament change screens
- Allow host control via touch UI
- Updates to leveling menu
- Modified ExtUI::isPrinting() to check if the job timer is running
- Added ExtUI method to check whether a host print is paused