54 lines
913 B
C++
54 lines
913 B
C++
#pragma once
|
|
|
|
#include "Arduino.h"
|
|
#include "measure_mode.h"
|
|
#include "board.h"
|
|
#include <vector>
|
|
|
|
#define UCCONTROLIO 6
|
|
|
|
class c_gainControl
|
|
{
|
|
const e_measureMode _mode;
|
|
|
|
bool _uc[UCCONTROLIO];
|
|
uint8_t _ucPin[UCCONTROLIO] = {UC01, UC02, UC03, UC04, UC05, UC06};
|
|
bool state = false;
|
|
|
|
public:
|
|
c_gainControl(e_measureMode mode, bool uc01, bool uc02, bool uc03, bool uc04, bool uc05, bool uc06) : _mode(mode)
|
|
{
|
|
_uc[0] = uc01;
|
|
_uc[1] = uc02;
|
|
_uc[02] = uc03;
|
|
_uc[03] = uc04;
|
|
_uc[04] = uc05;
|
|
_uc[05] = uc06;
|
|
}
|
|
|
|
void activate(void)
|
|
{
|
|
for(int i = 0; i < UCCONTROLIO-1;i++)
|
|
{
|
|
digitalWrite(_ucPin[i], _uc[i]);
|
|
}
|
|
state = true;
|
|
}
|
|
|
|
void deactivate(void)
|
|
{
|
|
state = false;
|
|
}
|
|
|
|
e_measureMode getMode(void)
|
|
{
|
|
return _mode;
|
|
}
|
|
};
|
|
|
|
void initGainControl(void);
|
|
void handleGainControl(void);
|
|
|
|
void resetGain(void);
|
|
bool setGain(e_measureMode mode);
|