chore: rewrite to modbus rtu
This commit is contained in:
26
modbus.h
Normal file
26
modbus.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user