19#ifndef SRC_SUPLA_SENSOR_GENERAL_PURPOSE_CHANNEL_BASE_H_
20#define SRC_SUPLA_SENSOR_GENERAL_PURPOSE_CHANNEL_BASE_H_
22#include <supla/channel_element.h>
42 int32_t multiplier = 0;
44 uint8_t precision = 0;
45 uint8_t noSpaceBeforeValue = 0;
46 uint8_t noSpaceAfterValue = 0;
47 uint8_t keepHistory = 0;
48 uint8_t chartType = 0;
49 uint16_t refreshIntervalMs = 0;
50 char unitBeforeValue[SUPLA_GENERAL_PURPOSE_UNIT_SIZE] = {};
51 char unitAfterValue[SUPLA_GENERAL_PURPOSE_UNIT_SIZE] = {};
64 bool addMemoryVariableDriver =
true);
104 virtual void setValue(
const double &value);
365 void setChartType(uint8_t chartType,
bool local =
true);
451 virtual void setChannelRefreshIntervalMs(uint16_t intervalMs);
453 MeasurementDriver *driver =
nullptr;
454 uint16_t refreshIntervalMs = 5000;
455 uint32_t lastReadTime = 0;
456 bool deleteDriver =
false;
458 int32_t defaultValueDivider = 0;
459 int32_t defaultValueMultiplier = 0;
460 int64_t defaultValueAdded = 0;
461 uint8_t defaultValuePrecision = 0;
463 char defaultUnitBeforeValue[SUPLA_GENERAL_PURPOSE_UNIT_SIZE] = {};
465 char defaultUnitAfterValue[SUPLA_GENERAL_PURPOSE_UNIT_SIZE] = {};
GeneralPurposeChannelBase(MeasurementDriver *driver=nullptr, bool addMemoryVariableDriver=true)
Constructor.
Definition general_purpose_channel_base.cpp:33
Definition SuplaDevice.h:93
void getDefaultUnitAfterValue(char unit[SUPLA_GENERAL_PURPOSE_UNIT_SIZE])
Returns default unit which is displayed after value.
Definition general_purpose_channel_base.cpp:241
uint8_t getValuePrecision() const
Returns precision (number of decimal places)
Definition general_purpose_channel_base.cpp:261
void setValueMultiplier(int32_t multiplier, bool local=true)
Sets value multiplier.
Definition general_purpose_channel_base.cpp:344
void setDefaultValueAdded(int64_t added)
Sets default value added.
Definition general_purpose_channel_base.cpp:187
void setChartType(uint8_t chartType, bool local=true)
Sets chart type.
Definition general_purpose_channel_base.cpp:444
void setValueAdded(int64_t added, bool local=true)
Sets value added.
Definition general_purpose_channel_base.cpp:355
void onInit() override
Supla::Element::onInit() - called by SuplaDeviceClass::begin() during initialization.
Definition general_purpose_channel_base.cpp:160
int64_t getDefaultValueAdded() const
Returns default value added.
Definition general_purpose_channel_base.cpp:225
void getDefaultUnitBeforeValue(char unit[SUPLA_GENERAL_PURPOSE_UNIT_SIZE])
Returns default unit which is displayed before value.
Definition general_purpose_channel_base.cpp:233
void setNoSpaceAfterValue(uint8_t noSpaceAfterValue, bool local=true)
Sets no space after value.
Definition general_purpose_channel_base.cpp:422
int32_t getDefaultValueMultiplier() const
Returns default value multiplier.
Definition general_purpose_channel_base.cpp:221
void setDefaultUnitBeforeValue(const char *unit)
Sets default unit which is displayed before value.
Definition general_purpose_channel_base.cpp:199
GeneralPurposeChannelBase(MeasurementDriver *driver=nullptr, bool addMemoryVariableDriver=true)
Constructor.
Definition general_purpose_channel_base.cpp:33
void setKeepHistory(uint8_t keepHistory, bool local=true)
Sets keep history flag.
Definition general_purpose_channel_base.cpp:433
void getUnitAfterValue(char unit[SUPLA_GENERAL_PURPOSE_UNIT_SIZE]) const
Returns unit which is displayed after value.
Definition general_purpose_channel_base.cpp:275
double getCalculatedValue()
Returns calculated value, which is result of the following operations:
Definition general_purpose_channel_base.cpp:52
int64_t getValueAdded() const
Returns value added.
Definition general_purpose_channel_base.cpp:257
void setDefaultUnitAfterValue(const char *unit)
Sets default unit which is displayed after value.
Definition general_purpose_channel_base.cpp:208
uint8_t getNoSpaceAfterValue() const
Returns no space after value.
Definition general_purpose_channel_base.cpp:287
void iterateAlways() override
Supla::Element::iterateAlways() - called by SuplaDeviceClass::iterate()
Definition general_purpose_channel_base.cpp:167
void onLoadConfig(SuplaDeviceClass *sdc) override
Supla::Element::onLoadConfig() - called by SuplaDeviceClass::loadConfig() during initialization.
Definition general_purpose_channel_base.cpp:114
void setDefaultValueDivider(int32_t divider)
Sets default value divider.
Definition general_purpose_channel_base.cpp:174
uint8_t getChartType() const
Returns chart type.
Definition general_purpose_channel_base.cpp:295
uint8_t getKeepHistory() const
Returns keep history flag.
Definition general_purpose_channel_base.cpp:291
uint8_t getNoSpaceBeforeValue() const
Returns no space before value.
Definition general_purpose_channel_base.cpp:283
void fillChannelConfig(void *channelConfig, int *size) override
Fills Channel Config.
Definition general_purpose_channel_base.cpp:510
void getFormattedValue(char *result, int maxSize)
Returns formatted value as char array (including units, precision, etc.)
Definition general_purpose_channel_base.cpp:71
void setRefreshIntervalMs(int32_t intervalMs, bool local=true)
Sets refresh interval in milliseconds.
Definition general_purpose_channel_base.cpp:315
int32_t getValueDivider() const
Returns value divider.
Definition general_purpose_channel_base.cpp:249
uint8_t applyChannelConfig(TSD_ChannelConfig *result, bool local) override
Applies new Channel Config (i.e.
Definition general_purpose_channel_base.cpp:454
int32_t getDefaultValueDivider() const
Returns default value divider.
Definition general_purpose_channel_base.cpp:217
void getUnitBeforeValue(char unit[SUPLA_GENERAL_PURPOSE_UNIT_SIZE]) const
Returns unit which is displayed before value.
Definition general_purpose_channel_base.cpp:265
void setUnitAfterValue(const char *unit, bool local=true)
Sets unit which is displayed after value.
Definition general_purpose_channel_base.cpp:394
void setValueDivider(int32_t divider, bool local=true)
Sets value divider.
Definition general_purpose_channel_base.cpp:334
void setUnitBeforeValue(const char *unit, bool local=true)
Sets unit which is displayed before value.
Definition general_purpose_channel_base.cpp:376
virtual ~GeneralPurposeChannelBase()
Destructor.
Definition general_purpose_channel_base.cpp:44
virtual void setValue(const double &value)
Method used to set new value for channel with driver which accepts MeasurementDriver::setValue() meth...
Definition general_purpose_channel_base.cpp:569
void setDefaultValuePrecision(uint8_t precision)
Sets default precision (number of decimal places)
Definition general_purpose_channel_base.cpp:192
int32_t getValueMultiplier() const
Returns value multiplier.
Definition general_purpose_channel_base.cpp:253
void setNoSpaceBeforeValue(uint8_t noSpaceBeforeValue, bool local=true)
Sets no space before value.
Definition general_purpose_channel_base.cpp:411
void setDefaultValueMultiplier(int32_t multiplier)
Sets default value multiplier.
Definition general_purpose_channel_base.cpp:180
void setValuePrecision(uint8_t precision, bool local=true)
Sets precision.
Definition general_purpose_channel_base.cpp:365
uint16_t getRefreshIntervalMs() const
Returns refresh interval in milliseconds.
Definition general_purpose_channel_base.cpp:299
virtual double getValue()
Method used to obtain new value for channel.
Definition general_purpose_channel_base.cpp:153
uint8_t getDefaultValuePrecision() const
Returns default precision (number of decimal places)
Definition general_purpose_channel_base.cpp:229
Definition measurement_driver.h:24
Definition general_purpose_channel_base.h:40
Definition general_purpose_channel_base.h:40