📄 pgport.c
字号:
/*
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
*
* This software is copyrighted by and is the sole property of
* VIA Networking Technologies, Inc. This software may only be used
* in accordance with the corresponding license agreement. Any unauthorized
* use, duplication, transmission, distribution, or disclosure of this
* software is expressly forbidden.
*
* This software is provided by VIA Networking Technologies, Inc. "as is"
* and any express or implied warranties, including, but not limited to, the
* implied warranties of merchantability and fitness for a particular purpose
* are disclaimed. In no event shall VIA Networking Technologies, Inc.
* be liable for any direct, indirect, incidental, special, exemplary, or
* consequential damages.
*
*
* File: portdef.c
*
* Purpose: Port module UI definitions
*
* Author: Jenda Jao
*
* Date: Jan 08, 2002
*
* Functions:
*
* Revision History:
*
*/
#include "engine.h"
#include "eng_act.h"
#include "allpages.h"
#include "pgport.h"
#include "cfgstr.h"
#include "pigencfg.h"
#include "piportmp.h"
#include "pimsg.h"
#include "str.h"
#include "gen_act.h"
#include "pidef.h"
#include "eng_io.h"
#include "str.h"
#include "piport.h"
#include "pidef.h"
#ifndef __ASIC_VT6524
#include "pimod.h"
#endif
// assign fix label
DIRECT_MEMTYPE_CODE char strFlowCtrl[] = "Flow";
DIRECT_MEMTYPE_CODE char strPortCfgTitle[] = "Port Enable Auto Spd/Dpx Ctrl";
#ifndef __ASIC_VT6524
#ifdef __SWITCH_PORT_18
#define ROW_NUM_IN_PORT_PAGE UI_SWITCH_MEGA_PORT_NUM/2
#else
#define ROW_NUM_IN_PORT_PAGE 14
#endif
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelPortCfg[] = {
{{2,31}, g_strPortCfg, 0},
{{3,31}, "=", 18},
{{4,34}, strFlowCtrl, 0},
{{4,74}, strFlowCtrl, 0},
{{5, 3}, strPortCfgTitle, 0},
{{5,43}, strPortCfgTitle, 0},
{{6, 3}, "-", 35},
{{6,43}, "-", 35},
{{24,2}, g_strHelpMsg, 0},
};
// assign var item
DIRECT_MEMTYPE_CODE SItemListbox aSIListboxPort[] = {
{g_pSPortPageCfg->aSMegaPortCfg, 0,0, sizeof(SMegaPortCfg)*8, g_aszEnDisCfg, 2},
{g_pSPortPageCfg->aSMegaPortCfg, 1,1, sizeof(SMegaPortCfg)*8, g_aszOnOffCfg, 2},
{g_pSPortPageCfg->aSMegaPortCfg, 2,4, sizeof(SMegaPortCfg)*8, g_aszSpdDpxCfg,5},
{g_pSPortPageCfg->aSMegaPortCfg, 5,5, sizeof(SMegaPortCfg)*8, g_aszOnOffCfg, 2},
};
DIRECT_MEMTYPE_CODE SItemListbox aSILGigaPortName[] = {
{g_pSPortPageCfg->abyGigaPortName, 0, 7, 0, g_aszModulePortName},
{g_pSPortPageCfg->abyGigaPortName+1, 0, 7, 0, g_aszModulePortName},
};
DIRECT_MEMTYPE_CODE SVarLabel aSVarLabelPortCfg[] = {
{{ 7, 3}, &g_SIListboxLogPortName, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_PORT_PAGE, 40},
{{19,43}, aSILGigaPortName, "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{20,43}, aSILGigaPortName+1, "", ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
};
// for giga ports
DIRECT_MEMTYPE_CODE SItemVarListbox aSIVL_GigaPort[] = {
{g_pSPortPageCfg->aSGigaPortCfg, 0, 1, 0, g_aszEnDisCfg, g_pSPortPageCfg->aSStrTblMap[0]},
{g_pSPortPageCfg->aSGigaPortCfg, 2, 3, 0, g_aszOnOffCfg, g_pSPortPageCfg->aSStrTblMap[0]+1},
{g_pSPortPageCfg->aSGigaPortCfg, 4, 7, 0, g_aszSpdDpxCfg, g_pSPortPageCfg->aSStrTblMap[0]+2},
{g_pSPortPageCfg->aSGigaPortCfg, 8, 9, 0, g_aszOnOffCfg, g_pSPortPageCfg->aSStrTblMap[0]+3},
{g_pSPortPageCfg->aSGigaPortCfg+1, 0, 1, 0, g_aszEnDisCfg, g_pSPortPageCfg->aSStrTblMap[1]},
{g_pSPortPageCfg->aSGigaPortCfg+1, 2, 3, 0, g_aszOnOffCfg, g_pSPortPageCfg->aSStrTblMap[1]+1},
{g_pSPortPageCfg->aSGigaPortCfg+1, 4, 7, 0, g_aszSpdDpxCfg, g_pSPortPageCfg->aSStrTblMap[1]+2},
{g_pSPortPageCfg->aSGigaPortCfg+1, 8, 9, 0, g_aszOnOffCfg, g_pSPortPageCfg->aSStrTblMap[1]+3},
};
// all items
DIRECT_MEMTYPE_CODE SItem aSItemPortCfg[] = {
{{7,11}, aSIListboxPort, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_PORT_PAGE, 40},
{{7,19}, aSIListboxPort+1, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_PORT_PAGE, 40},
{{7,25}, aSIListboxPort+2, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_PORT_PAGE, 40},
{{7,34}, aSIListboxPort+3, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_PORT_PAGE, 40},
// for giga port 1
{{19,51}, aSIVL_GigaPort, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{19,59}, aSIVL_GigaPort+1, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{19,65}, aSIVL_GigaPort+2, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{19,74}, aSIVL_GigaPort+3, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
// for giga port 2
{{20,51}, aSIVL_GigaPort+4, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{20,59}, aSIVL_GigaPort+5, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{20,65}, aSIVL_GigaPort+6, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{20,74}, aSIVL_GigaPort+7, "", ITEM_VAR_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
};
// action
DIRECT_MEMTYPE_CODE SActItem aSActionPortCfg[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionEdit, PAACT_bEdit},
{{22, 32}, g_strActionSave, PAPORT_bSavePortCfg},
};
// assign page
DIRECT_MEMTYPE_CODE SPage g_SPagePortCfg = {
aSFixLabelPortCfg, 9,
aSVarLabelPortCfg, 3,
aSItemPortCfg, 12,
aSActionPortCfg, 3,
PAPORT_bLoadPortCfg
};
#else // for VT6524
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelPortCfg[] = {
{{2,31}, g_strPortCfg, 0},
{{3,31}, "=", 18},
{{5,34}, strFlowCtrl, 0},
{{5,74}, strFlowCtrl, 0},
{{6, 3}, strPortCfgTitle, 0},
{{6,43}, strPortCfgTitle, 0},
{{7, 3}, "-", 35},
{{7,43}, "-", 35},
{{24,2}, g_strHelpMsg, 0},
};
DIRECT_MEMTYPE_CODE SVarLabel aSVarLabelPortCfg[] = {
{{ 8, 3}, &g_SIListboxLogPortName, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
};
// assign var item
DIRECT_MEMTYPE_CODE SItemListbox aSIListboxPort[] = {
{g_pSPortPageCfg->aSPortCfg, 0,0, sizeof(SPerPortCfg)*8, g_aszEnDisCfg, 2},
{g_pSPortPageCfg->aSPortCfg, 1,1, sizeof(SPerPortCfg)*8, g_aszOnOffCfg, 2},
{g_pSPortPageCfg->aSPortCfg, 2,4, sizeof(SPerPortCfg)*8, g_aszSpdDpxCfg, 5},
{g_pSPortPageCfg->aSPortCfg, 5,5, sizeof(SPerPortCfg)*8, g_aszOnOffCfg, 2},
};
DIRECT_MEMTYPE_CODE SItem aSItemPortCfg[] = {
{{8,11}, aSIListboxPort , "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
{{8,19}, aSIListboxPort+1, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
{{8,25}, aSIListboxPort+2, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
{{8,34}, aSIListboxPort+3, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
};
// action
DIRECT_MEMTYPE_CODE SActItem aSActionPortCfg[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionEdit, PAACT_bEdit},
{{22, 32}, g_strActionSave, PAPORT_bSavePortCfg},
};
// assign page
DIRECT_MEMTYPE_CODE SPage g_SPagePortCfg = {
aSFixLabelPortCfg, 9,
aSVarLabelPortCfg, 1,
aSItemPortCfg, 4,
aSActionPortCfg, 3,
PAPORT_bLoadPortCfg
};
#endif
//// port status
// assign fix label
DIRECT_MEMTYPE_CODE char strPSTitle1[] = "Spd Flow";
DIRECT_MEMTYPE_CODE char strPSTitle2[] = "Port Enable Link Dpx Ctrl";
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelPortStatus[] = {
{{2,35}, "Port Status", 0},
{{3,35}, "=", 11},
{{5,25}, strPSTitle1, 0},
{{5,65}, strPSTitle1, 0},
{{6, 3}, strPSTitle2, 0},
{{6,43}, strPSTitle2, 0},
{{7, 3}, "-", 34},
{{7,43}, "-", 34},
{{24,2}, g_strHelpMsg, 0}
};
// assign var item
#ifndef __ASIC_VT6524
DIRECT_MEMTYPE_CODE SItemListbox aSIListboxPortStatus[] = {
{g_pSPortStatusPage->aSPortStatus, 0,1, sizeof(SPortStatus)*8, g_aszEnDisCfg, 2},
{g_pSPortStatusPage->aSPortStatus, 2,3, sizeof(SPortStatus)*8, g_aszPortLinkDownUp, 3},
{g_pSPortStatusPage->aSPortStatus, 4,7, sizeof(SPortStatus)*8, g_aszSpdDpxCfg, 14},
{g_pSPortStatusPage->aSPortStatus, 8,9, sizeof(SPortStatus)*8, g_aszOnOffCfg, 3},
};
#else
DIRECT_MEMTYPE_CODE SItemListbox aSIListboxPortStatus[] = {
{g_pSPortStatusPage->aSPortStatus, 0,0, sizeof(SPortStatus)*8, g_aszEnDisCfg, 2},
{g_pSPortStatusPage->aSPortStatus, 1,2, sizeof(SPortStatus)*8, g_aszPortLinkDownUp, 3},
{g_pSPortStatusPage->aSPortStatus, 3,5, sizeof(SPortStatus)*8, g_aszSpdDpxCfg, 6},
{g_pSPortStatusPage->aSPortStatus, 6,7, sizeof(SPortStatus)*8, g_aszOnOffCfg, 3},
};
#endif
// all items
DIRECT_MEMTYPE_CODE SVarLabel aSVarLabelPortStatus[] = {
{{8,3}, &g_SIListboxPanelPortName, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40}
};
DIRECT_MEMTYPE_CODE SItem aSItemPortStatus[] = {
{{8,11}, aSIListboxPortStatus, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
{{8,19}, aSIListboxPortStatus+1, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
{{8,25}, aSIListboxPortStatus+2, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40},
{{8,33}, aSIListboxPortStatus+3, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40}
};
// action
DIRECT_MEMTYPE_CODE SActItem aSActionPortStatus[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionRefresh, PAACT_bRefresh},
};
// assign page
DIRECT_MEMTYPE_CODE SPage g_SPagePortStatus = {
aSFixLabelPortStatus, 9,
aSVarLabelPortStatus, 1,
aSItemPortStatus, 4,
aSActionPortStatus, 2,
PAPORT_bLoadPortStatus
};
///////////////////////////////////////////////////////////////////////////////////////
// load config
BOOL PAPORT_bLoadPortCfg(void) DIRECT_FUNTYPE_REENT
{
PIPORT_vInitPage(g_pSPortPageCfg);
#ifndef __ASIC_VT6524
g_byTotalLineNum = g_byMegaLogIdNum;
#else
g_byTotalLineNum = g_byLogIdNum;
#endif
return DONT_RELOAD_PAGE;
}
// save config
BOOL PAPORT_bSavePortCfg(void) DIRECT_FUNTYPE_REENT
{
BYTE byPortId;
PIMSG_vPutSavingMsg();
if (OP_OK != PIPORT_bySavePage(g_pSPortPageCfg, &byPortId))
PIMSG_vPutExtMsgThenPause(PORT_OP_WRONG_AUTO_ABY, byPortId, PUT_MSG_WITH_PORT_NAME);
else
{
PIMSG_vPutMsgThenPause(OP_OK);
g_bDataDirty = 0;
}
return DONT_RELOAD_PAGE;
}
BOOL PAPORT_bLoadPortStatus(void) DIRECT_FUNTYPE_REENT
{
PIPORT_vGetPortStatus(g_pSPortStatusPage);
g_byTotalLineNum = UI_SWITCH_PORT_NUM;
return DONT_RELOAD_PAGE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -