Files
ModbusSlave/modbus.h
2025-12-13 14:37:44 +03:00

39 lines
1.2 KiB
C

#ifndef _MODBUS_H
#define _MODBUS_H
// Includes
#include "modbus_constants.h"
#include "stdlib.h"
void Modbus_TCP_Handler(unsigned char*, uint8_t);
static unsigned char modbus_rx_buf[128];
#define CRC_COUNT_OFFSET 3
#define MODBUS_RHR_CMD (unsigned char)0x03
#define MODBUS_RIR_CMD (unsigned char)0x04
#define MODBUS_WSR_CMD (unsigned char)0x06
void modbus_wsr_answer(void);
void modbus_rhr_answer(void);
unsigned char modbus_get_poll(void);
void holding_reg_write(uint16_t, uint16_t);
void holding_reg_read(uint16_t, uint16_t*);
void input_reg_write(uint16_t, uint16_t);
void input_reg_read(uint16_t, uint16_t*);
uint16_t get_wr_reg_addr(void);
uint16_t get_wr_reg_val(void);
unsigned char get_modbus_id(void);
void set_modbus_id(unsigned char);
void modbus_connect_callback_send_byte(void (*s)(USART_TypeDef*, unsigned char));
void modbus_connect_callback_send_buf_tcp(int32_t (*s)(uint8_t, unsigned char*, uint16_t));
void modbus_connect_callback_rir_poll(void (*s)(void));
void modbus_connect_callback_rhr_poll(void (*s)(void));
void modbus_connect_callback_wsr_poll(void (*s)(uint16_t, uint16_t));
void modbus_poll(void);
void modbus_reset(void);
#endif