P1UWaterBase/hardinterface/inc/UWater_valve_driver.h

133 lines
3.8 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
* @Copyright (c) :(C)2017, Qingdao ieslab Co., Ltd
* @FileName :GP22Gas_valve_driver.h
* @Author :Kv-L
* @Version :V1.0
* @Date :2017年5月9日 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地址映射*/
//#define VALVE_ADDR_BASE EEP_BASE_VALVE /*跟系统确认*/
//#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 /*暂停时间1s选用5ms当量定时器TIMER_5MS_VALVE*/
#define VALVE_CHECK_TIME 100 /*大电流检测时间0.5s选用5ms当量定时器TIMER_5MS_VALVE*/
#define VALVE_ERROR_MAX 2 /*最大堵转次数*/
//阀门adc电压信息
#define VALVE_HIGH_POWER 1 //堵转
#define VALVE_NORMAL_POWER 0 //正常
//堵转电流AD值
#define VALVE_HOGH_ADC_VALUE (280/2) //(实测堵转ADC=310,采样电阻0.5R->堵转电流370mA;设定堵转电流280mA-->0.5R采样电阻--->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 //到位检测供电
#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
/*状态机状态*/
enum{
VALVE_IDLE = 0,
VALVE_S1,
VALVE_S2,
VALVE_S3,
VALVE_S4
};
/*/控制指令*/
#define VALVE_TO_OPEN 0x55 /*开阀指令*/
#define VALVE_TO_CLOSE 0x99 /*关阀指令*/
#define VALVE_TO_HALF_OPEN 0xAA /*半开阀指令*/
#define VALBE_CLOSE_GENERAL 0xBB //普通关阀
#define VALBE_CLOSE_LOCK 0xCC //权限关阀
/*阀门状态*/
enum{
VALVE_STATE_OPEN = 1, //普通开阀状态
VALVE_STATE_OPEN_EMERGENCY, //应急开阀状态
VALVE_STATE_CLOSE, //普通关阀
VALVE_STATE_CLOSE_EMERGENCY, //应急关阀
VALVE_STATE_CLOSE_LOCK //权限关阀
};
/*到位*/
#define VALVE_IN_PLACE 0 /*阀门到位*/
#define VALVE_NOT_IN_PLACE 1 /*阀门到位*/
/**检测到位*/
#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