⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autopower.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 2 页
字号:
#define AUTOPWR_MAIN_FILE

#include "winav.h"#include "ctkav.h"#include "comdef.h"#include "utl.h"#include "chips.h"#include "romld.h"#include "hal.h"#include "comutl.h"#include "cc.h"#include "RTCdrv.h"#include "autopower.h"#include "input.h"#include "gdi.h"
#include "osd.h"
#include "setup.h"
#include "poweronmenu.h"
#include "mainmenu.h"
#include "menu.h"
#include "settime.h"
#include "autopower.h"
#include "disp.h"
extern BIT __btPowerDown;AUTOPWR_TM __AutoPWROnTM;AUTOPWR_TM __AutoPWROffTM;BOOL __bEnableAutoPWROn;BOOL __bEnableAutoPWROff;BOOL __bTriggerAlarm;BYTE __bAutoPWRState;
//For UI parts
HMENU _hAUTOPWRMenu = MENU_HANDLE_INVALID;
BYTE _bAUTOPWRMode;
SETTIME_TIME _AUTOPWRSetTime;
HSETTIME _hAUTOPWRSetTime = SETTIME_HANDLE_INVALID;
BYTE _bAUTOPWRExitKey[] = {KEY_LEFT};

extern IMAGE_FRAME_SETUPINFO __ImageFrameSetupInfo;

