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

📄 pgport.c

📁 vt6528芯片交换机API函数和文档运行程序
💻 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"
#if !defined(__SWMODL_H__)
#include "swmodl.h"
#endif



// assign fix label
char strFlowCtrl[] = "Flow";
char strPortCfgTitle[] = "Port    Enable  Auto  Spd/Dpx  Ctrl";

#define ROW_NUM_IN_PORT_PAGE    14
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
SItemListbox aSIListboxPort[] = {
#if defined(__BIG_ENDIAN_OF_BIT)
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 7, 7, sizeof(SMegaPortCfg)*8, g_aszEnDisCfg, 2},
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 6, 6, sizeof(SMegaPortCfg)*8, g_aszOnOffCfg, 2},
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 3, 5, sizeof(SMegaPortCfg)*8, g_aszSpdDpxCfg,5},
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 2, 2, sizeof(SMegaPortCfg)*8, g_aszOnOffCfg, 2},
#else
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 0, 0, sizeof(SMegaPortCfg)*8, g_aszEnDisCfg, 2},
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 1, 1, sizeof(SMegaPortCfg)*8, g_aszOnOffCfg, 2},
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 2, 4, sizeof(SMegaPortCfg)*8, g_aszSpdDpxCfg,5},
    {(PUINT8)g_pSPortPageCfg->aSMegaPortCfg, 5, 5, sizeof(SMegaPortCfg)*8, g_aszOnOffCfg, 2},
#endif
};

SItemListbox aSILGigaPortName[] = {
    {g_pSPortPageCfg->abyGigaPortName,   0, 7, 0, g_aszModulePortName},
    {g_pSPortPageCfg->abyGigaPortName+1, 0, 7, 0, g_aszModulePortName},
};

SVarLabel aSVarLabelPortCfg[] = {
    {{ 7, 3}, &g_SIListboxLogModTrkPortName, "", 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
SItemVarListbox aSIVL_GigaPort[] = {
#if defined(__BIG_ENDIAN_OF_BIT)
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg,         6, 7, 0, g_aszEnDisCfg,  g_pSPortPageCfg->aSStrTblMap[0]},
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg,         4, 5, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[0]+1},
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg,         0, 3, 0, g_aszSpdDpxCfg, g_pSPortPageCfg->aSStrTblMap[0]+2},
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg + 1,     6, 7, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[0]+3},

    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1),     6, 7, 0, g_aszEnDisCfg,  g_pSPortPageCfg->aSStrTblMap[1]},
    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1),     4, 5, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[1]+1},
    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1),     0, 3, 0, g_aszSpdDpxCfg, g_pSPortPageCfg->aSStrTblMap[1]+2},
    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1) + 1, 6, 7, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[1]+3},
#else
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg,         0, 1, 0, g_aszEnDisCfg,  g_pSPortPageCfg->aSStrTblMap[0]},
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg,         2, 3, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[0]+1},
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg,         4, 7, 0, g_aszSpdDpxCfg, g_pSPortPageCfg->aSStrTblMap[0]+2},
    {(PUINT8)g_pSPortPageCfg->aSGigaPortCfg + 1,     0, 1, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[0]+3},

    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1),     0, 1, 0, g_aszEnDisCfg,  g_pSPortPageCfg->aSStrTblMap[1]},
    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1),     2, 3, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[1]+1},
    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1),     4, 7, 0, g_aszSpdDpxCfg, g_pSPortPageCfg->aSStrTblMap[1]+2},
    {(PUINT8)(g_pSPortPageCfg->aSGigaPortCfg+1) + 1, 0, 1, 0, g_aszOnOffCfg,  g_pSPortPageCfg->aSStrTblMap[1]+3},
#endif
};

// all items
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
SActItem aSActionPortCfg[] = {
    {{22, 12}, g_strActionQuit, PAACT_bQuit},
    {{22, 22}, g_strActionEdit, PAACT_bEdit},
    {{22, 32}, g_strActionSave, PAPORT_bSavePortCfg},
};


