#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