HAL  v0.6.1
Hardware Abstraction Layer
Loading...
Searching...
No Matches
hal_modbus.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include "hal_gpio.h"
Include dependency graph for hal_modbus.h:

Data Structures

struct  modbus_channel_attr_t
 
struct  modbus_comm_attr_t
 
struct  modbus_handle_t
 

Enumerations

enum  modbus_result_t {
  MODBUS_RESULT_OK ,
  MODBUS_RESULT_INVALID ,
  MODBUS_RESULT_UNSUPPORTED ,
  MODBUS_RESULT_BUSY ,
  MODBUS_RESULT_PARITY_ERROR ,
  MODBUS_RESULT_ERR ,
  TOTAL_MODBUS_RESULT
}
 
enum  modbus_status_t {
  MODBUS_STATUS_UNKNOWN ,
  MODBUS_STATUS_OK ,
  MODBUS_STATUS_BUSY ,
  MODBUS_STATUS_STOP ,
  MODBUS_STATUS_SENDING ,
  MODBUS_STATUS_RECEIVING ,
  MODBUS_STATUS_ERR ,
  TOTAL_MODBUS_STATUS
}
 
enum  modbus_func_t {
  MODBUS_FUNC_READ_COIL = 1U ,
  MODBUS_FUNC_READ_DISCRETE_INPUT = 2U ,
  MODBUS_FUNC_READ_HOLDING_REG = 3U ,
  MODBUS_FUNC_READ_INPUT_REG = 4U ,
  MODBUS_FUNC_WRITE_SINGLE_COIL = 5U ,
  MODBUS_FUNC_WRITE_SINGLE_REG = 6U ,
  MODBUS_FUNC_WRITE_MULTIPLE_COIL = 15U ,
  MODBUS_FUNC_WRITE_MULTIPLE_REG = 16U ,
  TOTAL_MODBUS_FUNC
}
 
enum  modbus_baudrate_t {
  MODBUS_BAUDRATE_9600 = 9600U ,
  MODBUS_BAUDRATE_19200 = 19200U ,
  TOTAL_MODBUS_BAUDRATE
}
 

Functions

modbus_result_t hal_modbus_init (modbus_handle_t *handle, const modbus_channel_attr_t attr)
 Configure Modbus channel with specific attributes.
 
modbus_result_t hal_modbus_read (modbus_handle_t *handle, const modbus_comm_attr_t comm_attr, uint8_t *rx_buffer, const size_t len)
 Write data to Modbus.
 
modbus_result_t hal_modbus_stop (modbus_handle_t *handle)
 Stop Modbus operation.
 
modbus_status_t hal_modbus_get_status (modbus_handle_t *handle)
 Get Modbus channel status.
 
modbus_result_t hal_modbus_mutex_take (const uint8_t channel, const uint32_t timeout_ms)
 Try acquire RTOS mutex for specified channel.
 
modbus_result_t hal_modbus_mutex_give (const uint8_t channel)
 Release RTOS mutex for specified channel.