// -----------------------------------------------------------------------------
|
|
// Abstract emon sensor class (other sensor classes extend this class)
|
|
// Copyright (C) 2017-2019 by Xose Pérez <xose dot perez at gmail dot com>
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "BaseSensor.h"
|
|
|
|
class BaseAnalogSensor : public BaseSensor {
|
|
|
|
public:
|
|
|
|
virtual unsigned long getR0() { return _R0; }
|
|
virtual void setR0(unsigned long value) { _R0 = value; }
|
|
|
|
virtual unsigned long getRL() { return _Rl; }
|
|
virtual void setRL(unsigned long value) { _Rl = value; }
|
|
|
|
virtual unsigned long getRS() { return _Rs; }
|
|
virtual void setRS(unsigned long value) { _Rs = value; }
|
|
|
|
virtual void calibrate() { }
|
|
|
|
unsigned char type() { return sensor::type::Analog; }
|
|
|
|
protected:
|
|
|
|
unsigned long _R0; // R0, calibration value at 25º
|
|
unsigned long _Rl; // RL, load resistance
|
|
unsigned long _Rs; // cached resistance
|
|
|
|
};
|