38namespace strain {
namespace dsp {
40 using FSC = std::uint16_t;
41 using Q15 = std::int16_t;
46namespace strain {
namespace dsp {
namespace fsc {
54 bool convert(
const std::vector<double> &in, std::vector<FSC> &
out);
55 bool convert(
const std::vector<FSC> &in, std::vector<double> &
out);
59namespace strain {
namespace dsp {
namespace q15 {
77 bool convert(
const std::vector<double> &in, std::vector<Q15> &
out);
78 bool convert(
const std::vector<Q15> &in, std::vector<double> &
out);
109 bool multiply(
const matrix &m1,
const matrix &m2, matrix &res,
bool &saturated);
110 bool add(
const matrix &m1,
const matrix &m2, matrix &res,
bool &saturated);
116namespace strain {
namespace amplifier {
128 enum class DiscreteGain {
val256 = 0,
val128 = 1,
val96 = 2,
val64 = 3,
val48 = 4,
val36 = 5,
val24 = 6,
val20 = 7,
val16 = 8,
val10 = 9,
val08 = 10,
val06 = 11,
val04 = 12,
none = 32,
maxnumberof = 13 };
164 bool convert(
const WideParams &wp, DiscreteParams &dp);
173 virtual std::uint8_t
size() = 0;
212 bool import(
const Registers ®s,
WideParams *wideparams =
nullptr);
215 bool import(
const DiscreteParams &discreteparams, Registers *regs =
nullptr);
216 bool get(Registers ®s);
226 bool load(
const Registers ®s);
247 void testIT(std::string &output);
256namespace strain {
namespace regulation {
334 bool read(
const std::string filename, FullRegulation ®);
virtual std::uint8_t size()=0
virtual bool load(const void *data, const size_t size)=0
virtual bool fill(void *data, size_t &size)=0
static const std::uint8_t defval[sizeofregisters]
virtual bool load(const void *data, const size_t size)
static const std::uint8_t sizeofregisters
std::uint8_t Voffsetcoarse
virtual std::uint8_t size()
Registers(void *data, size_t size)
virtual bool fill(void *data, size_t &size)
bool get(DiscreteParams &discreteparams)
bool load(const Registers ®s)
bool get(WideParams &wideparams)
const Offset minimumOffset
const Offset maximumOffset
Gain convert(const DiscreteGain dg)
void testIT(std::string &output)
const Offset midrangeOffset
FSC convert(const double v, bool &saturated)
std::uint16_t Q15toU16(const Q15 valQ15)
Q15 saturate(const Q15result x, bool &saturated)
Q15 convert(const double v, bool &saturated)
bool multiply(const matrix &m1, const matrix &m2, matrix &res, bool &saturated)
Q15 div(const Q15 a, const Q15 b, bool &saturated)
Q15 mul(const Q15 a, const Q15 b, bool &saturated)
Q15 U16toQ15(const std::uint16_t valU16)
Q15 opposite(const Q15 v)
Q15 add(const Q15 a, const Q15 b)
const std::uint8_t maxSets
bool write(const std::string filename, const FullRegulation ®)
bool apply(cDownloader *down, const FullRegulation ®)
bool read(const std::string fname, FullRegulation ®)
const std::uint8_t numberofchannels
void load(DiscreteGain _dg, Offset _o)
void load(DiscreteGain _dg, Offset _o)
void load(const DiscreteParams &_dp)
void load(Gain _g, Offset _o)
void set(std::uint8_t r, std::uint8_t c, Q15 v)
Q15 get(std::uint8_t r, std::uint8_t c)
matrix(std::uint8_t r, std::uint8_t c, Q15 *d)
void load(std::uint8_t r, std::uint8_t c, Q15 *d)
std::uint8_t offset[strain::numberofchannels]
std::uint8_t amplregs[strain::numberofchannels][strain::amplifier::PGA308::Registers::sizeofregisters]
strain::dsp::Q15 matrix[strain::numberofchannels *strain::numberofchannels]
strain::dsp::FSC fullscale[strain::numberofchannels]
std::uint16_t tare[strain::numberofchannels]
std::uint8_t set2useatbootstrap