chore: rewrite to modbus rtu

This commit is contained in:
2024-11-09 00:36:06 +06:00
parent 0a0084f98f
commit 68f47c9d53
14 changed files with 506 additions and 167 deletions

26
modbus.h Normal file
View 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