supla-device
Loading...
Searching...
No Matches
virtual_impulse_counter.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_SENSOR_VIRTUAL_IMPULSE_COUNTER_H_
5#define SRC_SUPLA_SENSOR_VIRTUAL_IMPULSE_COUNTER_H_
6
7#include <supla-common/proto.h>
8#include <supla/action_handler.h>
9#include <supla/channel_element.h>
10
11namespace Supla {
12
13namespace Sensor {
15 public:
17
18 void onInit() override;
19 void onLoadState() override;
20 void onSaveState() override;
21 void iterateAlways() override;
22 void handleAction(int event, int action) override;
24
25 // Returns value of a counter at given Supla channel
26 uint64_t getCounter() const;
27
28 // Set counter to a given value
29 void setCounter(uint64_t value);
30
31 // Increment the counter by 1
32 void incCounter();
33
34 virtual void resetCounter();
35
36 void setForceStateSaveOnChange(bool value);
37 void setDefaultImpulsesPerUnit(uint32_t impulsesPerUnit);
38
39 protected:
40 Supla::ApplyConfigResult applyChannelConfig(TSD_ChannelConfig *result,
41 bool local) override;
42 void fillChannelConfig(void *channelConfig,
43 int *size,
44 uint8_t configType) override;
45
46 uint64_t counter = 0; // Actual count of impulses
47 uint32_t lastReadTime = 0;
48 uint32_t defaultImpulsesPerUnit = 1000;
49 bool forceStateSaveOnChange = false;
50};
51
52} // namespace Sensor
53} // namespace Supla
54
55#endif // SRC_SUPLA_SENSOR_VIRTUAL_IMPULSE_COUNTER_H_
Definition action_handler.h:8
Definition channel_element.h:15
Definition virtual_impulse_counter.h:14
void onInit() override
Third method called on element in SuplaDevice.begin()
Definition virtual_impulse_counter.cpp:23
void onLoadState() override
Second method called on element in SuplaDevice.begin().
Definition virtual_impulse_counter.cpp:34
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition virtual_impulse_counter.cpp:56
int handleCalcfgFromServer(TSD_DeviceCalCfgRequest *request) override
Handles CALCFG requests from server.
Definition virtual_impulse_counter.cpp:84
void onSaveState() override
Method called periodically during SuplaDevice iteration.
Definition virtual_impulse_counter.cpp:30
Definition proto.h:3159
Definition proto.h:2315