extern BYTE CC_PWRCtrl(void);/**************************************************************************  Function     :   AUTOPWR_InitialValue*  Description :   Initialize the variables of auto power module   *  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_Initial ( void ){    __bAutoPWRState = AUTOPWR_NONE;

    //Initialize the value
   if (__ImageFrameSetupInfo.bAutoPowerOnEnable == AUTOPWR_POWER_ON_ENABLE_ON)
   {
        AUTOPWR_EnableOn();    
   }
   else
   {
       AUTOPWR_DisableOn();
   }

   if (__ImageFrameSetupInfo.bAutoPowerOffEnable == AUTOPWR_POWER_OFF_ENABLE_ON)
   {
        AUTOPWR_EnableOff();    
   }
   else
   {
       AUTOPWR_DisableOff();
   }

    __AutoPWROnTM.bHr     =  HIBYTE(__ImageFrameSetupInfo.wAutoPowerOnTime);
    __AutoPWROnTM.bMin    =  LOBYTE(__ImageFrameSetupInfo.wAutoPowerOnTime);

    __AutoPWROffTM.bHr     =  HIBYTE(__ImageFrameSetupInfo.wAutoPowerOffTime);
    __AutoPWROffTM.bMin    =  LOBYTE(__ImageFrameSetupInfo.wAutoPowerOffTime);}/**************************************************************************  Function     :   AUTOPWR_EnableOn*  Description :   Enable auto power on*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_EnableOn(void){    __bEnableAutoPWROn = TRUE;}/**************************************************************************  Function     :   AUTOPWR_DisableOn*  Description :   Disable auto power on*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_DisableOn(void){    __bEnableAutoPWROn = FALSE;}/**************************************************************************  Function     :   AUTOPWR_EnableOff*  Description :   Enable auto power off*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_EnableOff(void){    __bEnableAutoPWROff = TRUE;}/**************************************************************************  Function     :   AUTOPWR_DisableOff*  Description :   Disable auto power off*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_DisableOff(void){    __bEnableAutoPWROff = FALSE;}/**************************************************************************  Function     :   AUTOPWR_SetOnTM*  Description :   Set auto power on timer*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_SetOnTM ( PAUTOPWR_TM ptm){    __AutoPWROnTM.bHr     =  ptm->bHr;    __AutoPWROnTM.bMin    =  ptm->bMin;    //__AutoPWROnTM.bSec    =  ptm->bSec;    }/**************************************************************************  Function     :   AUTOPWR_GetOnTM*  Description :   Get auto power on timer*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_GetOnTM ( PAUTOPWR_TM ptm ){    ptm->bHr     =    __AutoPWROnTM.bHr;    ptm->bMin   =    __AutoPWROnTM.bMin;    //ptm->bSec   =    __AutoPWROnTM.bSec;  }/**************************************************************************  Function     :   AUTOPWR_SetOffTM*  Description :   Set auto power off timer*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_SetOffTM ( PAUTOPWR_TM ptm){    __AutoPWROffTM.bHr     =  ptm->bHr;    __AutoPWROffTM.bMin    =  ptm->bMin;    //__AutoPWROffTM.bSec    =  ptm->bSec;    }/**************************************************************************  Function     :   AUTOPWR_GetOffTM*  Description :   Get auto power off timer*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_GetOffTM ( PAUTOPWR_TM ptm ){    ptm->bHr     =    __AutoPWROffTM.bHr;    ptm->bMin   =    __AutoPWROffTM.bMin;    //ptm->bSec   =    __AutoPWROffTM.bSec;  }/**************************************************************************  Function     :   AUTOPWR_Trigger*  Description :   Check auto power status*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_Trigger(void){    _AUTOPWR_Check();    _AUTOPWR_Monitor();}/**************************************************************************  Function     :   _AUTOPWR_Check*  Description :   Check auto power status*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void _AUTOPWR_Check ( void ){    AUTOPWR_TM poweron_tm;    AUTOPWR_TM poweroff_tm;        RTC_TM   rtc_tm;    RTC_GetTime ( &rtc_tm );    if ( __bEnableAutoPWROn && __btPowerDown)    {        AUTOPWR_GetOnTM ( &poweron_tm );        if (               (0  == rtc_tm.bSec) &&
              (poweron_tm.bHr     == rtc_tm.bHr) &&              (poweron_tm.bMin   == rtc_tm.bMin)            )        {            //Bingo!            __bAutoPWRState = AUTOPWR_ON;        }    }    else if ( __bEnableAutoPWROff && !__btPowerDown)    {        AUTOPWR_GetOffTM ( &poweroff_tm );        if (               (0  == rtc_tm.bSec) &&
              (poweroff_tm.bHr     == rtc_tm.bHr) &&              (poweroff_tm.bMin   == rtc_tm.bMin)            )        {            //Bingo!                        __bAutoPWRState = AUTOPWR_OFF;        }    }    else    {        __bAutoPWRState = AUTOPWR_NONE;    }}/**************************************************************************  Function     :   _AUTOPWR_Monitor*  Description :   Core state machine of auto power module*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void _AUTOPWR_Monitor ( void ){    //extern BYTE __bFWKey;    if(__bAutoPWRState == AUTOPWR_ON && __btPowerDown)    {        //Do power switch Off -> On        CC_PWRCtrl();        POWERONMENU_Initial();        __bAutoPWRState = AUTOPWR_NONE;    }    else if(__bAutoPWRState == AUTOPWR_OFF && !__btPowerDown)    {        //Do power switch On -> Off        CC_PWRCtrl();        __bAutoPWRState = AUTOPWR_NONE;    }    else    {        //Do nothing        __bAutoPWRState = AUTOPWR_NONE;    }}/**************************************************************************  Function     :   AUTOPWR_Test*  Description :   Unit test*  Arguments  :   None*  Return        :   None*  Side Effect   :**************************************************************************/void AUTOPWR_Test ( void ){    AUTOPWR_TM poweron_tm;    AUTOPWR_TM poweroff_tm;        poweroff_tm.bHr = 0;    poweroff_tm.bMin = 1;        //poweroff_tm.bSec = 15;         poweron_tm.bHr = 0;    poweron_tm.bMin = 2;        //poweron_tm.bSec = 20;         __bAutoPWRState = AUTOPWR_NONE;    AUTOPWR_EnableOn();        AUTOPWR_EnableOff();    RTC_Test_Set();    AUTOPWR_SetOffTM(&poweroff_tm);        AUTOPWR_SetOnTM(&poweron_tm);}
//*********************************************************************************************************
//  Function    :   AUTOPWR_Entry
//  Abstract    :   This is the entry function of the Auto-Power.
//  Arguments   :   none.
//  Return		:   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -