implement and react to jog mode
This commit is contained in:
		@@ -58,6 +58,9 @@ LiquidCrystal lcd(PIN_LCD_RS, PIN_LCD_EN, PIN_LCD_DB4, PIN_LCD_DB5, PIN_LCD_DB6,
 | 
			
		||||
 | 
			
		||||
BasicStepperDriver stepper(STEPPER_STEPS, PIN_STEPPER_DIR, PIN_STEPPER_STEP);
 | 
			
		||||
 | 
			
		||||
enum State { MENU, JOG, RUN };
 | 
			
		||||
State state = MENU;
 | 
			
		||||
 | 
			
		||||
// ===
 | 
			
		||||
 | 
			
		||||
result doAlert(eventMask e, prompt &item);
 | 
			
		||||
@@ -122,18 +125,18 @@ MENU(subMenu,"Sub-Menu",doNothing,anyEvent,wrapStyle
 | 
			
		||||
  ,EXIT("<Back")
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
MENU(mainMenu,"Main menu",doNothing,noEvent,wrapStyle
 | 
			
		||||
  ,OP("Op1",action1,anyEvent)
 | 
			
		||||
  ,OP("Op2",action2,enterEvent)
 | 
			
		||||
  ,FIELD(test,"Test","%",0,100,10,1,doNothing,noEvent,wrapStyle)
 | 
			
		||||
  ,SUBMENU(subMenu)
 | 
			
		||||
  ,SUBMENU(setLed)
 | 
			
		||||
  ,OP("LED On",myLedOn,enterEvent)
 | 
			
		||||
  ,OP("LED Off",myLedOff,enterEvent)
 | 
			
		||||
  ,SUBMENU(selMenu)
 | 
			
		||||
  ,SUBMENU(chooseMenu)
 | 
			
		||||
MENU(mainMenu, "PhotoStepper", doNothing, noEvent, wrapStyle
 | 
			
		||||
  //,SUBMENU(subMenu)
 | 
			
		||||
  ,OP("Op1", action1, anyEvent)
 | 
			
		||||
  //,OP("Op2",action2,enterEvent)
 | 
			
		||||
  //,FIELD(test,"Test","%",0,100,10,1,doNothing,noEvent,wrapStyle)
 | 
			
		||||
  //,SUBMENU(setLed)
 | 
			
		||||
  //,OP("LED On",myLedOn,enterEvent)
 | 
			
		||||
  //,OP("LED Off",myLedOff,enterEvent)
 | 
			
		||||
  //,SUBMENU(selMenu)
 | 
			
		||||
  //,SUBMENU(chooseMenu)
 | 
			
		||||
  ,OP("Alert test",doAlert,enterEvent)
 | 
			
		||||
  ,EXIT("<Back")
 | 
			
		||||
  //,EXIT("<Back")
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
MENU_OUTPUTS(out,MAX_DEPTH
 | 
			
		||||
@@ -152,7 +155,7 @@ result alert(menuOut& o,idleEvent e) {
 | 
			
		||||
    o.setCursor(0,1);
 | 
			
		||||
    o.print("[select] to continue...");
 | 
			
		||||
    Serial.println("rotating...");
 | 
			
		||||
    stepper.startRotate(360);
 | 
			
		||||
    state = JOG;
 | 
			
		||||
  }
 | 
			
		||||
  return proceed;
 | 
			
		||||
}
 | 
			
		||||
@@ -173,17 +176,12 @@ result idle(menuOut& o,idleEvent e) {
 | 
			
		||||
 | 
			
		||||
// ===
 | 
			
		||||
 | 
			
		||||
void ButtonHandler(const ButtonParam& param)
 | 
			
		||||
{
 | 
			
		||||
void ButtonHandler(const ButtonParam& param) {
 | 
			
		||||
  Serial.print(param.button);
 | 
			
		||||
  Serial.print(" ");
 | 
			
		||||
  switch (state) {
 | 
			
		||||
    case MENU:
 | 
			
		||||
      switch (param.state) {
 | 
			
		||||
    case ButtonState_Up:
 | 
			
		||||
      Serial.print("Up");
 | 
			
		||||
      break;
 | 
			
		||||
    case ButtonState_Down:
 | 
			
		||||
      Serial.print("Down");
 | 
			
		||||
      break;
 | 
			
		||||
        case ButtonState_Click:
 | 
			
		||||
          Serial.print("Click");
 | 
			
		||||
          switch (param.button) {
 | 
			
		||||
@@ -203,6 +201,32 @@ void ButtonHandler(const ButtonParam& param)
 | 
			
		||||
          }
 | 
			
		||||
          nav.doOutput();
 | 
			
		||||
          break;
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case JOG:
 | 
			
		||||
      switch (param.state) {
 | 
			
		||||
        case ButtonState_Up:
 | 
			
		||||
          Serial.print("Up");
 | 
			
		||||
          break;
 | 
			
		||||
        case ButtonState_Down:
 | 
			
		||||
          Serial.print("Down");
 | 
			
		||||
          break;
 | 
			
		||||
        case ButtonState_Click:
 | 
			
		||||
          Serial.print("Click");
 | 
			
		||||
          switch (param.button) {
 | 
			
		||||
            case 1: // up
 | 
			
		||||
              stepper.startRotate(-30);
 | 
			
		||||
              break;
 | 
			
		||||
            case 2: // down
 | 
			
		||||
              stepper.startRotate(30);
 | 
			
		||||
              break;
 | 
			
		||||
            case 4: // select
 | 
			
		||||
              state = MENU;
 | 
			
		||||
              nav.doNav(leftCmd);
 | 
			
		||||
              nav.doOutput();
 | 
			
		||||
              break;
 | 
			
		||||
          }
 | 
			
		||||
          break;
 | 
			
		||||
        case ButtonState_DoubleClick:
 | 
			
		||||
          Serial.print("Double Click");
 | 
			
		||||
          break;
 | 
			
		||||
@@ -210,6 +234,8 @@ void ButtonHandler(const ButtonParam& param)
 | 
			
		||||
          Serial.print("Hold");
 | 
			
		||||
          break;
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  Serial.println();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user