#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
|