sggt/App/MODBUS/Inc/modbus_register_process.h

109 lines
2.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 COIL_ADDR_HOLD_SV_CTRL 0x05
#define COIL_ADDR_HOLD_SV_ENSURE 0x06
//自定义离散状态寄存器地址
//自定义保持寄存器地址
#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 set_coil_val(uint8_t addr, uint8_t bit_val);
//获取线圈值,应对上位机修改线圈的情况
uint8_t get_coil_val(uint8_t addr);
//线圈寄存器处理主界面的ON&OFF事件
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 hold_deal_range_type(void);
//保持寄存器,处理量程修改事件,修改当前选择的物理量的量程上限
void hold_deal_range_max(void);
//保持寄存器,处理量程修改事件,修改当前选择的物理量的量程下限
void hold_deal_range_min(void);
//保持寄存器,处理采样间隔修改事件
void hold_deal_sample_interval(void);
//保持寄存器,处理描点数量修改事件
void hold_deal_plot_counts(void);
//保持寄存器,处理输入曲线&图例颜色修改事件
void hold_deal_color_input(void);
//保持寄存器,处理输出曲线&图例颜色修改事件
void hold_deal_color_output(void);
//保持寄存器,处理语言选择事件
void hold_deal_language_select(void);
//输入寄存器,上位机只读
void modbus_reg_update_input(void);
#endif