Skip to content

File VoctCalibration.h

File List > external-docs > libDaisy > src > util > VoctCalibration.h

Go to the documentation of this file

Source Code

#pragma once

namespace daisy
{
class VoctCalibration
{
  public:
    VoctCalibration() : scale_(0.f), offset_(0.f), cal_(false) {}

    ~VoctCalibration() {}

    bool Record(float val1V, float val3V)
    {
        float delta = val3V - val1V;
        scale_      = 24.f / delta;
        offset_     = 12.f - scale_ * val1V;
        cal_        = true;
        return cal_;
    }

    bool GetData(float &scale, float &offset)
    {
        scale  = scale_;
        offset = offset_;
        return cal_;
    }

    void SetData(float scale, float offset)
    {
        scale_  = scale;
        offset_ = offset;
        cal_    = true;
    }

    inline float ProcessInput(const float inval)
    {
        return offset_ + (scale_ * inval);
    }

  private:
    float scale_, offset_;
    bool  cal_;
};

} // namespace daisy