Lydia - Printhead
StatusLight Class Reference

#include <StatusLight.h>

Inheritance diagram for StatusLight:
[legend]

Public Member Functions

short debug ()
 
short info ()
 
short loop ()
 
void off ()
 
void on ()
 
short onRegisterMethods (Bridge *bridge)
 
short set (short val0, short val1=0)
 
void setBlink (bool blink)
 
short setup ()
 
void status_blink (bool blink)
 
 StatusLight (Component *_owner, short _pin, short _id, short _addr)
 

Public Attributes

millis_t blink_start_ts
 
bool doBlink
 
bool last_blink
 
millis_t max_blink_time
 
short pin
 
millis_t status_blink_TS
 

Detailed Description

Definition at line 16 of file StatusLight.h.

Constructor & Destructor Documentation

◆ StatusLight()

StatusLight::StatusLight ( Component *  _owner,
short  _pin,
short  _id,
short  _addr 
)
inline

Definition at line 19 of file StatusLight.h.

23  : last_blink(0),
24  status_blink_TS(0),
25  doBlink(false),
26  pin(_pin),
27  ModbusValue<int>(_addr, MB_FC::MB_FC_READ_REGISTERS),
28  Component("Status", _id, Component::COMPONENT_DEFAULT, _owner)
29  {
30  doBlink = false;
31  status_blink_TS = 0;
32  last_blink = !digitalRead(pin);
33  nFlags = SBI(nFlags, OBJECT_NET_CAPS::E_NCAPS_MODBUS);
34  setRegisterMode(MB_REGISTER_MODE::E_MB_REGISTER_MODE_READ_WRITE);
35  }

Member Function Documentation

◆ debug()

short StatusLight::debug ( )
inline

Definition at line 85 of file StatusLight.h.

86  {
87  return info();
88  }

◆ info()

short StatusLight::info ( )
inline

Definition at line 89 of file StatusLight.h.

90  {
91  //Log.verboseln("StatusLight::debug - Addr=%d | NetVal=%d | Value=%d", addr, netVal(), digitalRead(pin));
92  return E_OK;
93  }

◆ loop()

short StatusLight::loop ( )
inline

Definition at line 52 of file StatusLight.h.

53  {
54  if (doBlink)
55  {
57  {
58  status_blink_TS = now;
60  digitalWrite(pin, last_blink);
61  }
62  }
63 
64  short val = netVal();
65  if (val != digitalRead(pin))
66  {
67  onSet(val);
68  set(val, 0);
69  }
70 
71  return E_OK;
72  }

◆ off()

void StatusLight::off ( )
inline

Definition at line 47 of file StatusLight.h.

48  {
49  set(0);
50  }

◆ on()

void StatusLight::on ( )
inline

Definition at line 42 of file StatusLight.h.

43  {
44  set(1);
45  }

◆ onRegisterMethods()

short StatusLight::onRegisterMethods ( Bridge *  bridge)
inline

Definition at line 104 of file StatusLight.h.

105  {
106  bridge->registerMemberFunction(id, this, C_STR("set"), (ComponentFnPtr)&StatusLight::set);
107  bridge->registerMemberFunction(id, this, C_STR("info"), (ComponentFnPtr)&StatusLight::info);
108  }

◆ set()

short StatusLight::set ( short  val0,
short  val1 = 0 
)
inline

Definition at line 74 of file StatusLight.h.

75  {
76  digitalWrite(pin, val0 ? HIGH : LOW);
77  return E_OK;
78  }

◆ setBlink()

void StatusLight::setBlink ( bool  blink)
inline

Definition at line 37 of file StatusLight.h.

38  {
39  doBlink = blink;
40  }

◆ setup()

short StatusLight::setup ( )
inline

Definition at line 80 of file StatusLight.h.

81  {
82  return E_OK;
83  }

◆ status_blink()

void StatusLight::status_blink ( bool  blink)
inline

Definition at line 95 of file StatusLight.h.

96  {
97  if (!doBlink && blink)
98  {
99  blink_start_ts = millis();
100  }
101  doBlink = blink;
102  }

Member Data Documentation

◆ blink_start_ts

millis_t StatusLight::blink_start_ts

Definition at line 114 of file StatusLight.h.

◆ doBlink

bool StatusLight::doBlink

Definition at line 112 of file StatusLight.h.

◆ last_blink

bool StatusLight::last_blink

Definition at line 113 of file StatusLight.h.

◆ max_blink_time

millis_t StatusLight::max_blink_time

Definition at line 115 of file StatusLight.h.

◆ pin

short StatusLight::pin

Definition at line 110 of file StatusLight.h.

◆ status_blink_TS

millis_t StatusLight::status_blink_TS

Definition at line 111 of file StatusLight.h.


The documentation for this class was generated from the following file:
StatusLight::blink_start_ts
millis_t blink_start_ts
Definition: StatusLight.h:114
StatusLight::pin
short pin
Definition: StatusLight.h:110
STATUS_BLINK_INTERVAL
#define STATUS_BLINK_INTERVAL
Definition: config.h:46
StatusLight::last_blink
bool last_blink
Definition: StatusLight.h:113
StatusLight::status_blink_TS
millis_t status_blink_TS
Definition: StatusLight.h:111
StatusLight::doBlink
bool doBlink
Definition: StatusLight.h:112
E_OK
#define E_OK
Definition: enums.h:11
StatusLight::info
short info()
Definition: StatusLight.h:89
StatusLight::set
short set(short val0, short val1=0)
Definition: StatusLight.h:74