Lydia - Printhead
Relay Class Reference

#include <Relay.h>

Inheritance diagram for Relay:
[legend]

Public Member Functions

short debug ()
 
short info (short val0, short val1)
 
short loop ()
 
short onRegisterMethods (Bridge *bridge)
 
 Relay (Component *owner, short _pin, short _id, short _addr, short _val=0)
 
short set (int val)
 
short setup ()
 

Public Attributes

short pin
 
bool value
 

Detailed Description

Definition at line 17 of file Relay.h.

Constructor & Destructor Documentation

◆ Relay()

Relay::Relay ( Component *  owner,
short  _pin,
short  _id,
short  _addr,
short  _val = 0 
)
inline

Definition at line 21 of file Relay.h.

26  : ModbusValue<bool>(_addr, MB_FC::MB_FC_READ_COILS),
27  Component("MB_Relay", _id, Component::COMPONENT_DEFAULT, owner),
28  pin(_pin),
29  value(_val)
30  //registerMode(MB_REGISTER_MODE::E_MB_REGISTER_MODE_READ_WRITE)
31  {
32  //setFlag(OBJECT_RUN_FLAGS::E_OF_DEBUG);
33  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 Relay::debug ( )
inline

Definition at line 42 of file Relay.h.

43  {
44  return info(0,0);
45  }

◆ info()

short Relay::info ( short  val0,
short  val1 
)
inline

Definition at line 37 of file Relay.h.

38  {
39  Log.verboseln("Relay::info - Pin=%d | Key=%d | Addr=%d | Val=%d | NetVal=%d ", pin, id, addr, value, netVal());
40  return E_OK;
41  }

◆ loop()

short Relay::loop ( )
inline

Definition at line 96 of file Relay.h.

97  {
98  bool val = netVal();
99  if (val != value)
100  {
101  set(val);
102  }
103  return E_OK;
104  }

◆ onRegisterMethods()

short Relay::onRegisterMethods ( Bridge *  bridge)
inline

Definition at line 87 of file Relay.h.

88  {
89  bridge->registerMemberFunction(id, this, C_STR("set"), (ComponentFnPtr)&Relay::set);
90  bridge->registerMemberFunction(id, this, C_STR("info"), (ComponentFnPtr)&Relay::info);
91  bridge->registerMemberFunction(id, this, C_STR("setFlag"), (ComponentFnPtr)&Relay::setFlag);
92  //bridge->registerMemberFunction(id, this, C_STR("clearFlag"), (ComponentFnPtr)&Relay::clearFlag);
93  return E_OK;
94  }

◆ set()

short Relay::set ( int  val)
inline

Definition at line 61 of file Relay.h.

62  {
63  value = val;
64 #ifdef PLATFORM_PORTENTA_H7_M7
65  if (_value == 1)
66  {
67  digital_outputs.set(pin, HIGH);
68  Log.verbose(F("Relay:set pin=%d value=%d" CR), pin, _value);
69  }
70  else
71  {
72  digital_outputs.set(pin, LOW);
73  Log.verbose(F("Relay:set pin=%d value=%d" CR), pin, _value);
74  }
75 #endif
76 
77 #ifdef PLATFORM_CONTROLLINO_MEGA
78  digitalWrite(pin, val ? HIGH : LOW);
79 #endif
80  if (netVal() != value)
81  {
82  onSet(val);
83  }
84  return val;
85  }

◆ setup()

short Relay::setup ( )
inline

Definition at line 47 of file Relay.h.

48  {
49 #ifdef PLATFORM_PORTENTA_H7_M7
50  /*
51  digital_outputs.setLatch();
52  // Uncomment this line to set over current behavior of all
53  // channels to auto retry mode instead of latch mode:
54  // digital_outputs.setRetry();
55  digital_outputs.set(pin, LOW);
56  */
57 #endif
58  return E_OK;
59  }

Member Data Documentation

◆ pin

short Relay::pin

Definition at line 106 of file Relay.h.

◆ value

bool Relay::value

Definition at line 107 of file Relay.h.


The documentation for this class was generated from the following file:
Relay::value
bool value
Definition: Relay.h:107
Relay::pin
short pin
Definition: Relay.h:106
Relay::set
short set(int val)
Definition: Relay.h:61
Relay::info
short info(short val0, short val1)
Definition: Relay.h:37
E_OK
#define E_OK
Definition: enums.h:11