4 #include <ArduinoLog.h>
11 #include <ModbusValue.h>
13 class Pos3Analog :
public Component,
public ModbusValue<int>
26 short _upPin,
short _downPin,
28 short _addr) : ModbusValue<int>(_addr, MB_FC::MB_FC_READ_REGISTERS),
29 Component(
"Pos3Analog", _id, Component::COMPONENT_DEFAULT, owner),
35 SBI(nFlags, OBJECT_NET_CAPS::E_NCAPS_MODBUS);
36 setRegisterMode(MB_REGISTER_MODE::E_MB_REGISTER_MODE_READ);
45 short info(
short val0,
short val1)
47 Log.verboseln(
"3PosAnalog::info - Pin-0=%d | Pin-1=%d | Key=%d | Addr=%d | Val=%d | NetVal=%d ",
upPin,
downPin,
id, addr,
value, netVal());
62 int newDirection =
read();
63 if (newDirection !=
value)
79 bridge->registerMemberFunction(
id,
this, C_STR(
"setFlag"), (ComponentFnPtr)&Pos3Analog::setFlag);
81 bridge->registerMemberFunction(
id,
this, C_STR(
"info"), (ComponentFnPtr)&
Pos3Analog::info);
93 newDirection = POS3_DIRECTION::DOWN;
97 newDirection = POS3_DIRECTION::UP;
101 newDirection = POS3_DIRECTION::MIDDLE;
105 newDirection = POS3_DIRECTION::INVALID;
121 #ifdef HAS_MODBUS_REGISTER_DESCRIPTIONS
125 short s = snprintf(buff, 255,
"- Read Position : Address=%d(%X) -> [Up:%d Middle:%d Down:%d]", addr, addr, POS3_DIRECTION::UP, POS3_DIRECTION::MIDDLE, POS3_DIRECTION::DOWN);