fix autostart failure if in wrong directory

2.0.x
Bernhard 13 years ago
parent 396270a0de
commit 729cde4475

@ -31,6 +31,8 @@ public:
void ls(); void ls();
void chdir(const char * relpath); void chdir(const char * relpath);
void updir(); void updir();
void setroot();
FORCE_INLINE bool eof() { return sdpos>=filesize ;}; FORCE_INLINE bool eof() { return sdpos>=filesize ;};
FORCE_INLINE int16_t get() { sdpos = file.curPosition();return (int16_t)file.read();}; 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"); SERIAL_ECHOLNPGM("workDir open failed");
} }
} }
void CardReader::setroot()
{
curDir=&root;
if(!workDir.openRoot(&volume))
{
SERIAL_ECHOLNPGM("workDir open failed");
}
}
void CardReader::release() void CardReader::release()
{ {
sdprinting = false; sdprinting = false;

@ -467,7 +467,7 @@ void MainMenu::showPrepare()
MENUITEM( lcdprintPGM(" Main \003") , BLOCK;status=Main_Menu;beepshort(); ) ; MENUITEM( lcdprintPGM(" Main \003") , BLOCK;status=Main_Menu;beepshort(); ) ;
break; break;
case ItemP_autostart: 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; break;
case ItemP_disstep: case ItemP_disstep:
MENUITEM( lcdprintPGM(" Disable Steppers") , BLOCK;enquecommand("M84");beepshort(); ) ; MENUITEM( lcdprintPGM(" Disable Steppers") , BLOCK;enquecommand("M84");beepshort(); ) ;

Loading…
Cancel
Save