brisonus_qc_dsp_com/br_modbus.h

62 lines
1.1 KiB
C
Raw Permalink Normal View History

#ifndef _MODBUS_H
#define _MODBUS_H
#include <stdint.h>
#define SLAVE_ID_DEFAULT (1u)
#define MODBUS_SLAVE_ID 0
#define MODBUS_FUN_CODE 1
#define MODBUS_START_ADDR_H 2
#define MODBUS_START_ADDR_L 3
#define MODBUS_SIZE_H 4
#define MODBUS_SIZE_L 5
#define MODBUS_06_VAL_H 4
#define MODBUS_06_VAL_L 5
typedef enum {
MODBUS_STATUS_OK,
MODBUS_STATUS_ERR
} ModbusStatus_t;
ModbusStatus_t modbus_process(const uint8_t * buffer_cmd, uint8_t recv_len, uint8_t * buffer_resp, uint8_t * resp_len);
typedef struct {
uint8_t slaveAddr;
uint8_t funCode;
uint16_t startAddr;
uint16_t num;
uint16_t crc;
} ModbusFrameCmd03_t;
typedef struct {
uint8_t slaveAddr;
uint8_t funCode;
uint8_t byteNum;
uint16_t data[125];
uint16_t crc;
} ModbusFrameRes03_t;
/* 06功能码命令和响应格式一样 */
typedef struct {
uint8_t slaveAddr;
uint8_t funCode;
uint16_t regAddr;
uint16_t regValue;
uint16_t crc;
} ModbusFrameCmdRes06_t;
typedef struct {
} ModbusFrameCmd0A_t;
typedef struct {
} ModbusFrameRes0A_t;
#endif