firmware-base/Modbus.h
2025-05-23 19:34:57 +02:00

66 lines
1.5 KiB
C

/**
* @file Modbus.h
* @brief Modbus communication protocol definitions
* @defgroup Modbus Modbus Protocol
* @{
*/
#ifndef MODBUS_H
#define MODBUSH_H
#include <inttypes.h>
#include "ModbusTypes.h"
/**
* @defgroup Modbus_Init Modbus Initialization Macros
* @ingroup Modbus
* @{
*/
/**
* @brief Initializes a Modbus block for TCP communication
* @param tcpBaseAddr Base address for TCP/IP communication
* @param offset_enum Register offset enumeration
* @param fn_code Modbus function code
* @param access Access flags
* @param desc Description of the register
* @param group Group identifier
*/
#define INIT_MODBUS_BLOCK_TCP(tcpBaseAddr, offset_enum, fn_code, access, desc, group) \
{ \
static_cast<ushort>(tcpBaseAddr + static_cast<ushort>(offset_enum)), \
1, \
fn_code, \
access, \
this->id, \
this->slaveId, \
desc, \
group \
}
/**
* @brief Initializes a Modbus block with default settings
* @param offset_enum Register offset enumeration
* @param fn_code Modbus function code
* @param access Access flags
* @param desc Description of the register
* @param group Group identifier
*/
#define INIT_MODBUSE_BLOCK(offset_enum, fn_code, access, desc, group) \
{ \
static_cast<ushort>(tcpBaseAddr + static_cast<ushort>(offset_enum)), \
1, \
fn_code, \
access, \
this->id, \
this->slaveId, \
desc, \
group \
}
/** @} */
/** @} */
#endif