// assign page
SPage g_SPagePortCfg = {
    aSFixLabelPortCfg, 9,
    aSVarLabelPortCfg, 3,
    aSItemPortCfg, 12,
    aSActionPortCfg, 3,
    PAPORT_bLoadPortCfg
};


//// port status
// assign fix label
char strPSTitle1[] = "Spd     Flow";
char strPSTitle2[] = "Port    Enable  Link  Dpx     Ctrl";
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
SItemListbox aSIListboxPortStatus[] = {
#if defined(__BIG_ENDIAN_OF_BIT)
    {(PUINT8)g_pSPortStatusPage->aSPortStatus,     6, 7, sizeof(SPortStatus)*8, g_aszEnDisCfg, 2},
    {(PUINT8)g_pSPortStatusPage->aSPortStatus,     4, 5, sizeof(SPortStatus)*8, g_aszPortLinkDownUp, 3},
    {(PUINT8)g_pSPortStatusPage->aSPortStatus,     0, 3, sizeof(SPortStatus)*8, g_aszSpdDpxCfg, 14},
    {(PUINT8)g_pSPortStatusPage->aSPortStatus + 1, 6, 7, sizeof(SPortStatus)*8, g_aszOnOffCfg, 3},
#else
    {(PUINT8)g_pSPortStatusPage->aSPortStatus,     0, 1, sizeof(SPortStatus)*8, g_aszEnDisCfg, 2},
    {(PUINT8)g_pSPortStatusPage->aSPortStatus,     2, 3, sizeof(SPortStatus)*8, g_aszPortLinkDownUp, 3},
    {(PUINT8)g_pSPortStatusPage->aSPortStatus,     4, 7, sizeof(SPortStatus)*8, g_aszSpdDpxCfg, 14},
    {(PUINT8)g_pSPortStatusPage->aSPortStatus + 1, 0, 1, sizeof(SPortStatus)*8, g_aszOnOffCfg, 3},
#endif
};

// all items
SVarLabel aSVarLabelPortStatus[] = {
    {{8,3}, &g_SIListboxPanelPortName, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_MULTI, LINK_TYPE_NONE, ROW_NUM_IN_2_FIELD, 40}
};

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
SActItem aSActionPortStatus[] = {
    {{22, 12}, g_strActionQuit, PAACT_bQuit},
    {{22, 22}, g_strActionRefresh, PAACT_bRefresh},
};


// assign page
SPage g_SPagePortStatus = {
    aSFixLabelPortStatus, 9,
    aSVarLabelPortStatus, 1,
    aSItemPortStatus, 4,
    aSActionPortStatus, 2,
    PAPORT_bLoadPortStatus
};

///////////////////////////////////////////////////////////////////////////////////////

// load config
BOOL PAPORT_bLoadPortCfg(void)
{
    PIPORT_vInitPage(g_pSPortPageCfg);
    g_wTotalLineNum = g_byModTrkMegaLogIdNum;
    return DONT_RELOAD_PAGE;
}


// save config
BOOL PAPORT_bSavePortCfg(void)
{
    UINT8 u8ErrCode;
    
    UINT8 byPortId;
    PIMSG_vPutSavingMsg();
    u8ErrCode = PIPORT_bySavePage(g_pSPortPageCfg, &byPortId);
    if (u8ErrCode == PORT_OP_WRONG_AUTO_ABY)
        PIMSG_vPutExtMsgThenPause(PORT_OP_WRONG_AUTO_ABY, byPortId, PUT_MSG_WITH_PORT_NAME);
    else if (u8ErrCode == PORT_OP_MOD_TRK_DIFF_PORT_CFG)
        PIMSG_vPutMsgThenPause(PORT_OP_MOD_TRK_DIFF_PORT_CFG);
    else
    {
        PIMSG_vPutMsgThenPause(OP_OK);
        g_bDataDirty = 0;
    }

    return DONT_RELOAD_PAGE;
}


BOOL PAPORT_bLoadPortStatus(void)
{
    PIPORT_vGetPortStatus(g_pSPortStatusPage);
    g_wTotalLineNum = UI_SWITCH_PORT_NUM;
    return DONT_RELOAD_PAGE;
}

⌨️ 快捷键说明

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