Program Listing for File hss-shield-bth500xx.hpp

Return to documentation for file (src/corelib/hss-shield-bth500xx.hpp)

#ifndef HSS_SHIELD_BTH500XX_HPP_
#define HSS_SHIELD_BTH500XX_HPP_

#include "hss-shield.hpp"
#include "hss-variants.hpp"
#include "hss.hpp"

namespace hss
{

class Bth500xxShield: public HssShield
{
    public:
        Bth500xxShield(Hss* sw1, Hss* sw2, ADCPAL* vs, ADCPAL* vOut, ADCPAL* temp, BtxVariants_t* btxVariant1, BtxVariants_t* btxVariant2);
        ~Bth500xxShield();

        Error_t init();
        Error_t deinit();
        Error_t switchHxOn(uint8_t x);
        Error_t switchHxOff(uint8_t x);

        DiagStatus_t readDiagx(uint8_t x);
        float readIsx(uint8_t x);

        Error_t switchesHxOn(bool h1 = false, bool h2 = false);
        Error_t switchesHxOff(bool h1 = false, bool h2 = false);

        float readVs();
        float readVOut();
        float readTemperature();

    protected:

        static constexpr uint8_t hssNum = 2;
        Hss* switches[hssNum];
        ADCPAL* vs;
        ADCPAL* vOut;
        ADCPAL* temp;
        BtxVariants_t* btxVariant1;
        BtxVariants_t* btxVariant2;
        ExponentialFilter* filterVs;
        ExponentialFilter* filterVOut;
        ExponentialFilter* filterTemp;
};

}

#endif