pressure_sensor_system/Software/master/PressureSensorBoardMaster/MiddleWares/modbus.h

55 lines
929 B
C

#ifndef MODBUS_H
#define MODBUS_H
#include "stm32f1xx_hal.h"
// callback function definition
typedef void (*ModbusCallback)(uint8_t slave, uint16_t addr, uint8_t *data);
typedef struct callback_node{
uint8_t slave;
uint16_t addr;
ModbusCallback callback;
struct callback_node *next;
}CallbackNode;
typedef struct modbus_task_node{
uint8_t task_id;
uint8_t slave_addr;
uint8_t func_code;
uint16_t reg_addr;
uint16_t reg_count;
uint16_t interval;
uint32_t last_task_time;
struct modbus_task_node *next;
}modbus_task;
typedef struct {
uint8_t slave;
uint16_t reg_addr;
uint8_t *target;
}AlignTable;
uint8_t is_ready1;
uint8_t is_ready2;
uint8_t is_ready3;
uint8_t bitmap1[5];
uint8_t bitmap2[5];
uint8_t bitmap3[5];
AlignTable table[] = {
{1,1000,&is_ready1},
{1,2000,bitmap1},
{2,1000,&is_ready2},
{2,2000,bitmap2},
{3,1000,&is_ready3},
{3,2000,bitmap3},
};
#endif