/* * RotaryControler.cpp * * Created on: 04.02.2022 * Author: FSmilari */ #include "RotaryControler.h" /***************** ** Constructors. ****************/ RotaryControler::RotaryControler(int RotEnc_Dta_Pin, int RotEnc_Clk_Pin, int RotEnc_Switch_Pin) : Encoder(RotEnc_Dta_Pin, RotEnc_Clk_Pin, RotaryEncoder::LatchMode::FOUR3), RotarySwitch(RotEnc_Switch_Pin, true, 2000) { position = 0; Encoder.setPosition(position); } /****************** ** Public methods *****************/ void RotaryControler::tick(void) { Encoder.tick(); } void RotaryControler::resetPosition(void) { Encoder.setPosition(0L); } long RotaryControler::getPosition(void) { return Encoder.getPosition(); } int RotaryControler::getDirection(void) { return (int) Encoder.getPosition(); } bool RotaryControler::isSwitchPressed(void) { return RotarySwitch.isPressed(); } bool RotaryControler::isSwitchLongPressed(void) { return RotarySwitch.isLongPressed(); } void RotaryControler::setDebounceTime(unsigned long time) { RotarySwitch.setDebounceTime(time); } void RotaryControler::loop(void) { RotarySwitch.loop(); Encoder.tick(); } RotaryEncoder::Direction RotaryControler::getEncoderMove() { RotaryEncoder::Direction dir = Encoder.getDirection(); return dir; }