fix autostart failure if in wrong directory
This commit is contained in:
parent
396270a0de
commit
729cde4475
3 changed files with 12 additions and 1 deletions
|
@ -31,6 +31,8 @@ public:
|
|||
void ls();
|
||||
void chdir(const char * relpath);
|
||||
void updir();
|
||||
void setroot();
|
||||
|
||||
|
||||
FORCE_INLINE bool eof() { return sdpos>=filesize ;};
|
||||
FORCE_INLINE int16_t get() { sdpos = file.curPosition();return (int16_t)file.read();};
|
||||
|
|
|
@ -164,6 +164,15 @@ void CardReader::initsd()
|
|||
SERIAL_ECHOLNPGM("workDir open failed");
|
||||
}
|
||||
}
|
||||
|
||||
void CardReader::setroot()
|
||||
{
|
||||
curDir=&root;
|
||||
if(!workDir.openRoot(&volume))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("workDir open failed");
|
||||
}
|
||||
}
|
||||
void CardReader::release()
|
||||
{
|
||||
sdprinting = false;
|
||||
|
|
|
@ -467,7 +467,7 @@ void MainMenu::showPrepare()
|
|||
MENUITEM( lcdprintPGM(" Main \003") , BLOCK;status=Main_Menu;beepshort(); ) ;
|
||||
break;
|
||||
case ItemP_autostart:
|
||||
MENUITEM( lcdprintPGM(" Autostart") , BLOCK;card.lastnr=0;card.checkautostart(true);beepshort(); ) ;
|
||||
MENUITEM( lcdprintPGM(" Autostart") , BLOCK;card.lastnr=0;card.setroot();card.checkautostart(true);beepshort(); ) ;
|
||||
break;
|
||||
case ItemP_disstep:
|
||||
MENUITEM( lcdprintPGM(" Disable Steppers") , BLOCK;enquecommand("M84");beepshort(); ) ;
|
||||
|
|
Reference in a new issue