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

📄 backlighttest.cpp

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//-----------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//-----------------------------------------------------------------------------
//
//  Copyright (C) 2005, Motorola Inc. All Rights Reserved
//
//-----------------------------------------------------------------------------
//------------------------------------------------------------------------------
//
// Copyright (C) 2006, 2007, Freescale Semiconductor, Inc. All Rights Reserved.
// THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
// AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//
//------------------------------------------------------------------------------
//
//  File:  BacklightTest.cpp
//
//  This file contains test code for the Backlight driver
//
//-----------------------------------------------------------------------------
#pragma warning(push)
#pragma warning(disable: 4115)
#pragma warning(disable: 4201)
#pragma warning(disable: 4204)
#pragma warning(disable: 4214)
#include <windows.h>
#pragma warning(pop)
#include <winbase.h>
#include <Devload.h>
#include <ceddk.h>
#include "main.h"
#include "globals.h"

#include "pmic_bklight.h"
#include "pmic_bklight.h"

//#include "bspbacklight.h"


//-----------------------------------------------------------------------------
// External Functions


//-----------------------------------------------------------------------------
// External Variables


//-----------------------------------------------------------------------------
// Defines



#define BKL_ZONE_ERROR  TRUE

#define NUM_TEST_PERIODS        0x4
#define NUM_TEST_CURRENTLEVELS  0x8
#define NUM_TEST_DUTYCYCLES     0x10


//-----------------------------------------------------------------------------
// Local Functions
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Local Variables

static  UINT8   CurrentLevel[NUM_TEST_CURRENTLEVELS] = {0x0, 0x1, 0x2, 0x3,
                                                        0x4, 0x5, 0x6, 0x7};
static  UINT8   DutyCycle[NUM_TEST_DUTYCYCLES] = {0x0, 0x1, 0x2, 0x3, 0x4, 0x5,
                                                  0x6, 0x7, 0x8, 0x9, 0xa, 0xb,
                                                  0xc, 0xd, 0xe, 0xf};
static  UINT8   Period[NUM_TEST_PERIODS] = {0, 0x1, 0x2, 0x3};


//------------------------------------------------------------------------------
//
// Function: BacklightOnTest
//
// This function tests the Backlight ON
//
// Parameters:
//      uiMsg
//           [in] to determine if the shell wants to execute the test.
//      tpParam
//           [in] Ignored.
//      lpFTE
//           [in] Ignored.
//
// Returns:
//      Specifies if the test passed (TPR_PASS), failed (TPR_FAIL)
//
//------------------------------------------------------------------------------
TESTPROCAPI BacklightOnTest(UINT uMsg, TPPARAM tpParam, LPFUNCTION_TABLE_ENTRY lpFTE)
{
    int  RetVal = IDNO;
    
    UNREFERENCED_PARAMETER(tpParam);
    UNREFERENCED_PARAMETER(lpFTE);

    // The shell doesn't necessarily want us to execute the test. Make sure first.
    if(uMsg != TPM_EXECUTE)
    {
        return TPR_NOT_HANDLED;
    }

    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightOnTest() +\r\n"));


    // make sure we are in current mode
    if(PmicBacklightSetMode(BACKLIGHT_MAIN_DISPLAY, BACKLIGHT_CURRENT_CTRL_MODE))
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cppcpp:BacklightOnTest(): PmicBacklightSetMode() failed!\r\n"));
        return TPR_FAIL;
    }

    // go to mid level
    if(PmicBacklightSetCurrentLevel(BACKLIGHT_MAIN_DISPLAY, CurrentLevel[NUM_TEST_CURRENTLEVELS/2]))
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightOnTest(): PmicBacklightSetCurrentLevel() failed!\r\n"));
            
        return TPR_FAIL;
    }

    // Test the edge slow enable
    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightOnTest(): Setting edge slow enable!\r\n"));

    if(PmicBacklightEnableEdgeSlow())
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightOnTest(): PmicBacklightEnableEdgeSlow() failed!\r\n"));
        return TPR_FAIL;
    }

    if (PmicBacklightSetDutyCycle(BACKLIGHT_MAIN_DISPLAY, DutyCycle[NUM_TEST_DUTYCYCLES/2]))
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightOnTest(): PmicBacklightSetDutyCycle() failed!\r\n"));
        return TPR_FAIL;
    }

    // enable the backlight module
    if(PmicBacklightMasterEnable())
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightOnTest(): PmicBacklightMasterEnable() failed!\r\n"));
        return TPR_FAIL;
    }

    RetVal = MessageBox(NULL, TEXT("Press 'Yes' button if Backlight turned 'On'. If not, Press 'No' button"),
                        TEXT( "Backlight 'On' Test"),  MB_ICONQUESTION|MB_YESNO|MB_SETFOREGROUND);
    if(RetVal == IDNO)
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp: BacklightOnTest() - Backlight not turned 'On'\r\n"));
        return TPR_FAIL;
    }

    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightOnTest() -\r\n"));
    
    return TPR_PASS;
}


