4 #include <ArduinoLog.h>
10 #include "../config.h"
11 #include <ModbusValue.h>
17 class Relay :
public Component,
public ModbusValue<bool>
26 short _val = 0) : ModbusValue<bool>(_addr, MB_FC::MB_FC_READ_COILS),
27 Component(
"MB_Relay", _id, Component::COMPONENT_DEFAULT, owner),
33 SBI(nFlags, OBJECT_NET_CAPS::E_NCAPS_MODBUS);
34 setRegisterMode(MB_REGISTER_MODE::E_MB_REGISTER_MODE_READ_WRITE);
37 short info(
short val0,
short val1)
39 Log.verboseln(
"Relay::info - Pin=%d | Key=%d | Addr=%d | Val=%d | NetVal=%d ",
pin,
id, addr,
value, netVal());
49 #ifdef PLATFORM_PORTENTA_H7_M7
64 #ifdef PLATFORM_PORTENTA_H7_M7
67 digital_outputs.set(
pin, HIGH);
68 Log.verbose(F(
"Relay:set pin=%d value=%d" CR),
pin, _value);
72 digital_outputs.set(
pin, LOW);
73 Log.verbose(F(
"Relay:set pin=%d value=%d" CR),
pin, _value);
77 #ifdef PLATFORM_CONTROLLINO_MEGA
78 digitalWrite(
pin, val ? HIGH : LOW);
80 if (netVal() !=
value)
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);