#ifndef _MASTER_SLAVE_INTER_H_ #define _MASTER_SLAVE_INTER_H_ #include "define_all.h" #include "master_slave_recv_api.h" #include "administrator.h" #include "system_parameter.h" #include "sundry.h" #include "lcd.h" #define CMD_DATATABLE_CRC_LENGTH 4 //ÃüÁî-Êý¾Ý±í-CRCУÑéµÄÊý¾Ý³¤¶È #define ONE_BYTE_DATA_LENGTH 1 //Ò»×Ö½ÚµÄÊý¾Ý³¤¶È #define WRITE_HARDWARE_DATA_LENGTH 15 //дӲ¼þ²ÎÊýµÄÊý¾Ý³¤¶È #define WRITE_UT_CAL_DATA_LENGTH 14 //д̽ͷУ׼²ÎÊýµÄÊý¾Ý³¤¶È #define WRITE_UT_ERR_TH_DATA_LENGTH 10 //д̽ͷãÐÖµ²ÎÊýµÄÊý¾Ý³¤¶È #define WRITE_UART_DATA_LENGTH 3 //дUARTµÄÊý¾Ý³¤¶È // ¼ÆÁ¿°åµçÔ´ #define MEASURE_PWR_PORT GPIOC #define MEASURE_PWR_PIN GPIO_Pin_14 // Ö÷´Ó¿ØÖÆ #define MAIN_TO_SLAVE_PORT GPIOC #define MAIN_TO_SLAVE_PIN GPIO_Pin_8 // ´ÓÖ÷¿ØÖÆ #define SLAVE_TO_MAIN_PORT GPIOC #define SLAVE_TO_MAIN_PIN GPIO_Pin_7 // Ö÷´Óʱ¼äͬ²½ #define SYNC_PORT GPIOC #define SYNC_PIN GPIO_Pin_13 //Ö÷´Óʱ¼äͬ²½ #define SLAVE_SYNC(__HANDLE__) ((__HANDLE__ == SET) ? GPIO_SetBits(SYNC_PORT,SYNC_PIN) : GPIO_ResetBits(SYNC_PORT,SYNC_PIN)) //Ö÷´ÓͨѶÁ¬½Ó #define SLAVE_CONNECT(__HANDLE__) ((__HANDLE__ == SET) ? GPIO_SetBits(MAIN_TO_SLAVE_PORT,MAIN_TO_SLAVE_PIN) : GPIO_ResetBits(MAIN_TO_SLAVE_PORT,MAIN_TO_SLAVE_PIN)) //´Ó»úµçÔ´¿ª¹Ø #define SLAVE_PWR_ON GPIO_ResetBits(MEASURE_PWR_PORT, MEASURE_PWR_PIN) #define SLAVE_PWR_OFF GPIO_SetBits(MEASURE_PWR_PORT, MEASURE_PWR_PIN) #define MASTER_SEND_NORMAL(__DATA__,__SIZE__) UARTx_SendData_Normal(UART3,__DATA__,__SIZE__) //´Ó»úÖØÆô #define SLAVE_PWR_RESTART \ do \ { \ SLAVE_PWR_OFF; \ SLAVE_PWR_ON; \ } while (0) #define SLAVE_SYNC_CMD \ do \ { \ SLAVE_SYNC(SET); \ delay_ms(1); \ SLAVE_SYNC(RESET); \ } while (0) #pragma pack(1) #define MICRO_CONSTANT_FLOW_FORMAT_SIZE sizeof(MICRO_CONSTANT_FLOW_PARA_T) typedef struct{ uint8_t micro_flow_time_start_bcd[2]; uint8_t micro_flow_time_end_bcd[2]; uint16_t micro_flow_once_duration_min; uint32_t micro_flow_threshold; uint8_t micro_flow_duration_days; uint8_t constant_flow_time_start_bcd[2]; uint8_t constant_flow_time_end_bcd[2]; uint16_t constant_flow_once_duration_min; uint32_t constant_flow_threshold_down; uint32_t constant_flow_threshold_up; uint8_t constant_flow_duration_days; uint8_t reserve[12]; }MICRO_CONSTANT_FLOW_PARA_T; #define ZERO_DRIFT_CFG_SIZE sizeof(ZERO_DRIFT_CORR_CFG_T) typedef struct { FlagStatus zero_corr_ctl; uint8_t start_hour_min_bcd[2]; uint8_t reserve[4]; }ZERO_DRIFT_CORR_CFG_T; #pragma pack() extern uint8_t zero_drift_valve_flag; extern MICRO_CONSTANT_FLOW_PARA_T micro_constant_flow_para_g; extern ZERO_DRIFT_CORR_CFG_T zero_drift_cfg_g; extern ErrorStatus_STM32 sys_mode_conversion_show_g; void Measure_IO_Init(void); void Send_Write_Slave_Command(uint8_t data_table, uint8_t *pBuffer, uint16_t data_len); void Send_Read_Slave_Command(uint8_t data_table); void Slave_Inter_Normal_FlowDataProcess(SYS_DELAY_SEC_PARA_T *sys_delay_sec_para_p); void Slave_Inter_Cal_FlowDataProcess(void); void Master_Slave_SysModeConversionProcess(SYS_DISPLAY_PAPA_T *sys_display_para_p); void State_Alarm_Bytes_TempPressDataHandler(struct measure_para *sys_realtime_data_p); float Per_Second_InstantScCalculate(struct measure_para *sys_realtime_data_p); uint8_t ZeroDrift_Correction(float instant_sc,ZERO_DRIFT_CORR_CFG_T * zero_drift_p); #endif