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

📄 pgport.c

📁 VIA VT6524 8口网管交换机源码
💻 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 + -