#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