From cc4a9cdb69081f4498a5268a682c8d9674f66bcb Mon Sep 17 00:00:00 2001
From: Bernhard <bkubicek@x201.(none)>
Date: Fri, 9 Dec 2011 12:33:00 +0100
Subject: [PATCH] added autostart procedure trigger to the ultralcd menu

---
 Marlin/cardreader.h   |  1 +
 Marlin/cardreader.pde |  6 ++++--
 Marlin/ultralcd.pde   | 15 ++++++++++-----
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/Marlin/cardreader.h b/Marlin/cardreader.h
index 70244a8774..70f0d2c1d9 100644
--- a/Marlin/cardreader.h
+++ b/Marlin/cardreader.h
@@ -44,6 +44,7 @@ public:
   bool cardOK ;
   char filename[11];
   bool filenameIsDir;
+  int lastnr; //last number of the autostart;
 private:
   SdFile root,*curDir,workDir,workDirParent,workDirParentParent;
   Sd2Card card;
diff --git a/Marlin/cardreader.pde b/Marlin/cardreader.pde
index 1eb19ba00c..8355f6aeda 100644
--- a/Marlin/cardreader.pde
+++ b/Marlin/cardreader.pde
@@ -14,6 +14,7 @@ CardReader::CardReader()
    autostart_atmillis=0;
 
    autostart_stilltocheck=true; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
+   lastnr=0;
   //power to SD reader
   #if SDPOWER > -1
     SET_OUTPUT(SDPOWER); 
@@ -334,7 +335,7 @@ void CardReader::checkautostart(bool force)
     if(!cardOK) //fail
       return;
   }
-  static int lastnr=0;
+  
   char autoname[30];
   sprintf(autoname,"auto%i.g",lastnr);
   for(int8_t i=0;i<(int)strlen(autoname);i++)
@@ -434,7 +435,8 @@ void CardReader::printingHasFinished()
  sdprinting = false;
  if(SD_FINISHED_STEPPERRELEASE)
  {
-   finishAndDisableSteppers();
+   //finishAndDisableSteppers();
+   enquecommand("M84");
  }
  autotempShutdown();
 }
diff --git a/Marlin/ultralcd.pde b/Marlin/ultralcd.pde
index 88f8f32fb3..e89474ed28 100644
--- a/Marlin/ultralcd.pde
+++ b/Marlin/ultralcd.pde
@@ -437,7 +437,7 @@ void MainMenu::showStatus()
   force_lcd_update=false;
 }
 
-enum {ItemP_exit, ItemP_home, ItemP_origin, ItemP_preheat, ItemP_extrude, ItemP_disstep};
+enum {ItemP_exit, ItemP_autostart,ItemP_disstep,ItemP_home, ItemP_origin, ItemP_preheat, ItemP_extrude};
 
 //any action must not contain a ',' character anywhere, or this breaks:
 #define MENUITEM(repaint_action, click_action) \
@@ -458,6 +458,12 @@ void MainMenu::showPrepare()
     case ItemP_exit:
       MENUITEM(  lcdprintPGM(" Main \003")  ,  BLOCK;status=Main_Menu;beepshort(); ) ;
       break;
+    case ItemP_autostart:
+      MENUITEM(  lcdprintPGM(" Autostart")  ,  BLOCK;card.lastnr=0;card.checkautostart(true);beepshort(); ) ;
+      break;
+    case ItemP_disstep:
+      MENUITEM(  lcdprintPGM(" Disable Steppers")  ,  BLOCK;enquecommand("M84");beepshort(); ) ;
+      break;
     case ItemP_home:
       MENUITEM(  lcdprintPGM(" Auto Home")  ,  BLOCK;enquecommand("G28 X-105 Y-105 Z0");beepshort(); ) ;
       break;
@@ -470,15 +476,14 @@ void MainMenu::showPrepare()
     case ItemP_extrude:
       MENUITEM(  lcdprintPGM(" Extrude")  ,  BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E50");beepshort(); ) ;
       break;
-    case ItemP_disstep:
-      MENUITEM(  lcdprintPGM(" Disable Steppers")  ,  BLOCK;enquecommand("M84");beepshort(); ) ;
-      break;
+    
+    
     default:   
       break;
   }
   line++;
  }
- updateActiveLines(ItemP_disstep,encoderpos);
+ updateActiveLines(ItemP_extrude,encoderpos);
 }
 
 enum {ItemT_exit,ItemT_speed,ItemT_flow,ItemT_nozzle,ItemT_fan};
-- 
GitLab