27 lines
921 B
C
27 lines
921 B
C
#ifndef __MODBUS_H
|
|
#define __MODBUS_H
|
|
|
|
#include <stdint.h>
|
|
|
|
// function codes
|
|
#define MODBUS_FC_READ_HOLDING_REGISTERS 0x03
|
|
#define MODBUS_FC_WRITE_SINGLE_REGISTER 0x06
|
|
#define MODBUS_FC_WRITE_MULTIPLE_REGISTERS 0x10
|
|
|
|
// errors
|
|
#define MODBUS_ERROR_NONE 0x00
|
|
#define MODBUS_ERROR_FUNCTION 0x01
|
|
#define MODBUS_ERROR_ADDRESS 0x02
|
|
#define MODBUS_ERROR_VALUE 0x03
|
|
|
|
uint8_t modbus_process_message(uint8_t *buf, uint16_t len, uint8_t slave_addr,
|
|
uint16_t *holding_registers,
|
|
uint16_t num_registers);
|
|
uint16_t modbus_create_response(uint8_t *response, uint8_t slave_addr,
|
|
uint8_t function, uint16_t address,
|
|
uint16_t value);
|
|
uint16_t modbus_create_error_response(uint8_t *response, uint8_t slave_addr,
|
|
uint8_t function, uint8_t error_code);
|
|
|
|
#endif // __MODBUS_H
|