//------------------------------------------------------------------------------
//
// Function: BacklightCurrentControlModeTest
//
// This function tests the Backlight current control mode
//
// Parameters:
//      uiMsg
//           [in] to determine if the shell wants to execute the test.
//      tpParam
//           [in] Ignored.
//      lpFTE
//           [in] Ignored.
//
// Returns:
//      Specifies if the test passed (TPR_PASS), failed (TPR_FAIL)
//
//------------------------------------------------------------------------------
TESTPROCAPI BacklightCurrentControlModeTest(UINT uMsg, TPPARAM tpParam, LPFUNCTION_TABLE_ENTRY lpFTE)
{
    UINT8   i, ret;

    UNREFERENCED_PARAMETER(tpParam);
    UNREFERENCED_PARAMETER(lpFTE);

    // The shell doesn't necessarily want us to execute the test. Make sure first.
    if(uMsg != TPM_EXECUTE)
    {
        return TPR_NOT_HANDLED;
    }

    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest() +\r\n"));

    // set the backlight to current control mode
    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): Set the backlight to current control mode!\r\n"));
    

    if(PmicBacklightSetMode(BACKLIGHT_MAIN_DISPLAY, BACKLIGHT_CURRENT_CTRL_MODE))
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): PmicBacklightSetMode() failed!\r\n"));
        return TPR_FAIL;
    }

////////////////////////////////////////////////////////////////////////////////////////////////////
    // test the current levels setting    
    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): Test the current levels setting!\r\n"));

    for (i = 0; i< NUM_TEST_CURRENTLEVELS; i++)
    {  
        if(PmicBacklightSetCurrentLevel(BACKLIGHT_MAIN_DISPLAY, CurrentLevel[i]))
        {
            g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): PmicBacklightSetCurrentLevel() failed!\r\n"));
            
            return TPR_FAIL;
        }

        if(PmicBacklightGetCurrentLevel(BACKLIGHT_MAIN_DISPLAY, &ret))
        {
            g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): PmicBacklightGetCurrentLevel() failed!\r\n"));
            return TPR_FAIL;
        }

        if (ret != CurrentLevel[i])
        {
            g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): Returned Current Level setting differs with Passed-in! \r\n"));
            return TPR_FAIL;
        }

        Sleep (1000);

    }

    // go back to mid level
    if(PmicBacklightSetCurrentLevel(BACKLIGHT_MAIN_DISPLAY, CurrentLevel[NUM_TEST_CURRENTLEVELS/2]))
    {
        g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): PmicBacklightSetCurrentLevel() failed!\r\n"));
            
        return TPR_FAIL;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////
    // test the duty cycles setting    
    g_pKato->Log(LOG_COMMENT, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): Test the duty cycles setting!\r\n"));
    
    for (i = 0; i< NUM_TEST_DUTYCYCLES; i++)
    {

        if(PmicBacklightSetDutyCycle(BACKLIGHT_MAIN_DISPLAY, DutyCycle[i]))
        {
            g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): PmicBacklightSetDutyCycle() failed!\r\n"));
            return TPR_FAIL;
        }

        if(PmicBacklightGetDutyCycle(BACKLIGHT_MAIN_DISPLAY, &ret))
        {
            g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): PmicBacklightGetDutyCycle() failed!\r\n"));
            return TPR_FAIL;
        }        

        if (ret != DutyCycle[i])
        {
            g_pKato->Log(BKL_ZONE_ERROR, TEXT("BacklightTest.cpp:BacklightCurrentControlModeTest(): Returned Duty Cycle setting differs with Passed-in! \r\n"));

⌨️ 快捷键说明

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