P6UWaterBLE/hardinterface/inc/UWater_valve_driver.h

133 lines
3.8 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
/*******************************************************************************
* @Copyright (c) :(C)2017, Qingdao ieslab Co., Ltd
* @FileName :GP22Gas_valve_driver.h
* @Author :Kv-L
* @Version :V1.0
* @Date :2017<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD>9<EFBFBD><EFBFBD> 13:30:23
* @Description :the function of the entity of GP22Gas_valve_driver.h
*******************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------*/
#include "sys_config.h"
#ifndef VALVE_DRIVER_H
#define VALVE_DRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "sys_config.h"
#include "ddl.h"
#include "type.h"
//#include "UWater_frame_app.h"
/*EEP<45><50>ַӳ<D6B7><D3B3>*/
//#define VALVE_ADDR_BASE EEP_BASE_VALVE /*<2A><>ϵͳȷ<CDB3><C8B7>*/
//#define VALVE_ERR_BASE (VALVE_ADDR_BASE + 1)
#define CHANNEL_VALVE_CHECK 13 /*ref ADC_channels HD 2020-09-16*/
#define VALVE_PAUSE_TIME 200 /*<2A><>ͣʱ<CDA3><CAB1>1s<31><73>ѡ<EFBFBD><D1A1>5ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>TIMER_5MS_VALVE*/
#define VALVE_CHECK_TIME 100 /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>0.5s<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>5ms<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>TIMER_5MS_VALVE*/
#define VALVE_ERROR_MAX 2 /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>*/
//<2F><><EFBFBD><EFBFBD>adc<64><63>ѹ<EFBFBD><D1B9>Ϣ
#define VALVE_HIGH_POWER 1 //<2F><>ת
#define VALVE_NORMAL_POWER 0 //<2F><><EFBFBD><EFBFBD>
//<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ADֵ
#define VALVE_HOGH_ADC_VALUE (280/2) //(ʵ<><CAB5><EFBFBD><EFBFBD>תADC=310,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0.5R-><3E><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>370mA;<3B><EFBFBD><E8B6A8>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>280mA-->0.5R<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--->ADC=230;150mA--->0.5R--->adc=123)
#define VALVE_HOGH_ADC_VALUE_MIN (123/2)//123--->150mA
#define VALVE_HOGH_ADC_VALUE_MAX (287/2)//287--->350mA
#if (MODULE_ML302_TCP|MODULE_ML307A_TCP)
#define NEW_STA_PORT GpioPortA
#define NEW_STA_PIN GpioPin4
#define NEW_STA_OP_PORT GpioPortF
#define NEW_STA_OP_PIN GpioPin1
#else
#define NEW_STA_PORT GpioPortC //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><E2B9A9>
#define NEW_STA_PIN GpioPin1
#define NEW_STA_OP_PORT GpioPortA
#define NEW_STA_OP_PIN GpioPin7
#endif
#define NEW_VALVE_NSLEEP_PORT GpioPortB
#define NEW_VALVE_NSLEEP_PIN GpioPin7
#define NEW_VALVE_OPEN_PORT GpioPortF
#define NEW_VALVE_OPEN_PIN GpioPin5
#define NEW_VALVE_CLOSE_PORT GpioPortF
#define NEW_VALVE_CLOSE_PIN GpioPin4
#define NEW_VALVE_V_CHECK_PORT GpioPortC
#define NEW_VALVE_V_CHECK_PIN GpioPin3
#define NEW_STA_CL_PORT GpioPortA
#define NEW_STA_CL_PIN GpioPin6
/*״̬<D7B4><CCAC>״̬*/
enum{
VALVE_IDLE = 0,
VALVE_S1,
VALVE_S2,
VALVE_S3,
VALVE_S4
};
/*/<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>*/
#define VALVE_TO_OPEN 0x55 /*<2A><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>*/
#define VALVE_TO_CLOSE 0x99 /*<2A>ط<EFBFBD>ָ<EFBFBD><D6B8>*/
#define VALVE_TO_HALF_OPEN 0xAA /*<2A><EFBFBD><EBBFAA>ָ<EFBFBD><D6B8>*/
#define VALBE_CLOSE_GENERAL 0xBB //<2F><>ͨ<EFBFBD>ط<EFBFBD>
#define VALBE_CLOSE_LOCK 0xCC //Ȩ<>޹ط<DEB9>
/*<2A><><EFBFBD><EFBFBD>״̬*/
enum{
VALVE_STATE_OPEN = 1, //<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>״̬
VALVE_STATE_OPEN_EMERGENCY, //Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
VALVE_STATE_CLOSE, //<2F><>ͨ<EFBFBD>ط<EFBFBD>
VALVE_STATE_CLOSE_EMERGENCY, //Ӧ<><D3A6><EFBFBD>ط<EFBFBD>
VALVE_STATE_CLOSE_LOCK //Ȩ<>޹ط<DEB9>
};
/*<2A><>λ*/
#define VALVE_IN_PLACE 0 /*<2A><><EFBFBD>ŵ<EFBFBD>λ*/
#define VALVE_NOT_IN_PLACE 1 /*<2A><><EFBFBD>ŵ<EFBFBD>λ*/
/**<2A><><EFBFBD>⵽λ*/
#define VALVE_STA_CL Gpio_GetInputIO(NEW_STA_CL_PORT, NEW_STA_CL_PIN)
#define VALVE_STA_OP Gpio_GetInputIO(NEW_STA_OP_PORT, NEW_STA_OP_PIN)
#define OPEN_POWER_ON 0
#define OPEN_POWER_OFF 1
#define CLOSE_POWER_ON 0
#define CLOSE_POWER_OFF 1
void ValveStartTask(u8 state);
void ValveInit(void);
void ValveActMachineDriver(void);
void ValveMachineDriver(void);
void ValveAdcMachineDriver(void);
u8 ValveIfIdle(void);
u8 ValveIfSleep(void);
void ValvePreSleep(void);
void ValveWakeSleep(void);
u8 ValveGetState(void);
u8 ValveGetLineInSpace(void);
void ValveUpdatePara(void);
void ValveStoreRcvState(u8 state);
#ifdef __cplusplus
}
#endif
#endif