got rid of example menu

This commit is contained in:
Ronald Schaten 2022-02-01 15:15:57 +01:00
parent 56b1ca8627
commit 6546f11437

View File

@ -10,8 +10,6 @@
// - https://www.arduino.cc/reference/en/libraries/arduinomenu-library/
// - https://www.arduino.cc/reference/en/libraries/stepperdriver/
// - https://www.arduino.cc/reference/en/libraries/analogkeypad/
//
// this is still WIP, the menu is basically taken from example code.
#include <Arduino.h>
#include <AnalogKeypad.h>
@ -19,10 +17,6 @@
#include <menu.h>
#include <menuIO/liquidCrystalOut.h>
#include <menuIO/serialIO.h>
#include <menuIO/stringIn.h>
#include <menuIO/chainStream.h>
//using namespace Menu;
// analog keypad
#define PIN_BUTTON 0
@ -63,116 +57,20 @@ State state = MENU;
// ===
result doAlert(eventMask e, prompt &item);
result showEvent(eventMask e) {
Serial.print("event: ");
Serial.println(e);
return proceed;
}
int test=55;
result action1(eventMask e,navNode& nav, prompt &item) {
Serial.print("action1 event:");
Serial.println(e);
Serial.flush();
return proceed;
}
result action2(eventMask e) {
Serial.print("actikon2 event:");
Serial.println(e);
Serial.flush();
return quit;
}
int ledCtrl=LOW;
result myLedOn() {
ledCtrl=HIGH;
return proceed;
}
result myLedOff() {
ledCtrl=LOW;
return proceed;
}
TOGGLE(ledCtrl,setLed,"Led: ",doNothing,noEvent,wrapStyle//,doExit,enterEvent,noStyle
,VALUE("On",HIGH,doNothing,noEvent)
,VALUE("Off",LOW,doNothing,noEvent)
);
int selTest=0;
SELECT(selTest,selMenu,"Select",doNothing,noEvent,wrapStyle
,VALUE("Zero",0,doNothing,noEvent)
,VALUE("One",1,doNothing,noEvent)
,VALUE("Two",2,doNothing,noEvent)
);
int chooseTest=-1;
CHOOSE(chooseTest,chooseMenu,"Choose",doNothing,noEvent,wrapStyle
,VALUE("First",1,doNothing,noEvent)
,VALUE("Second",2,doNothing,noEvent)
,VALUE("Third",3,doNothing,noEvent)
,VALUE("Last",-1,doNothing,noEvent)
);
MENU(subMenu,"Sub-Menu",doNothing,anyEvent,wrapStyle
,OP("Sub1",showEvent,enterEvent)
,OP("Sub2",showEvent,enterEvent)
,OP("Sub3",showEvent,enterEvent)
,EXIT("<Back")
);
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)
MENU(mainMenu, "Main menu", doNothing, noEvent, wrapStyle
,OP("Sub1", doNothing, noEvent)
,OP("Sub2", doNothing, noEvent)
,OP("Sub3", doNothing, noEvent)
//,EXIT("<Back")
);
MENU_OUTPUTS(out,MAX_DEPTH
,LIQUIDCRYSTAL_OUT(lcd,{0,0,16,2})
,NONE//must have 2 items at least
MENU_OUTPUTS(out, MAX_DEPTH
,LIQUIDCRYSTAL_OUT(lcd, {0, 0, 16, 20})
,NONE
);
stringIn<0> strIn;
serialIn serial(Serial);
NAVROOT(nav,mainMenu,MAX_DEPTH,serial,out);
result alert(menuOut& o,idleEvent e) {
if (e==idling) {
o.setCursor(0,0);
o.print("alert test");
o.setCursor(0,1);
o.print("[select] to continue...");
Serial.println("rotating...");
state = JOG;
}
return proceed;
}
result doAlert(eventMask e, prompt &item) {
nav.idleOn(alert);
return proceed;
}
result idle(menuOut& o,idleEvent e) {
switch(e) {
case idleStart:o.print("suspending menu!");break;
case idling:o.print("suspended...");break;
case idleEnd:o.print("resuming menu.");break;
}
return proceed;
}
serialIn in(Serial);
NAVROOT(nav, mainMenu, MAX_DEPTH, in, out);
// ===
@ -244,14 +142,10 @@ void setup() {
while(!Serial);
Serial.println("PhotoStepper -- schatenseite.de");
pinMode(PIN_LED, OUTPUT);
// control backlight
pinMode(PIN_LCD_BL, OUTPUT);
digitalWrite(PIN_LCD_BL, HIGH);
nav.idleTask=idle;//point a function to be used when menu is suspended
stepper.begin(STEPPER_RPM, STEPPER_MICROSTEPS);
stepper.setSpeedProfile(stepper.LINEAR_SPEED, STEPPER_ACCEL, STEPPER_DECEL);
@ -260,11 +154,11 @@ void setup() {
lcd.print("PhotoStepper");
lcd.setCursor(0, 1);
lcd.print("schatenseite.de");
delay(500);
delay(2000);
nav.doOutput();
}
void loop() {
keypad.loop(ButtonHandler);
stepper.nextAction();
digitalWrite(PIN_LED, ledCtrl);
}