43 lines
1.4 KiB
C
43 lines
1.4 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_tim_en(void (*s)(TIM_TypeDef*));
|
|
void modbus_connect_callback_tim_dis(void (*s)(TIM_TypeDef*));
|
|
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_GetByte(unsigned char);
|
|
void Modbus_TIM_Handler(void);
|
|
void modbus_poll(void);
|
|
void modbus_reset(void);
|
|
|
|
#endif
|