/********************************************************************************
Copyright (C), Sinowealth Electronic. Ltd.
Author: 	Sino
Version: 	V0.0
Date: 		2020/04/26
History:
	V2.0	2020/04/26		 Preliminary
********************************************************************************/
#include "Main.h"


U8 xdata ucDsgingSpeed;

/*************************************************************************************************
* 函数名: KeySwitchSpeed
* 参  数: 无
* 返回值: 无
* 描  述: 按键调速，分为三挡
*************************************************************************************************/
void KeySwitchSpeed(void)
{
	bSlowDischarge = 0;
    bMidDischarge = 0;
	bFastDischarge = 0;
	if(bDSGING)
	{
		if(ucDsgingSpeed == 0)
		{
			ucDsgingSpeed = 1;
			bMidDischarge = 1;
			McuPWM2Set(E2uiDSG1PWMFreq ,E2ucDSG1PWMRatioH);
			McuPWM2En();
		}
		else if(ucDsgingSpeed == 1)
		{
			ucDsgingSpeed = 2;
			bFastDischarge = 1;
			McuPWM2Set(E2uiDSG1PWMFreq, 100);
			McuPWM2En();
		}
		else
		{
			ucDsgingSpeed = 0;
			bSlowDischarge = 1;
			McuPWM2Set(E2uiDSG1PWMFreq ,E2ucDSG1PWMRatioL);
			McuPWM2En();
		}
	}
	else
	{
		bSlowDischarge = 0;
		bMidDischarge = 0;
		bFastDischarge = 0;
	}
}


/*************************************************************************************************
* 函数名: KeyProcess
* 参  数: 无
* 返回值: 无
* 描  述: 当检测到有效按键后，处理对应按键
*************************************************************************************************/
void KeyProcess(void)
{
	if(bKeyFlg)
	{
		bKeyFlg = 0;                                //同一按键一直被按下，如果持续的时间足够长，则会先触发长按，后触发长按持续，但目前我们没有用到长按持续状态
		switch(ucKeyValue)
		{
			case KEY_ON_S:
				KeySwitchSpeed();
			break;

			case KEY_LED_S:
				bLedDisFlg = 1;
				ucLedTimeCnt = 0;
			break;
			
			case KEY_LED_L:                         //长按LED进PD模式
				bPDFlg = 1;
			break;

			case KEY_ON_L:                          //长按唤醒按键2S，蓝牙电源开启/关闭		
				bLedDisBleFlg = ~bLedDisBleFlg;
				if(bLedDisBleFlg)
				{
					BlueToothPowerEn();
				}
				else
				{
					BlueToothPowerDis();
				}
			break;
			
			default:
			break;
		}
	}
}

