66 lines
1.5 KiB
C
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
|