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

📄 cgi_show.c

📁 vt6528芯片交换机API函数和文档运行程序
💻 C
📖 第 1 页 / 共 5 页
字号:

UINT16 CGI_wShowPortCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8   byPortId, byGigaPortId, si;


    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strPortCfg);
    psz += s_byAddFormTable(psz, "SetPortCfg", 1);
    psz += STR_iStrcat(psz, "<TR><TH>Port<TH>Enable<TH>Auto<TH>Spd/Dpx<TH>Flow<BR>Control</TR>");

    // Get port status
    PIPORT_vInitPage(WEBg_pSPortPage);

    for (byPortId = 0; byPortId < g_byModTrkLogIdNum; byPortId++) {
        // if mega or giga port
        byGigaPortId = (PIPORTMP_dwLogIdToPhyMsk(g_abyModTrkLogIdList[byPortId]) & 0x3000000) >> 24;
        // for giga port
        if (byGigaPortId) {
            byGigaPortId--;     // one-based to zero-based

            // Put begining of a table entry and port name
            psz += STR_iStrcat(psz, "<TR");
            psz += STR_iStrcat(psz, ((byPortId & 0x01) ? "" : s_szTrColor));
            psz += STR_iStrcat(psz, "><TD>");
            psz += STR_iStrcat(psz, g_aszModulePortName[WEBg_pSPortPage->abyGigaPortName[byGigaPortId]]);

            // Put port enable status
            psz += WEB_wAddSelectTag(psz, 'A', byPortId, g_aszEnDisCfg, 
                        2, WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f2Enable,
                        TRUE, 0);
            // Put auto
            psz += WEB_wAddSelectTag(psz, 'B', byPortId, g_aszOnOffCfg,
                        (WEBg_pSPortPage->aSStrTblMap[byGigaPortId][1].byListNum == 0) ? 1 : 2,
                        WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f2Auto, 
                        TRUE, 0);

            // Put speed & duplex status
            // deal with port ability string mapping array
            for (si=0; si<WEBg_pSPortPage->aSStrTblMap[byGigaPortId][2].byListNum; si++)
                s_apszStrTbl[si] = g_aszSpdDpxCfg[ WEBg_pSPortPage->aSStrTblMap[byGigaPortId][2].abyListIndex[si] ];
            psz += WEB_wAddSelectTag(psz, 'C', byPortId,
                                         s_apszStrTbl, si,
                                         WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f4SpdDpx, TRUE, 0);

            psz += WEB_wAddSelectTag(psz, 'D', byPortId, g_aszOnOffCfg, 2, WEBg_pSPortPage->aSGigaPortCfg[byGigaPortId].f2FC, TRUE, 0);
        }
        // for mega port
        else {
            // Put begining of a table entry and port name
            psz += STR_iStrcat(psz, "<TR");
            psz += STR_iStrcat(psz, ((byPortId & 0x01) ? "" : s_szTrColor));
            psz += STR_iStrcat(psz, "><TD>");
            psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyModTrkLogIdList[byPortId]]);

            psz += STR_iStrcat(psz, "<TD><SELECT name=A");
            psz += STR_iU32ToStrDec(psz, byPortId);
            psz += STR_iStrcat(psz, "></SELECT><TD><SELECT name=B");
            psz += STR_iU32ToStrDec(psz, byPortId);
            psz += STR_iStrcat(psz, "></SELECT><TD><SELECT name=C");
            psz += STR_iU32ToStrDec(psz, byPortId);
            psz += STR_iStrcat(psz, "></SELECT><TD><SELECT name=D");
            psz += STR_iU32ToStrDec(psz, byPortId);
            psz += STR_iStrcat(psz, "></SELECT>");
        }
    } // end for
    psz += s_byAddFormTableEnd(psz);

    psz += STR_iStrcat(psz, "<SCRIPT language=javascript>\np=");
    psz += STR_iU32ToStrDec(psz, g_byModTrkMegaLogIdNum);
    psz += STR_iStrcat(psz, "\nv=new Array(");
    for (byPortId = 0; byPortId < g_byModTrkMegaLogIdNum; byPortId++) {
        psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f1Enable);
        psz += STR_iStrcat(psz, ",");
        psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f1Auto);
        psz += STR_iStrcat(psz, ",");
        psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f3SpdDpx);
        psz += STR_iStrcat(psz, ",");
        psz += STR_iU32ToStrDec(psz, (UINT8)WEBg_pSPortPage->aSMegaPortCfg[byPortId].f1FC);
        psz += STR_iStrcat(psz, ",");
    }
    *--psz = '\0';
    psz += STR_iStrcat(psz, ")\n");
    psz += STR_iStrcat(psz, s_szPortCfgJS);

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowRateCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8    byPortId;

    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strRateCfg);
    psz += s_byAddFormTable(psz, "SetRateCfg", 1);
    psz += STR_iStrcat(psz, "<TR><TH>Port<TH>InRate<TH>OutRate</TR>");

    PIRATE_vInitPage(WEBg_pSRatePage);

    for (byPortId=0; byPortId<g_byLogIdNum; byPortId++)
    {
        // Put begining of a table entry and port name
        psz += STR_iStrcat(psz, "<TR");
        psz += STR_iStrcat(psz, ((byPortId & 0x01) ? "" : s_szTrColor));
        psz += STR_iStrcat(psz, "><TD>");
        psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[byPortId]]);
        
        psz += STR_iStrcat(psz, "<TD><INPUT type=text maxlength=4 name=A");
        psz += STR_iU32ToStrDec(psz, byPortId);
        psz += STR_iStrcat(psz, " value=");
        psz += STR_iU32ToStrDec(psz, WEBg_pSRatePage->au16Rate[byPortId*2]);
        psz += STR_iStrcat(psz, ">");
        psz += STR_iStrcat(psz, "<TD><INPUT type=text maxlength=4 name=B");
        psz += STR_iU32ToStrDec(psz, byPortId);
        psz += STR_iStrcat(psz, " value=");
        psz += STR_iU32ToStrDec(psz, WEBg_pSRatePage->au16Rate[byPortId*2+1]);
        psz += STR_iStrcat(psz, ">");
    }

    psz += s_byAddFormTableEnd(psz);
    psz += STR_iStrcat(psz, "<P>* Rate Unit: 1Mbps, 0: disabled");

    return (psz - HTTPg_acOutBuf);
}


