Browse Source

fix autostart failure if in wrong directory

pull/1/head
Bernhard 13 years ago
parent
commit
729cde4475
  1. 2
      Marlin/cardreader.h
  2. 9
      Marlin/cardreader.pde
  3. 2
      Marlin/ultralcd.pde

2
Marlin/cardreader.h

@ -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();};

9
Marlin/cardreader.pde

@ -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;

2
Marlin/ultralcd.pde

@ -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(); ) ;

Loading…
Cancel
Save