Skip to content

File evaStdReaders.h

File List > src > evaStdReaders.h

Go to the documentation of this file

#pragma once

#include <Arduino.h>

namespace eva
{
    class ValueReader
    {
    private:
        signed short mValue = 0;

    public:
        void setValue(signed short value) { mValue = value; }
        signed short getValue() const { return mValue; }
        bool isValid() const { return true; }
    };

    template <int tPin, int tPinMode>
    class DigitalPinReader
    {
    public:
        DigitalPinReader()
        {
            pinMode(tPin, tPinMode);
        }

        signed short getValue()
        {
            return digitalRead(tPin);
        }
        bool isValid()
        {
            return true;
        }
    };

    template <int tPin, int tPinMode>
    class AnalogPinReader
    {
    public:
        AnalogPinReader()
        {
            pinMode(tPin, tPinMode);
        }

        signed short getValue()
        {
            return analogRead(tPin);
        }

        bool isValid()
        {
            return true;
        }
    };

    class AnalogMutablePinReader
    {
    public:
        AnalogMutablePinReader(uint8_t aPin, uint8_t aMode);

        signed short getValue();

        bool isValid();

    private:
        uint8_t mPin;
    };

    class DigitalMutablePinReader
    {
    public:
        DigitalMutablePinReader(uint8_t aPin, uint8_t aMode);

        signed short getValue();

        bool isValid();

    private:
        uint8_t mPin;
    };

};