35class InternalPinOutput :
public Element,
40 explicit InternalPinOutput(
Supla::Io *io,
int pin,
bool highIsOn =
true);
41 explicit InternalPinOutput(
int pin,
bool highIsOn =
true);
43 virtual InternalPinOutput &setDefaultStateOn();
44 virtual InternalPinOutput &setDefaultStateOff();
45 virtual InternalPinOutput &setDurationMs(_supla_int_t duration);
47 virtual uint8_t pinOnValue();
48 virtual uint8_t pinOffValue();
49 virtual void turnOn(_supla_int_t duration = 0);
50 virtual void turnOff(_supla_int_t duration = 0);
52 virtual void toggle(_supla_int_t duration = 0);
54 void handleAction(
int event,
int action)
override;
59 int getOutputValue()
const override;
60 void setOutputValue(
int value)
override;
61 bool isOnOffOnly()
const override;
66 int8_t stateOnInit = STATE_ON_INIT_OFF;
67 unsigned _supla_int_t durationMs = 0;
68 unsigned _supla_int_t storedTurnOnDurationMs = 0;
69 uint32_t durationTimestamp = 0;
70 int lastOutputValue = 0;