Esempio n. 1
0
File: menu.c Progetto: Kreyl/nute
void EVENT_KeyAquaPressed(void) {
    if(IsPumping) return;   // Not allowed if pumping yet
    switch(EState) {
        case StShowChannel:
            SetState(StManualAqua);
            PumpOn(EMenu.Pump);
            break;

        case StSetDuration:
            if(!EMenu.AquaWasPressed) { // For the first time, reset duration value
                Pumps[EMenu.Pump-1].Duration = 0; 
                EMenu.AquaWasPressed = true;
            }
            Time.SecondPassed = false;  // Reset timer
            PumpsSettingsChanged = true;
            PumpOn(EMenu.Pump);
            break;

        default: break;
    } // switch
}
Esempio n. 2
0
/**
 * @brief   状态转换
 */
void StateTrans(void)
{
	SourceOn();
	PumpOn();

	DeviceDataInit();
	GasDataInit();

	// 获取存储的数据
	SaveReadInit();

	// 获取存储的设置
	Lcd__LangSet(sDevice.pSave->Language);

	StateSelfCheck();

	ChargeOn();

	while (1)
	{
		// 获取信号量 20mS
		rt_sem_take(&sSemSystemTime, RT_WAITING_FOREVER);

		/* Reload IWDG counter */
		IWDG_ReloadCounter();

		KEY_Get();

		DeviceDispCount();
		DeviceTimeCount();


		switch (sState)
		{
			case STATE_SELF_CHECK:
				StateLedBzVbrCheck();
				SelfCheckJumpCheck();
				break;

			case STATE_DETECT:
				StateDetect(&sGas, &sDevice);
//				DisRecSet(0, 0, 127, 63);
				break;
			case STATE_MENU:
				MenuKey(gKeyShort);
				MenuNoOperateCountdown();
				// 闪烁
//				MenuBlink(&sDevice);

				break;

			case STATE_INPUT:
				StateInputKey(gKeyShort);
				// 闪烁
				if (sDevice.pTemp->Disp.Fresh == TURN_ON)
				{
					DisBlink();
				}
				break;

			case STATE_COUNTDOWN:
				StateCountdownKey(gKeyShort);
				StateCountdownSecond();
				break;

			case STATE_RESULT:
				StateResultKey(gKeyShort);
				break;

			case STATE_SHUTDOWN:
				StateShutdownKey(gKeyLong);
				StateShutdownSecond();
				break;

			case STATE_POWER_OFF:
				break;

			case STATE_INFO:
				StateInfoKey(gKeyShort);
				StateInfoSecond();
				break;

			case STATE_CHARGE:
//				PumpOff();
//				sDevice.pTemp->Fan.State = TURN_OFF;
				break;

			default:
				break;
		}

		if (sState != STATE_SELF_CHECK)
		{
			if (gKeyTrg)
			{
				S_Buzzer lBz;

				lBz.Src = BUZZER_KEY;
				lBz.Time = BUZZER_KEY_TIME;
				BuzzerOn(&lBz);
			}
		}

		if (sState != STATE_POWER_OFF)
		{
			if (gKeyTrg || gKeyLong)
			{
				PowerSaveBglFresh();
			}
		}

		if (gKeyTrg || gKeyLong)
		{
			MenuNoOperateFresh();
		}


		// 设备倒计时
		PowerSaveBglCountdown();
		LedCountdown();
		BuzzerCountdown();
		VibrationCountdown();
		StateBatCheck();
		StateChargeCheck();

	}
}