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

📄 guiapp_action_autolockmenu.c

📁 IT projecotr reference design.
💻 C
字号:
/*****************************************************************************
**             TEXAS INSTRUMENTS PROPRIETARY INFORMATION
**
**  (c) Copyright, Texas Instruments Incorporated, 2006.
**      All Rights Reserved.
**
**  Property of Texas Instruments Incorporated. Restricted Rights -
**  Use, duplication, or disclosure is subject to restrictions set
**  forth in TI's program license agreement and associated documentation.
******************************************************************************/

#include "common.h"
#include "guiStyle.h"
#include "guiApp_action.h"
#include "datapath.h"
#include "adccontrol.h"
#include "guiApp_action_menu_values.h"
#include "ddp2230_rtos_include.h"

GUI_AUTOLOCK_MENU_VALUES_STRUCT *autolockMenuValues;
extern uint32 gID_MemPool; 

/* Initialize the items.  No autolock menu items are read from the EEPROM by the GUI */
int08 guiApp_action_AutolockMenu_OnStart( int16 menuId, GUIMSG *msg )
{
    int08 min, max;

    if( RTA_MemRequest( gID_MemPool, sizeof( GUI_AUTOLOCK_MENU_VALUES_STRUCT ), (void **)&autolockMenuValues ) == PASS )
    {    
	    adccontrol_GetPhase( &autolockMenuValues->phase );
	    adccontrol_GetPhaseLimits( &min, &max );
	    autolockMenuValues->phase = LMT( min, autolockMenuValues->phase, max );
	    guiStyle_item_SetSingleValue( ITEM_PHASEITEM, autolockMenuValues->phase, min, max );
	    
	    adccontrol_GetTracking( &autolockMenuValues->tracking );
	    adccontrol_GetTrackingLimits( &min, &max );
	    autolockMenuValues->tracking = LMT( min, autolockMenuValues->tracking, max );
	    guiStyle_item_SetSingleValue( ITEM_TRACKINGITEM, autolockMenuValues->tracking, min, max );
	    
	    adccontrol_GetHorizontalPosition( &autolockMenuValues->horizontalPosition );
	    adccontrol_GetHorizontalPositionLimits( &min, &max );
	    autolockMenuValues->horizontalPosition = LMT( min, autolockMenuValues->horizontalPosition, max );
	    guiStyle_item_SetSingleValue( ITEM_HPOSITEM, autolockMenuValues->horizontalPosition, min, max );
	    
	    adccontrol_GetVerticalPosition( &autolockMenuValues->verticalPosition );
	    adccontrol_GetVerticalPositionLimits( &min, &max );
	    autolockMenuValues->verticalPosition = LMT( min, autolockMenuValues->verticalPosition, max );
	    guiStyle_item_SetSingleValue( ITEM_VPOSITEM, autolockMenuValues->verticalPosition, min, max );
	    
	}
	else
	{
	    guiStyle_HideItem( menuId, ITEM_PHASEITEM, TRUE );
	    guiStyle_HideItem( menuId, ITEM_TRACKINGITEM, TRUE );
	    guiStyle_HideItem( menuId, ITEM_HPOSITEM, TRUE );
	    guiStyle_HideItem( menuId, ITEM_VPOSITEM, TRUE );
	}
	return PASS;
}

int08 guiApp_action_AutolockMenu_OnClose( int16 menuId )
{
    /* release autolock menu memory structure requested in onStart */
    RTA_MemRelease( autolockMenuValues );

    return PASS;
}

/* specify the highlight window as required by the GUI Style ADL */
int08 guiApp_action_AutolockMenu_GetHighlightWindow( int16 menuId, uint08 *window )
{
    *window = WIND_AUTOLOCKMENUHIGHLIGHT;
    return PASS;
}

