Program Listing for File hss-shield-bts500xx.hpp

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

#ifndef HSS_SHIELD_BTS500xx_HPP_
#define HSS_SHIELD_BTS500xx_HPP_

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

namespace hss
{

class Bts500xxShield: public HssShield
{
    public:

                        Bts500xxShield(Hss *sw1, Hss *sw2, ADCPAL *vs, ADCPAL *vOut, ADCPAL *temp, BtxVariants_t *btxVariant1, BtxVariants_t *btxVariant2);
                        ~Bts500xxShield();

        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