| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- * RouterElevator.h
- *
- * Created on: 12.02.2022
- * Author: FSmilari
- */
-
- #ifndef ROUTERELEVATOR_H_
- #define ROUTERELEVATOR_H_
-
- #include <Arduino.h>
- #include <ESP_FlexyStepper.h>
-
- #include "Display.h"
- #include "WLS.h"
- #include "RouterSetup.h"
- #include "ValueMode.h"
-
- class RouterElevator {
-
- private:
- ESP_FlexyStepper &Stepper;
- Display &display;
- RouterSetup &Router_Setup;
- int previousDirection = 0;
- byte limitSwitchState = 1;
- int LimitSwitch;
- WLS &WlsDetect, &Wls;
- int DOWNWARD_DIR;
- int UPWARD_DIR;
- float targetDistance;
- float maxDiveDistance;
- ValueMode mode;
- bool doDiveInitialization;
- bool nullingDone;
-
- public:
- RouterElevator(ESP_FlexyStepper &_Stepper, Display &_display, RouterSetup &_Router_Setup,
- WLS &_WlsDetect, WLS &_Wls, int _LimitSwitch, int _DOWNWARD_DIR);
- void setZeroPosition();
- void moveRelativeInMillimeters(float distanceInMillimeters);
- void moveToLowerLimitSwitch(void);
- void moveToUpperLimitSwitch(void);
- void moveToTarget(void);
- void moveToParkPosition(void);
- void clearLimitSwitch(void);
- void tryReleaseLimitSwitch(void);
- bool isLimitSwitchTriggerd(void);
- bool isWLSTriggerd(void);
- bool isTargetPositionReached(void);
- void limitSwitchHandler(void);
- void checkDirection(void);
- ValueMode getMode() const;
- void setMode(ValueMode mode);
- void toggleMode();
- void onRotaryControlerTurn(RotaryEncoder::Direction turn);
- bool isDoDiveInitialization() const;
- void setDoDiveInitialization(bool doDiveInitialization);
- float getMaxDiveDistance() const;
- void setMaxDiveDistance();
- bool incrementDiveDistance();
- bool maxDiveDistanceReached();
- void resetNullingDone();
- };
-
-
- #endif /* ROUTERELEVATOR_H_ */
|