73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
#ifndef _MODBUS_REGISTER_PROCESS_H_
|
|
#define _MODBUS_REGISTER_PROCESS_H_
|
|
|
|
#include "apps_gather.h"
|
|
|
|
//自定义线圈寄存器地址
|
|
#define COIL_ADDR_ON_OFF 0x00
|
|
#define COIL_ADDR_LIGHT 0x01
|
|
#define COIL_ADDR_CONFIG_SAVE 0x02
|
|
#define COIL_ADDR_CONFIG_RESET 0x03
|
|
#define COIL_ADDR_SCREEN_SWITCH 0x04
|
|
|
|
//自定义离散状态寄存器地址
|
|
|
|
//自定义保持寄存器地址
|
|
#define HOLD_ADDR_SET_WORK_MODE 0x00
|
|
#define HOLD_ADDR_MUX_SV_L 0x01
|
|
#define HOLD_ADDR_MUX_SV_H 0x02
|
|
#define HOLD_ADDR_PHY_UNIT 0x03
|
|
#define HOLD_ADDR_PHY_UP 0x04
|
|
#define HOLD_ADDR_PHY_LOW 0x05
|
|
#define HOLD_ADDR_SAMPLE_INTERVAL 0x06
|
|
#define HOLD_ADDR_PLOT_COUNTS 0x07
|
|
#define HOLD_ADDR_INPUT_COLOR 0x08
|
|
#define HOLD_ADDR_OUTPUT_COLOR 0x09
|
|
#define HOLD_ADDR_LANGUAGE 0x0A
|
|
|
|
//自定义输入寄存器地址
|
|
#define INPUT_ADDR_BATTERY 0x00
|
|
#define INPUT_ADDR_RUNTIME_SECOND 0x01
|
|
#define INPUT_ADDR_RUNTIME_HOUR 0x02
|
|
#define INPUT_ADDR_MUX_PV_L 0x03
|
|
#define INPUT_ADDR_MUX_PV_H 0x04
|
|
|
|
//处理modbus寄存器值的更新与写入
|
|
void modbus_registers_update(void);
|
|
|
|
//线圈寄存器,读写
|
|
void modbus_reg_update_coil(void);
|
|
|
|
void coil_deal_ON2OFF(void);
|
|
|
|
void coil_deal_light(void);
|
|
|
|
void coil_deal_save(void);
|
|
|
|
void coil_deal_reset(void);
|
|
|
|
void coil_deal_screen_switch(void);
|
|
|
|
//离散输入寄存器,上位机只读
|
|
void modbus_reg_update_dis(void);
|
|
|
|
//保持寄存器,读写
|
|
void modbus_reg_update_hold(void);
|
|
|
|
void hold_deal_set_work_mode(void);
|
|
|
|
void hold_deal_muxsv(void);
|
|
|
|
//输入寄存器,上位机只读
|
|
void modbus_reg_update_input(void);
|
|
|
|
//设置线圈寄存器,输入参数:地址、标志位
|
|
void set_coil_val(uint8_t addr, uint8_t bit_val);
|
|
|
|
//获取线圈值,应对上位机修改线圈的情况
|
|
uint8_t get_coil_val(uint8_t addr);
|
|
|
|
#endif
|
|
|
|
|