35#define MB_SEND_ERROR 4
36#define MB_SEND_ATTEMPTS 3
39#define LM_VALUE_OUTDATED 1
40#define LM_VALUE_EMPTY 2
76 int Poll(
short cause)
override;
82 int Ctrl(
itemCmd cmd,
char* subItem=NULL,
bool toExecute=
true,
bool authorized =
false)
override;
89 itemCmd findRegister(uint16_t registerNum, uint16_t posInBuffer, uint8_t regType, uint16_t registerFrom, uint16_t registerTo,
bool doExecution =
true,
bool * submitParam = NULL);
90 void pollModbus(aJsonObject * reg,
int regType);
92 int sendModbus(
char * paramName, aJsonObject * outValue);
A single LightHub item (virtual channel).
Definition item.h:232
chPersistent * getPersistent()
Definition item.cpp:641
abstractOut()
Definition abstractout.h:22
virtual void link(Item *_item)
Definition abstractout.h:24
Item * item
Item currently linked to this driver.
Definition abstractout.h:55
Placeholder for driver-persistent data attached to an item (I_EXT field).
Definition abstractout.h:8
Command + value container passed between items, drivers and MQTT.
Definition itemCmd.h:306
Persistent per-item state of a Modbus channel, stored in the config tree.
Definition out_modbus.h:18
aJsonObject * pollingCoils
Definition out_modbus.h:28
aJsonObject * parameters
Definition out_modbus.h:30
aJsonObject * poolingDiscreteIns
Definition out_modbus.h:29
uint32_t timestamp
Definition out_modbus.h:25
serialParamType serialParam
Definition out_modbus.h:23
aJsonObject * pollingRegisters
Definition out_modbus.h:26
aJsonObject * pollingIrs
Definition out_modbus.h:27
uint16_t pollingInterval
Definition out_modbus.h:24
int baud
Definition out_modbus.h:22
int Ctrl(itemCmd cmd, char *subItem=NULL, bool toExecute=true, bool authorized=false) override
Queues a command for a template parameter (by subitem name or by suffix id), see class doc.
Definition out_modbus.cpp:1196
int getChanType() override
Returns CH_MBUS (14).
Definition out_modbus.cpp:1059
out_Modbus()
Default constructor; binds nothing until link() is called.
Definition out_modbus.h:69
void setLastMeasured(aJsonObject *execObj, int val)
Definition out_modbus.cpp:319
mbPersistent * store
Definition out_modbus.h:87
void pollModbus(aJsonObject *reg, int regType)
Опрос Modbus-устройства по списку регистров.
Definition out_modbus.cpp:719
void link(Item *_item)
Links the channel item and attaches persistent storage.
Definition out_modbus.h:71
int Stop() override
Releases the persistent storage.
Definition out_modbus.cpp:365
int createLastMeasured(char *name)
Создаёт поле для хранения последнего измеренного значения по имени параметра.
Definition out_modbus.cpp:257
int sendItemCmd(aJsonObject *templateParamObj, itemCmd cmd)
Отправляет команду itemCmd в Modbus по шаблону параметра.
Definition out_modbus.cpp:1070
itemCmd findRegister(uint16_t registerNum, uint16_t posInBuffer, uint8_t regType, uint16_t registerFrom, uint16_t registerTo, bool doExecution=true, bool *submitParam=NULL)
Находит и обрабатывает регистр Modbus, выполняет сопоставление и действия.
Definition out_modbus.cpp:424
int Setup() override
Creates persistent storage, loads the template config and prepares the @S marks.
Definition out_modbus.cpp:337
int sendModbus(char *paramName, aJsonObject *outValue)
Отправляет значение в Modbus-устройство.
Definition out_modbus.cpp:784
bool getConfig()
Загружает и применяет конфигурацию Modbus.
Definition out_modbus.cpp:139
int Poll(short cause) override
Sends queued (MB_NEED_SEND) parameter values, then polls the configured register lists and executes m...
Definition out_modbus.cpp:925
aJsonObject * getLastMeasured(char *name)
Получает объект последнего измеренного значения по имени параметра.
Definition out_modbus.cpp:298
void initLine()
Инициализирует линию связи Modbus.
Definition out_modbus.cpp:760
Item (virtual channel) system of LightHub.
Utility helpers of LightHub.
#define serialParamType
Type for a serial parameter (uint32 on ESP32, uint16 elsewhere).
Definition utils.h:65