char s_szTrkJS[] = "\
<SCRIPT language=javascript>\n\
for (i=0;i<document.f.elements.length-1;i++)\n\
document.f.elements[i].value=i%14</SCRIPT>";

UINT16 CGI_wShowTrkCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8   byPortId, byGrpId, byTrkCfg;


    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strTrunkCfg);
    psz += s_byAddFormTable(psz, "SetTrkCfg", 1);
    psz += STR_iStrcat(psz, "<TR><TH>Port / Group<TH>Normal<TH>Group<BR>1<TH>Group<BR>2<TH>Group<BR>3<TH>Group<BR>4<TH>Group<BR>5<TH>Group<BR>6<TH>Group<BR>7<TH>Group<BR>8<TH>Group<BR>9<TH>Group<BR>10<TH>Group<BR>11<TH>Group<BR>12<TH>Group<BR>13</TR>");

    PITRK_vInitPage(WEBg_pSTrkPage);

    for (byPortId=0; byPortId<SWITCH_TRUNKABLE_PORT_NUM; byPortId++)
    {
        // Put begining of a table entry and port name
        psz += STR_iStrcat(psz, "<TR");
        psz += STR_iStrcat(psz, ((byPortId & 0x01) ? "" : s_szTrColor));
        psz += STR_iStrcat(psz, "><TD>");
        psz += STR_iStrcat(psz, g_aszPortNameTable[byPortId]);

        // get group id of byPortId
        SWSRAM_vExtractBitsByByte(WEBg_pSTrkPage->abyCfgBuf, byPortId*TRUNK_GRP_ID_BIT_NUM, (byPortId+1)*TRUNK_GRP_ID_BIT_NUM-1, &byTrkCfg);
        if (((*(PUINT16)WEBg_pSTrkPage) & (0x01<<(byTrkCfg-1))) == 0)     // beware of endian
            byTrkCfg = 0;

        // add radio tags
        for (byGrpId=0; byGrpId<=SWITCH_TRUNK_GRP_NUM; byGrpId++) {
            psz += STR_iStrcat(psz, "<TD><INPUT type=radio name=R");
            psz += STR_iU32ToStrDec(psz, byPortId);
            psz += STR_iStrcat(psz, ((byGrpId == byTrkCfg) ? " checked" : "")); 
            psz += STR_iStrcat(psz, ">"); 
        }
    }

    psz += s_byAddFormTableEnd(psz);

    psz += STR_iStrcat(psz, s_szTrkJS);

    return (psz - HTTPg_acOutBuf);
}