/* implement item behavior, system interaction */
int08 guiApp_action_AutolockMenu_GuiMsg( int16 menuId, int16 itemId, GUIMSG *msg )
{
    int08 min, max;

    if( msg == NULL )
        return FAIL;

    switch( itemId )
    { 
        case ITEM_RESYNCITEM:
            
            switch( msg->type )
            {
                case GUIMSG_ASSERT:
                    datapath_UserResync();
                    break;

                default:
                    break;
            } 
            break;
        
        case ITEM_PHASEITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    adccontrol_GetPhaseLimits( &min, &max );
                    if( autolockMenuValues->phase > min )
                        autolockMenuValues->phase -= 1;
                    else
                        autolockMenuValues->phase = min;
                    if( adccontrol_SetPhase( autolockMenuValues->phase ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_PHASEITEM, autolockMenuValues->phase, min, max );
                    break;

                case GUIMSG_INC:
                    adccontrol_GetPhaseLimits( &min, &max );
                    if( autolockMenuValues->phase < max )
                        autolockMenuValues->phase += 1;
                    else
                        autolockMenuValues->phase = max;
                    if( adccontrol_SetPhase( autolockMenuValues->phase ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_PHASEITEM, autolockMenuValues->phase, min, max );
                    break;

                default:
                    break;
            }
            break;
            
        case ITEM_TRACKINGITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    adccontrol_GetTrackingLimits( &min, &max );
                    if( autolockMenuValues->tracking > min )
                        autolockMenuValues->tracking -= 1;
                    else
                        autolockMenuValues->tracking = min;
                    if( adccontrol_SetTracking( autolockMenuValues->tracking ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_TRACKINGITEM, autolockMenuValues->tracking, min, max );
                    break;

                case GUIMSG_INC:
                    adccontrol_GetTrackingLimits( &min, &max );
                    if( autolockMenuValues->tracking < max )
                        autolockMenuValues->tracking += 1;
                    else
                        autolockMenuValues->tracking = max;
                    if( adccontrol_SetTracking( autolockMenuValues->tracking ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_TRACKINGITEM, autolockMenuValues->tracking, min, max );
                    break;

                default:
                    break;
            }
            break;
            
        case ITEM_HPOSITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    adccontrol_GetHorizontalPositionLimits( &min, &max );
                    if( autolockMenuValues->horizontalPosition > min )
                        autolockMenuValues->horizontalPosition -= 1;
                    else
                        autolockMenuValues->horizontalPosition = min;
                    if( adccontrol_SetHorizontalPosition( autolockMenuValues->horizontalPosition ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_HPOSITEM, autolockMenuValues->horizontalPosition, min, max );
                    break;

                case GUIMSG_INC:
                    adccontrol_GetHorizontalPositionLimits( &min, &max );
                    if( autolockMenuValues->horizontalPosition < max )
                        autolockMenuValues->horizontalPosition += 1;
                    else
                        autolockMenuValues->horizontalPosition = max;
                    if( adccontrol_SetHorizontalPosition( autolockMenuValues->horizontalPosition ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_HPOSITEM, autolockMenuValues->horizontalPosition, min, max );
                    break;

                default:
                    break;
            }
            break;
            
        case ITEM_VPOSITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    adccontrol_GetVerticalPositionLimits( &min, &max );
                    if( autolockMenuValues->verticalPosition > min )
                        autolockMenuValues->verticalPosition -= 1;
                    else
                        autolockMenuValues->verticalPosition = min;
                    if( adccontrol_SetVerticalPosition( autolockMenuValues->verticalPosition ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_VPOSITEM, autolockMenuValues->verticalPosition, min, max );
                    break;

                case GUIMSG_INC:
                    adccontrol_GetVerticalPositionLimits( &min, &max );
                    if( autolockMenuValues->verticalPosition < max )
                        autolockMenuValues->verticalPosition += 1;
                    else
                        autolockMenuValues->verticalPosition = max;
                    if( adccontrol_SetVerticalPosition( autolockMenuValues->verticalPosition ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_VPOSITEM, autolockMenuValues->verticalPosition, min, max );
                    break;
                    
                default:
                    break;
            }
            break;
        
        case ITEM_SAVESETTINGSITEM:
            if( msg->type == GUIMSG_ASSERT )
            {        
                guiStyle_Exit();            
                guiStyle_StartMenu( MENU_AUTOLOCKSAVESUBMENU, NULL );
            }
            break;
            
        default:
            return FAIL;
    }     
    
    return PASS;

}

⌨️ 快捷键说明

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