Program Listing for File hss.hpp
↰ Return to documentation for file (src/corelib/hss.hpp)
#ifndef HSS_H_
#define HSS_H_
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include "hss-types.hpp"
#include "hss-pal-timer.hpp"
#include "hss-pal-gpio.hpp"
#include "hss-pal-adc.hpp"
#include "hss-variants.hpp"
#include "hss-filter.hpp"
namespace hss
{
class Hss
{
public:
Hss(GPIOPAL *den, GPIOPAL *in, ADCPAL *is, TimerPAL *timer, BtxVariants_t *btxVariant);
Hss(GPIOPAL *den, GPIOPAL *in0, GPIOPAL *in1, GPIOPAL *dsel, ADCPAL *is, TimerPAL *timer, BtxVariants_t *btxVariant);
~Hss();
Error_t init();
Error_t deinit();
Error_t enable(Channel_t ch=CHANNEL0);
Error_t disable(Channel_t ch=CHANNEL0);
Error_t enableDiag();
Error_t disableDiag();
Status_t getSwitchStatus();
DiagStatus_t diagRead(float senseCurrent, Channel_t ch=CHANNEL0);
float readIs(uint16_t rSense, Channel_t ch=CHANNEL0);
void setCurrentOffset(float offset);
protected:
GPIOPAL *den;
GPIOPAL *in0;
GPIOPAL *in1;
GPIOPAL *dsel;
ADCPAL *is;
TimerPAL *timer;
ExponentialFilter *currentFilter;
BtxVariants_t *btxVariant;
Status_t status;
Status_t statusCh0;
Status_t statusCh1;
DiagEnable_t diagEnb;
DiagStatus_t diagStatus;
Error_t selDiagCh(Channel_t ch);
private:
float currentOffset = 0.0;
};
}
#endif