/*
*********************************************************************************************************
*                                       IAR Development Kits
*                                              on the
*
*                                    M451
*
* Filename      : gpio_vcc.h
* Version       : V1.00
* Programmer(s) : Qian Xianghong
*********************************************************************************************************
*/

#include "type.h"

#ifndef  USER_GPIO_VCC_PRESENT
#define  USER_GPIO_VCC_PRESENT

#define VCC_GSM_ON()	// LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_12)
#define VCC_GSM_OFF()	// LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_12)

#define VCC_GPS_ON()	// LL_GPIO_ResetOutputPin(GPIOD, LL_GPIO_PIN_4)			// 低电平打开
#define VCC_GPS_OFF()	// LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_4)
#define IS_VCC_GPS_ON() (0) // (!LL_GPIO_IsOutputPinSet(GPIOD, GPIO_PIN_4))

// RS485输出开关
#define VCC_RS485_ON()		//LL_GPIO_ResetOutputPin(GPIOC, LL_GPIO_PIN_12)			// 低电平打开
#define VCC_RS485_OFF()		//LL_GPIO_SetOutputPin(GPIOC, LL_GPIO_PIN_12)

// RF模块开关（4~20mA通信开关）
#define VCC_RF_ON()		// LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_11)
#define VCC_RF_OFF()	// LL_GPIO_ResetOutputPin(GPIOD, LL_GPIO_PIN_11)
#define IS_VCC_RF_ON()	(0) // (LL_GPIO_IsOutputPinSet(GPIOD, LL_GPIO_PIN_11))

// RF模块开关（4~20mA通信开关）
#define VCC_MA_ON()		//LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_11)
#define VCC_MA_OFF()	//LL_GPIO_ResetOutputPin(GPIOD, LL_GPIO_PIN_11)
#define IS_VCC_MA_ON()	(0)//(LL_GPIO_IsOutputPinSet(GPIOD, LL_GPIO_PIN_11))

// BD模块开关
#define VCC_BD_ON()		// LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_2)
#define VCC_BD_OFF()	// LL_GPIO_ResetOutputPin(GPIOD, LL_GPIO_PIN_2)

// SFlash开关
#define VCC_SFLASH_FRAM_ON()	// LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_11)	// 低电平打开
#define VCC_SFLASH_FRAM_OFF()	// LL_GPIO_SetOutputPin(GPIOE, LL_GPIO_PIN_11)

// 传感器5V开关
#define VCC_SENSOR_5V_ON()		LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_8)
#define VCC_SENSOR_5V_OFF()		LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_8)
#define IS_VCC_SENSOR_5V_ON()  (LL_GPIO_IsOutputPinSet(GPIOA, LL_GPIO_PIN_8))

// 充电检测及唤醒脚
#define VCC_POWER_STATUS()		(0)//(LL_GPIO_IsInputPinSet(GPIOE, GPIO_PIN_7))

// 防过充输出开关
#define KZ_CHARGE_ENABLE_HIGH()		//LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_6)
#define KZ_CHARGE_ENABLE_LOW()		//LL_GPIO_ResetOutputPin(GPIOB, LL_GPIO_PIN_6)
#define IS_CHARGE_ENABLE_HIGH()		//(LL_GPIO_IsOutputPinSet(GPIOB, LL_GPIO_PIN_6))
#define KZ_CHARGE_DISABLE_HIGH()	//LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_7)
#define KZ_CHARGE_DISABLE_LOW()		//LL_GPIO_ResetOutputPin(GPIOB, LL_GPIO_PIN_7)
#define IS_CHARGE_DISABLE_HIGH()	//(LL_GPIO_IsOutputPinSet(GPIOB, LL_GPIO_PIN_7))

// 电磁阀控制开关（临时占用防过充引脚，常闭阀门，默认需要设置为允许状态）
#define KZ_VALUE_ENABLE()		//LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_6)
#define KZ_VALUE_DISABLE()		//LL_GPIO_ResetOutputPin(GPIOB, LL_GPIO_PIN_6)
#define IS_VALUE_ENABLED()		(0)//(LL_GPIO_IsOutputPinSet(GPIOB, LL_GPIO_PIN_6))

// 声光报警输出开关
#define KZ_ALARM_ON()				//LL_GPIO_SetOutputPin(GPIOE, LL_GPIO_PIN_9)
#define KZ_ALARM_OFF()			//	LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_9)
#define IS_ALARM_ON()				(0)//(LL_GPIO_IsOutputPinSet(GPIOE, LL_GPIO_PIN_9))

// 低液位报警开关（占用声光报警输出开关）
#define KZ_LOW_ALARM_ON()				//LL_GPIO_SetOutputPin(GPIOE, LL_GPIO_PIN_9)
#define KZ_LOW_ALARM_OFF()			//	LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_9)
#define IS_LOW_ALARM_ON()				//(LL_GPIO_IsOutputPinSet(GPIOE, LL_GPIO_PIN_9))

// 低液位指示开关（无源干接点输出）
#define KZ_LOW_LEVEL_ON()				//LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_0)
#define KZ_LOW_LEVEL_OFF()			//	LL_GPIO_ResetOutputPin(GPIOD, LL_GPIO_PIN_0)
#define IS_LOW_LEVEL_ON()				(0)//(LL_GPIO_IsOutputPinSet(GPIOD, LL_GPIO_PIN_0))

// 高液位指示开关（无源干接点输出）
#define KZ_LEVEL_ON()			//	LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_1)
#define KZ_LEVEL_OFF()		//		LL_GPIO_ResetOutputPin(GPIOD, LL_GPIO_PIN_1)
#define IS_LEVEL_ON()			(0)//	(LL_GPIO_IsOutputPinSet(GPIOD, LL_GPIO_PIN_1))

// 槽车充液泵控制开关（临时占用pcap04的CS引脚）
#define KZ_PUMP_ON()				
#define KZ_PUMP_OFF()				
#define IS_PUMP_ON()				(0)

// 泄露报警输入开关
#define VCC_LEAK_STATUS()		(0)	//(LL_GPIO_IsInputPinSet(GPIOE, GPIO_PIN_8))

void Vcc_Init();
void Vcc_Disable();

// 恢复通信引脚输出
void Vcc_Enable();

extern volatile uint8_t LCD_Disabled;

#endif
