#ifndef __VALVECONTROL_H
|
#define __VALVECONTROL_H
|
|
#include "datatype.h"
|
#include "sys.h"
|
|
//#define SZV101_VALVE 1
|
//#define SZV102_VALVE 2
|
//#define SZV103_VALVE 3
|
|
//#define VALVE_TYPE SZV101_VALVE
|
|
#define VALVE_OPEN_TIME_LIMIT 350
|
|
|
|
#define Motor_A_PIN_NUM GPIO_Pin_10
|
#define Motor_A_PIN_GROUP GPIOE
|
#define Motor_A_EN PEout(10)
|
|
//#define Motor_B_PIN_NUM GPIO_Pin_9
|
//#define Motor_B_PIN_GROUP GPIOE
|
//#define Motor_B_EN PEout(9)
|
|
#define Motor_B_PIN_NUM GPIO_Pin_15
|
#define Motor_B_PIN_GROUP GPIOD
|
#define Motor_B_EN PDout(15)
|
|
//#define Motor_OP_PIN_NUM GPIO_Pin_15
|
//#define Motor_OP_PIN_GROUP GPIOD
|
//#define Motor_OP_PIN_READ PDin(15)
|
#define Motor_OP_PIN_NUM GPIO_Pin_9
|
#define Motor_OP_PIN_GROUP GPIOE
|
#define Motor_OP_PIN_READ PEin(9)
|
|
#define Motor_CL_PIN_NUM GPIO_Pin_4
|
#define Motor_CL_PIN_GROUP GPIOD
|
#define Motor_CL_PIN_READ PDin(4)
|
|
|
#define FORCE_OPEN_INT_PIN_NUM GPIO_Pin_10
|
#define FORCE_OPEN_INT_PIN_GROUP GPIOC
|
|
#define FORCE_OPEN_INT_READ PCin(10)
|
|
#define VALVE_ALKA_LOW_A_PIN_NUM GPIO_Pin_11
|
#define VALVE_ALKA_LOW_A_PIN_GROUP GPIOC
|
|
#define VALVE_ALKA_LOW_A_PIN_READ PCin(11)
|
|
typedef enum
|
{
|
VALVE_CLOSE_CLASS_SYSTEM_SATE_CHANGE=0x01 ,
|
VALVE_CLOSE_CLASS_SYSTEM_BAT ,
|
VALVE_CLOSE_CLASS_SYSTEM_TEM_PRE ,
|
VALVE_CLOSE_CLASS_SYSTEM_METERING ,
|
VALVE_CLOSE_CLASS_SYSTEM_FLOW ,
|
VALVE_CLOSE_CLASS_SYSTEM_VALVE ,
|
VALVE_CLOSE_CLASS_SYSTEM_EX_TERMINAL ,
|
VALVE_CLOSE_CLASS_SYSTEM_BILLING ,
|
VALVE_CLOSE_CLASS_SYSTEM_KEY_CMD ,
|
}VALVE_CLOSE_CLASS;
|
//#define VALVE_CLOSE_CLASS_SYSTEM_SATE_CHANGE
|
//#define VALVE_CLOSE_CLASS_SYSTEM_SATE_CHANGE
|
|
//#define VALVE_OP 0x01
|
//#define VALVE_CL 0x02
|
//#define VALVE_OPENING 0x03
|
//#define VALVE_CLOSING 0x04
|
//#define VALVE_ERROR 0x05
|
//#define VALVE_MISSING 0x99 //¶ÏÏßÎÞ·¨¼ì²â
|
|
typedef enum
|
{
|
SZV101_VALVE = 1U,
|
SZV102_VALVE,
|
SZV103_VALVE
|
|
} VALVE_TYPE_T; // ·§ÃÅÀàÐÍ
|
|
typedef enum
|
{
|
VALVE_NONE = 0U,
|
VALVE_OP,
|
VALVE_CL,
|
VALVE_OPENING,
|
VALVE_CLOSING,
|
VALVE_ERROR,
|
VALVE_MISSING = 99U
|
} VALVE_STATE_T; // ·§ÃÅ״̬ÀàÐÍ
|
|
typedef enum
|
{
|
VALVE_ACTION_NONE = 0,
|
VALVE_ACTION_CLOSE_UNLOCK,
|
VALVE_ACTION_LOCK,
|
VALVE_ACTION_OPEN,
|
VALVE_ACTION_CLOSE_LOCK,
|
VALVE_ACTION_UNLOCK,
|
}VALVE_ACTION_TYPE;
|
|
|
|
|
|
|
#pragma pack(1)
|
|
|
typedef struct{
|
u32 OpenValveAuthorizeTimeCnt; //Æ½Ì¨Ç¿ÖÆ¿ª·§ÊÚȨʱ¼ä¡£ ÆÕͨ¿ª·§Ö»ÊÚȨһ´Î£¬²¢ÇÒÔÚÎÞÒ쳣״̬Ï¿ɿª·§£¬Ç¿ÖÆ¿ª·§ÊÚȨÓÐnÌì¿É¿ªÆôʱЧ£¬ÔÚʱ¼äÄÚÈÎÒ⿪·§£¬ÇÒ²»ÊÜÒ쳣״̬ӰÏ죬Ò쳣״̬Ҳ²»»áµ¼Ö¹ط§
|
u16 ValveCloseClass; //¹Ø·§Àà±ð
|
u8 ValveCloseType;//³£Ì¬ÎªVALVE_ACTION_OPEN °´¼ü¿ª·§VALVE_ACTION_OPEN
|
u8 ValveCloseForceFLAG; ////¹Ø·§Ç¿ÖƱêÖ¾£¬·ÇÓà¶îÔì³ÉµÄÇ¿ÖÆÐԹط§»áÖÃ2£¬½öÓà¶îÔì³ÉµÄ¾¯¸æÐԹط§ÖÃ1£¬ÊÚȨ¿ª·§µÄʱºòÖÃ0¡£ ²»Îª2ʱ£¬Èç¹ûÓà¶îÔì³ÉµÄÇ¿ÖÆ¹Ø·§Ö®ºó£¬Óà¶î»Ö¸´Ö®ºó¸øÓëÊÚȨ£¬ÔÊÐí°´¼ü¿ª·§¡£
|
|
u8 Trigger_check_valve_status_flag;//´¥·¢·§ÃÅ״̬¼ì²â±êÖ¾
|
|
volatile u8 Valve_Bat_down_IRQ_flag; //·§µçµôµçÖжÏÐźűêÖ¾
|
u8 Valve_Bat_down_check_step; //·§µçµôµç¼ì²â¹ý³Ì
|
u8 Force_Open_status; //0:ÎÞÇ¿¿ªÐźţ¬1ÓÐÇ¿¿ªÐźÅ
|
u8 Force_Open_Flag; //²úÉúÇ¿¿ª´¦ÀíÁ÷³ÌµÄ±êÖ¾
|
u8 Force_Open_for_check_Flag; //Ç¿¿ªÖ®ºóÒª¼ì²âopºÍcl
|
|
|
|
u16 OpenValveTime; //¿ª·§Ê±¼ä
|
u16 CloseValveTime; //¹Ø·§Ê±¼ä
|
|
u8 CurrentState; //µçÁ÷״̬£¬ OP CLµçƽΪ¸ßʱ£¬ËµÃ÷ûÓдóµçÁ÷£¬Ã»ÓжÂת £» ΪµÍʱ£¬ËµÃ÷ÓдóµçÁ÷£¬¶ÂתÁË£¬Ò²ËµÃ÷µ½Î»ÁË¡£
|
u8 CurrentState0Time;//¶Âת¼ì²â´ÎÊý£¬·§¿ØÆÚ¼ä¼ì²âµ½2´ÎΪ0£¬´ó¸ÅÂÊ˵Ã÷ÕæµÄ¶ÂתÁË
|
|
u32 ValveHaveClosedTime; //·§ÒѾ¹Ø±Õʱ¼ä£¬·§ÃÅÒ쳣ʱ²»ËãÔÚÄÚ
|
|
|
u8 PowerLowContinueTimes; //µÍµç¼ì²â³ÖÐøÊ±¼ä£¬ ³ÖÐø¶àÃë»ò¶à´ÎÓÐЧ
|
u8 PowerHighContinueTimes; //µÍµç¼ì²â³ÖÐøÊ±¼ä£¬ ³ÖÐø¶àÃë»ò¶à´ÎÓÐЧ
|
|
|
u16 ForceOpenLowContinueTimes; //Ç¿¿ªÐźżì²â³ÖÐøÊ±¼ä£¬ ³ÖÐø¶àÃë»ò¶à´ÎÓÐЧ
|
u16 ForceOpenHighContinueTimes; //Ç¿¿ªÐźżì²â³ÖÐøÊ±¼ä£¬ ³ÖÐø¶àÃë»ò¶à´ÎÓÐЧ
|
|
|
u8 Emergency_close_valve_flag; //½ô¼±¹Ø·§±êÖ¾£¬±ÈÈçϵͳµôµçµÈ½ô¼±Çé¿öÐèÒªÁ¢¼´Ö´Ðйط§
|
|
|
}VALVE_CONTROL_PARM;
|
|
#pragma pack()
|
|
|
void Motor_GPIO_Init(void);
|
void Motor_GPIO_Init_sleep_mode(void);
|
|
void Force_Open_GPIO_Init(void);
|
void Force_Open_GPIO_Init_sleep_mode(void);
|
void Valve_Alka_Low_A_GPIO_Init(void);
|
void Valve_Alka_Low_A_GPIO_Init_sleep_mode(void);
|
void Valve_Alka_Low_A_READ_GPIO_Init(void);
|
|
void Valve_run_para_init(void);
|
|
void Valve_Power_First_Check(void);
|
|
void Valve_Control(void);
|
u8 Valve_Open(void);
|
u8 Valve_Close(void);
|
void Valve_Control_Fun(void);
|
void Valve_OpenTimesRecord(void);
|
void Valve_CloseTimesRecord(void);
|
void ValveCloseIdTypeSet(u16 valvecloseid,u8 valveclosetype);
|
void ValveCloseAuthorizeFlagSet(u16 valvecloseid,u8 valveclosetype);
|
void Valve_Motor_Stop(void);
|
u8 GetValveCloseIDClass(u16 valvecloseid);
|
void ValveActionJudge();
|
VALVE_STATE_T Read_OP_CL_VALVE_Status(u16 delay_time_ms);
|
extern uint16_t Time_For_valve_run;
|
extern unsigned char OpenValveFLAG;
|
|
|
extern VALVE_CONTROL_PARM Valve_control_parm;
|
|
extern u16 Valve_Force_Open_Flag;
|
|
|
extern VALVE_CTL_BYTES_T valve_ctl_bytes_g;
|
#endif
|