// Beware: the name of selecte tag should be "A0".
char s_szHideJS[] = "\
</DIV>\
<SCRIPT>\
hide()\n\
function hide()\n\
{\n\
obj=document.getElementById(\"sub\")\n\
if (f.A0.selectedIndex)\n\
obj.style.display=\"BLOCK\"\n\
else\n\
obj.style.display=\"NONE\"\n\
}\n\
</SCRIPT>";
char s_szHideFunc[] = " onChange=hide()";
char s_szHideDiv[] = "<DIV id=sub>";

UINT16 CGI_wShowSnfCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8    si;



    PISNF_vInitPage(WEBg_pSSniffPage);

    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strSniffCfg);
    psz += s_byAddFormTable(psz, "SetSnfCfg", 0);

    psz += STR_iStrcat(psz, "<P>Port Monitoring Mode :");
    psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszSniffModeCfg, 4, WEBg_pSSniffPage->f2Mode, FALSE, s_szHideFunc);

    psz += STR_iStrcat(psz, s_szHideDiv);

    psz += STR_iStrcat(psz, "<P>Monitoring Port :");
    for (si=0; si<WEBg_pSSniffPage->SStrTblMap.byListNum; si++)
        s_apszStrTbl[si] = g_aszPortNameTable[WEBg_pSSniffPage->abyDestPortList[si]];
    psz += WEB_wAddSelectTag(psz, 'B', 0, s_apszStrTbl, WEBg_pSSniffPage->SStrTblMap.byListNum, WEBg_pSSniffPage->f6DestPort, FALSE, 0);

    psz += STR_iStrcat(psz, "<P>Monitored Port :<table><tr><td>");
    for (si=0; si<g_byLogIdNum; si++)
    {
        psz += WEB_wAddCheckboxTag(psz, si, si, (WEBg_pSSniffPage->abySrcPortMsk[si/8] & (0x01<<(si%8))));  // Beware of endian
        // Put port name
        psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[si]]);
        psz += STR_iStrcat(psz, ((si + 1) % 3) ? "" : "<tr>");
        psz += STR_iStrcat(psz, "<td>");
    }
    psz += STR_iStrcat(psz, "</table>");
    psz += STR_iStrcat(psz, s_szHideJS);

    psz += s_byAddFormTableEnd(psz);

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowQosCfg(void)
{
    char*   psz = HTTPg_acOutBuf;
    UINT8 si;



    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strQosCfg);
    psz += s_byAddFormTable(psz, "SetQosCfg", 0);

    PIQOS_vInitPage(WEBg_pSQosPage);

    // qos mode
    psz += STR_iStrcat(psz, "<P>QoS Mode :");
    psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszQosMode, 5, WEBg_pSQosPage->byQosMode, FALSE, s_szHideFunc);

    psz += STR_iStrcat(psz, s_szHideDiv);

    // port priority
    psz += STR_iStrcat(psz, "<P><HR><P>Static Port Ingress Priority :<table>");
    for (si=0; si<g_byLogIdNum; si++)
    {
        // Put port name
        psz += STR_iStrcat(psz, (si % 3) ? "" : "<tr>");
        psz += STR_iStrcat(psz, "<td>");
        psz += STR_iStrcat(psz, g_aszPortNameTable[g_abyLogIdList[si]]);
        psz += WEB_wAddSelectTag(psz, 'B', si, g_aszStaticPortPriorCfg, 9, WEBg_pSQosPage->abyStaticPrior[si], TRUE, 0);
    }
    psz += STR_iStrcat(psz, "</table>");

    // 802.1p
    psz += STR_iStrcat(psz, "<P><HR><P>802.1p Priority [7-0]:<BR>");
    

    for (si=0; si<8; si++)
        psz += WEB_wAddSelectTag(psz, 'C', si, g_aszLoHiCfg, 4, (UINT16)(WEBg_pSQosPage->w8021pMap<<(si*BIT_NUM_QUEUE_ID))>> (7*2), FALSE, 0);

    psz += STR_iStrcat(psz, s_szHideJS);

    psz += s_byAddFormTableEnd(psz);

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowMiscCfg(void)
{
    char*   psz = HTTPg_acOutBuf;


    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strAdvCfg);
    psz += s_byAddFormTable(psz, "SetMiscCfg", 1);

    PIMISC_vInitPage(WEBg_pSMiscPage);

    psz += STR_iStrcat(psz, "<TR><TD>Broadcast Storm Filter");
    psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszBSFMode, 5, WEBg_pSMiscPage->f3BSFMode, TRUE, 0);

    psz += STR_iStrcat(psz, "<TR><TD>Collision Retry Forever");
    psz += WEB_wAddSelectTag(psz, 'A', 1, g_aszEnDisCfg, 2, WEBg_pSMiscPage->f1CollisionForever, TRUE, 0);

    psz += STR_iStrcat(psz, "<TR><TD>MAC Table Auto-Aging");
    psz += WEB_wAddSelectTag(psz, 'A', 2, g_aszAutoAging, 4, WEBg_pSMiscPage->f2AutoAging, TRUE, 0);

    psz += STR_iStrcat(psz, "<TR><TD>MAC Table Hashing");
    psz += WEB_wAddSelectTag(psz, 'A', 3, g_aszMacHashMode, 2, WEBg_pSMiscPage->f1MacHashMode, TRUE, 0);

    psz += STR_iStrcat(psz, "<TR><TD>Console Auto Logout Time");
    psz += WEB_wAddSelectTag(psz, 'A', 4, g_aszAutoLogoutTime, 4, WEBg_pSMiscPage->f2AutoLogout, TRUE, 0);

    psz += STR_iStrcat(psz, "<TR><TD>Web Auto Logout Time");
    psz += WEB_wAddSelectTag(psz, 'A', 5, g_aszAutoLogoutTime+1, 3, WEBg_pSMiscPage->f2WebAutoLogout, TRUE, 0);

    psz += s_byAddFormTableEnd(psz);

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowAdmCfg(void)
{
    char*   psz = HTTPg_acOutBuf;


    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strPasswdSet);
    psz += s_byAddFormTable(psz, "SetAdmCfg", 0);

    psz += STR_iStrcat(psz, "<TR><TD>Password Protection:");
    psz += WEB_wAddSelectTag(psz, 'A', 0, g_aszEnDisCfg, 2, WEBg_bLoginEn, FALSE, s_szHideFunc);

    psz += STR_iStrcat(psz, "<TR><TD>");
    psz += STR_iStrcat(psz, s_szHideDiv);
    psz += STR_iStrcat(psz, "<TABLE>");

    psz += STR_iStrcat(psz, "<TR><TD>User Name<TD><INPUT type=text maxlength=");
    psz += STR_iU32ToStrDec(psz, USERNAME_STR_LEN);
    psz += STR_iStrcat(psz, " name=A>");
    psz += STR_iStrcat(psz, "<TR><TD>New Password<TD><INPUT type=password maxlength=");
    psz += STR_iU32ToStrDec(psz, USERNAME_STR_LEN);
    psz += STR_iStrcat(psz, " name=B>");
    psz += STR_iStrcat(psz, "<TR><TD>Password Again<TD><INPUT type=password maxlength=");
    psz += STR_iU32ToStrDec(psz, USERNAME_STR_LEN);
    psz += STR_iStrcat(psz, " name=C>");

    psz += STR_iStrcat(psz, "</TABLE>");
    psz += STR_iStrcat(psz, s_szHideJS);

    psz += s_byAddFormTableEnd(psz);

    return (psz - HTTPg_acOutBuf);
}


UINT16 CGI_wShowIpCfg(void)
{
    char*   psz = HTTPg_acOutBuf;


    psz += s_byGenHtmlHeader(HTTPg_acOutBuf, g_strIpConf);
    psz += s_byAddFormTable(psz, "SetIpCfg", 1);
    PIIPCONF_vInitPage(WEBg_pSIpConfPage);

⌨️ 快捷键说明

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