%@ CODEPAGE=65001 %>
<%
'------------------------------------------------------------
'
' Microsoft Internet Printing Project
'
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Default SNMP page. This page is used if there is nothing
' supplied by the printer vendor.
'
'------------------------------------------------------------
option explicit
%>
<%
On Error Resume Next
Err.Clear
CheckSession
Response.expires = 0
Response.Buffer = TRUE
Dim bRefresh
bRefresh = Request ("refresh") = 1
%>
<%
const L_Seperator_Text = " - "
Dim L_NotEmpty_Text, L_Empty_Text, L_Name_Text, L_PaperSize_Text, L_Media_Text
Dim L_Current_Text, L_Maximum_Text, L_Tray_Text, L_Printer_Text, L_Output_Text
L_NotEmpty_Text = OleCvt.ASPString(IDS_ASP_TRAY_NOTEMPTY) 'The input tray is not empty
L_Empty_Text = OleCvt.ASPString(IDS_ASP_TRAY_EMPTY) 'The input tray is empty
L_Name_Text = OleCvt.ASPString(IDS_ASP_NAME) 'The name of the input tray
L_PaperSize_Text = OleCvt.ASPString(IDS_ASP_PAPER_SIZE)
L_Media_Text = OleCvt.ASPString(IDS_ASP_MEDIA)
L_Current_Text = OleCvt.ASPString(IDS_ASP_CURRENT) 'The Current number of the paper in the input tray
L_Maximum_Text = OleCvt.ASPString(IDS_ASP_MAX) 'The Maximum number of the paper in the input tray
L_Tray_Text = OleCvt.ASPString(IDS_ASP_TRAY)
L_Printer_Text = OleCvt.ASPString(IDS_ASP_PRINTER)
L_Output_Text = OleCvt.ASPString(IDS_ASP_OUTPUT)
Function ErrorHandler (strErr)
Dim strHref
strHref = "ipp_0013.asp?notes=" & strErr
Response.Redirect (strHref)
Response.End
End Function
Function ErrorHandler2 (strErr)
Dim strScript
strScript = ""
Response.Write (strScript)
Response.End
End Function
Function strSNMPStatus(rgState)
Dim strHTML
Dim str1, str2, strSubject
Dim bDisplay
Dim L_DeviceStatus_Text
Dim L_UpRunning_Text, L_Warning_Text, L_Tested_Text, L_UnAvailable_Text
Dim L_IdleState_Text, L_Printing_Text, L_WarmingUp_Text
Const strIndent = " "
L_DeviceStatus_Text = "" & OleCvt.ASPString(IDS_ASP_STATUS_2) & " "
L_UpRunning_Text = "" & OleCvt.ASPString(IDS_ASP_UP_RUNNING) & ""
L_Warning_Text = "" & OleCvt.ASPString(IDS_ASP_FUNC_WARNING) & ""
L_Tested_Text = "" & OleCvt.ASPString(IDS_ASP_BEING_TESTED) & ""
L_UnAvailable_Text = "" & OleCvt.ASPString(IDS_ASP_UNAVAILABLE) & ""
L_IdleState_Text = "
" & OleCvt.ASPString(IDS_ASP_IDLE) & "
"
L_Printing_Text = OleCvt.ASPString(IDS_ASP_PRINTING_DOC)
L_WarmingUp_Text = OleCvt.ASPString(IDS_ASP_WARMING_UP)
strHTML = "| " & strIndent & " | " & DEF_FONT_TAG
Select Case rgState(1)
Case 4
str2 = L_Printing_Text
Case 5
str2 = L_WarmingUp_Text
Case Else
str2 = ""
End Select
If str2 <> "" Then
strHTML = strHTML & " - " & str2
End If
bDisplay = TRUE
Select Case rgState(0)
Case 2
str1 = L_UpRunning_Text
Case 3
str1 = L_Warning_Text
Case 4
str1 = L_Tested_Text
Case 5
str1 = L_UnAvailable_Text
Case Else
bDisplay = FALSE
End Select
If bDisplay Then
strHTML = strHTML & str1
End If
strHTML = strHTML & " |
"
If (rgState(0) = 3 Or rgState(0) = 5) Then
Dim lErrState, lMask, lNumMsg
Dim L_ErrMsg_Text(7)
Dim L_DetectedWarn_Text, L_DetectedErr_Text
L_DetectedWarn_Text = "" & OleCvt.ASPString(IDS_ASP_WARNINGS) & " "
L_DetectedErr_Text = "" & OleCvt.ASPString(IDS_ASP_ERRORS) & " "
L_ErrMsg_Text(0) = OleCvt.ASPString(IDS_ASP_SERV_REQ)
L_ErrMsg_Text(1) = OleCvt.ASPString(IDS_ASP_OFFLINE)
L_ErrMsg_Text(2) = OleCvt.ASPString(IDS_ASP_PAPER_JAM)
L_ErrMsg_Text(3) = OleCvt.ASPString(IDS_ASP_DOOR_OPEN)
L_ErrMsg_Text(4) = OleCvt.ASPString(IDS_ASP_NO_TONER)
L_ErrMsg_Text(5) = OleCvt.ASPString(IDS_ASP_TOMER_LOW)
L_ErrMsg_Text(6) = OleCvt.ASPString(IDS_ASP_OUT_PAPER)
L_ErrMsg_Text(7) = OleCvt.ASPString(IDS_ASP_LOW_PAPER)
lErrState = CInt (rgState(2))
str1 = ""
lMask = 1
lNumMsg = 0
For i = 0 To 7
If lErrState And lMask Then
str1 = strAppendStr (str1, L_ErrMsg_Text(i))
lNumMsg = lNumMsg + 1
End If
lMask = lMask * 2
Next
If lNumMsg > 0 Then
strHTML = strHTML & "| " & strIndent & " | " & DEF_FONT_TAG
If rgState(0) = 3 Then
strHTML = strHTML & L_DetectedWarn_Text
Else
strHTML = strHTML & L_DetectedErr_Text
End If
strHTML = strHTML & str1 & " |
"
End If
End If
strHTML = strHTML & "
"
strSNMPStatus = strHTML
End Function
Function GenConsoleTable(iRow, iColumn, strArray, strLang)
Dim strHTML
Dim strBgnCol, strEndCol
Dim strBgnRow, strEndRow
Dim i, j, srcIndex, c
Dim tmpArray
ReDim tmpArray (iColumn)
strHTML = ""
strBgnCol = ""
strEndCol = "
"
If strLang = "JP" then
strBgnRow = ""
Else
strBgnRow = "| " & DEF_FONT_TAG
End If
strEndRow = END_FONT & " | "
For i = 1 To iRow
srcIndex = 1
j = 1
While j <= iColumn
c = Mid (strArray(i - 1), srcIndex, 1)
If c = "" Then
tmpArray(j) = " "
Else
if Asc(c) <= 32 Then
tmpArray(j) = " "
Else
If strLang = "JP" Then
tmpArray(j) = OleCvt.ToUnicode (c, 932)
Else
tmpArray(j) = c
End If
End If
End If
j = j + 1
srcIndex = srcIndex + 1
Wend
strHTML = strHTML & strBgnCol
For j = 1 To iColumn
strHTML = strHTML & strBgnRow & tmpArray(j) & strEndRow
Next
strHTML = strHTML & strEndCol
Next
GenConsoleTable = strHTML
End Function
Function GenOneLight (rgLights, i, strId)
Dim strHTML
strHTML = " "
If rgLights(SNMP_LIGHT_ON, i) <> "0" And strId <> "IBM Network Printer 24 2.34F" Then
If rgLights(SNMP_LIGHT_OFF, i) <> "0" Then
strHTML = strHTML & " "
Else
strHTML = strHTML & " "
End If
Else
strHTML = strHTML & " "
End If
strHTML = strHTML & " | " & DEF_FONT_TAG
strHTML = strHTML & strCleanString(rgLights(SNMP_LIGHT_DESCRIPTION, i)) & " " & END_FONT & " | "
GenOneLight = strHTML
End Function
Function GenLightTable(iLights, rgLights, strId)
Dim i
Dim strHTML
Dim strBgnHdrCol, strEndHdrCol, strOneHeader
Const L_State_Text = "State"
Const L_Light_Text = "Light /"
strBgnHdrCol = "" & MENU_FONT_TAG & ""
strEndHdrCol = "" & END_FONT & " | "
strOneHeader = "" & MENU_FONT_TAG & "" & L_Light_Text & strEndHdrCol & " | " & strBgnHdrCol & L_State_Text & strEndHdrCol
strHTML = "" & strOneHeader & strOneHeader & strOneHeader & " "
If iLights <= 25 then
For i = 0 To iLights
If i Mod 3 = 0 Then
If i <> 0 Then strHTML = strHTML & ""
strHTML = strHTML & "" & GenOneLight (rgLights, i, strId)
Else
strHTML = strHTML & GenOneLight (rgLights, i, strId)
End If
Next
strHTML = strHTML & " "
Else
For i = 0 To iLights Step 2
strHTML = strHTML & "" & GenOneLight (rgLights, i, strId)
If i + 1 < iLights Then
strHTML = strHTML & GenOneLight (rgLights, i + 1, strId)
Else
strHTML = strHTML & " | | "
End If
strHTML = strHTML & " "
Next
End If
GenLightTable = strHTML
End Function
Function GetCurrentNumberOfPaper (iCurrent)
Dim strCount
Select Case iCurrent
Case -1, -2
strCount = " "
Case 0
strCount = L_Empty_Text
Case -3
strCount = L_NotEmpty_Text
Case Else
strCount = cstr(iCurrent)
End Select
GetCurrentNumberOfPaper = strCount
End Function
Function GenTrayTable (bPaperSize, bPaperMedia, iTrays, rgTrays)
Dim strHTML
Dim strBgnHdrCol, strEndHdrCol
Dim strBgnCol, strEndCol
Dim strBgnRow, strEndRow
Dim i, j, srcIndex, c
Dim tmpArray
strBgnHdrCol = "" & MENU_FONT_TAG & ""
strEndHdrCol = "" & END_FONT & " | "
strHTML = ""
strHTML = strHTML & strBgnHdrCol & L_Name_Text & strEndHdrCol
If bPaperSize Then
strHTML = strHTML & strBgnHdrCol & L_PaperSize_Text & strEndHdrCol
End If
If bPaperMedia Then
strHTML = strHTML & strBgnHdrCol & L_Media_Text & strEndHdrCol
End If
strHTML = strHTML & strBgnHdrCol & L_Current_Text & strEndHdrCol
strHTML = strHTML & strBgnHdrCol & L_Maximum_Text & strEndHdrCol
'strHTML = strHTML & strBgnHdrCol & L_State_Text & strEndHdrCol
strHTML = strHTML & " "
Dim strTrayName
For i = 0 to iTrays
strBgnCol = "" & DEF_FONT_TAG
strEndCol = END_FONT & " | "
strHTML = strHTML & "" & strBgnCol
if rgTrays(SNMP_INTRAY_UNIT, i) = "" or rgTrays(SNMP_INTRAY_UNIT, i) = " " then
If rgTrays(SNMP_INTRAY_NAME, i) = "" Then
strTrayName = L_Tray_Text & Cstr (i + 1)
Else
strTrayName = rgTrays(SNMP_INTRAY_NAME, i)
End If
Else
strTrayName = rgTrays(SNMP_INTRAY_UNIT, i)
End If
strHTML = strHTML & strCleanString(strTrayName) & strEndCol
rgTrays(SNMP_INTRAY_UNIT, i) = strTrayName
If bPaperSize Then
strHTML = strHTML & strBgnCol
dim strLongName
strLongName = objHelper.LongPaperName (rgTrays(SNMP_INTRAY_MEDIA, i))
If strLongName = "Unknown" Then
strLongName = rgTrays(SNMP_INTRAY_MEDIA, i)
End If
strHTML = strHTML & strLongName & strEndCol
End If
If bPaperMedia Then
strHTML = strHTML & strBgnCol & getMedia (rgTrays(SNMP_INTRAY_MEDIA, i)) & strEndCol
End If
strHTML = strHTML & strBgnCol & GetCurrentNumberOfPaper( rgTrays(SNMP_INTRAY_CURRENT, i)) & strEndCol
strHTML = strHTML & strBgnCol & rgTrays(SNMP_INTRAY_MAX, i) & strEndCol
strHTML = strHTML & " "
Next
GenTrayTable = strHTML
End Function
Function GenAlertTable (iAlerts, rgAlerts, rgTrays)
Dim strHTML
Dim i, j, bDup, code, strDscp
strHTML = ""
For i = 0 to iAlerts
code = rgAlerts(SNMP_ALERT_CODE, i)
j = 0
bDup = FALSE
While j <= i - 1 And Not bDup
If code = rgAlerts(SNMP_ALERT_CODE, j) Then
If rgAlerts(SNMP_ALERT_SUBUNIT, i) = rgAlerts(SNMP_ALERT_SUBUNIT, j) And rgAlerts(SNMP_ALERT_INDEX, i) = rgAlerts(SNMP_ALERT_INDEX, j) Then
bDup = TRUE
End If
End If
j = j + 1
Wend
If Not bDup Then
strHTML = strHTML & ""
Select Case rgAlerts(SNMP_ALERT_SEVERITY, i)
Case 3,5
strHTML = strHTML & " "
Case 4
strHTML = strHTML & " "
Case Else
strHTML = strHTML & " "
End Select
strHTML = strHTML & " | " & DEF_FONT_TAG
Select Case rgAlerts(SNMP_ALERT_SUBUNIT, i)
Case 8
If rgAlerts(SNMP_ALERT_INDEX, i) > 0 Then
strHTML = strHTML & strCleanString(rgTrays(SNMP_INTRAY_UNIT, rgAlerts(SNMP_ALERT_INDEX, i) - 1)) & L_Seperator_Text
Else
strHTML = strHTML & L_Tray_Text & L_Seperator_Text
End If
Case 5
strHTML = strHTML & L_Printer_Text & L_Seperator_Text
Case 9
strHTML = strHTML & L_Output_Text & L_Seperator_Text
Case Else
'
End Select
strHTML = strHTML & strCleanString(rgAlerts(SNMP_ALERT_DESCRIPTION, i)) & END_FONT & " | "
End If
Next
GenAlertTable = strHTML
End Function
Function getMedia(mediaName)
Dim media, i, mediaList
Dim L_MediaList_Text(3)
mediaList = Array(OleCvt.ASPString(IDS_ASP_WHITE), OleCvt.ASPString(IDS_ASP_ENVELOPE), OleCvt.ASPString(IDS_ASP_COLORED), OleCvt.ASPString(IDS_ASP_TRANSP))
L_MediaList_Text(0) = OleCvt.ASPString(IDS_ASP_WHITE_2)
L_MediaList_Text(1) = OleCvt.ASPString(IDS_ASP_ENVELOPE_2)
L_MediaList_Text(2) = OleCvt.ASPString(IDS_ASP_COLORED_2)
L_MediaList_Text(3) = OleCvt.ASPString(IDS_ASP_TRANSP_2)
i = 0
For Each media In mediaList
If InStr(mediaName, media) > 0 Then
getMedia = L_MediaList_Text(i)
Exit Function
End If
i = i + 1
Next
getMedia = ""
End Function
Const strFileID = "page1.asp"
Dim L_WrongIP_Message, L_PageTitle_Text
L_WrongIP_Message = OleCvt.ASPString(IDS_ASP_WRONG_IP)
L_PageTitle_Text = OleCvt.ASPString(IDS_ASP_MS_SNMP)
Dim rgState, rgAlerts, rgLights, rgTrays, rgConsole, strLight
Dim bRet, objHelper
Dim iRow, iColumn, iAlerts, iTrays, iLights
Dim bPaperSize, bPaperMedia, i
Dim strLang
Dim strId
Dim objSNMP
Dim strIP, strCommunity, iDevice, strDevice
Dim strPrinter, strEncodedPrinter, strComputer, strNewURL
Dim strHTML
Err.Clear
strIP = Request(IPADDRESS)
If strIP = "" Then
Err.Number = 1
Err.Description = L_WrongIP_Message
ErrorHandler (strFileID)
End If
strCommunity = Request (COMMUNITY)
iDevice = Request(DEVICE)
strDevice = CStr(iDevice)
strEncodedPrinter = Request(PRINTER)
if Len(strEncodedPrinter) > MAX_ENCODED_PRINTER_NAME_LENGTH Then Call ErrorHandler(L_InvalidParameter_Text)
strPrinter = OleCvt.DecodeUnicodeName ( strEncodedPrinter )
Set objSNMP = Server.CreateObject(PROGID_SNMP)
If Err Then ErrorHandler (strFileID)
objSNMP.open strIP, strCommunity, 3, 2000
If Err Then ErrorHandler (strFileID)
strComputer = session(COMPUTER)
strNewURL = "page1.asp?refresh=1" & ATIPADDRESS & strIP & ATCOMMUNITY & strCommunity &_
ATPRINTER & strEncodedPrinter & ATDEVICE & strDevice
Set objHelper = Server.CreateObject (PROGID_HELPER)
objHelper.open "\\" & strComputer & "\" & strPrinter
If Err Then ErrorHandler (strFileID)
'Get Printer Id
strId = objSNMP.Get ("25.3.2.1.3." & CStr (iDevice))
If Err.Number <> 0 Then
ErrorHandler (strFileID)
End If
'Get basic state
rgState = rgSNMPGetState(objSNMP, iDevice)
If Err.Number <> 0 Or Not IsArray (rgState) Then ErrorHandler (strFileID)
If bRefresh Then
bRet = rgSNMPConsole(objSNMP, iDevice, iRow, iColumn, rgConsole, strLang)
If Not bRet Then ErrorHandler (strFileID)
rgLights = rgSNMPLights(objSNMP, iDevice, iLights)
If Err.Number <> 0 Then ErrorHandler (strFileID)
rgTrays = rgSNMPGetInputTrays(objSNMP, iDevice, iTrays)
If Err.Number <> 0 Then ErrorHandler (strFileID)
If iTrays >= 0 then
bPaperSize = not (rgTrays(SNMP_INTRAY_MEDIA, 0) = "" or rgTrays(SNMP_INTRAY_MEDIA, 0) = " " )
bPaperMedia = (getMedia (rgTrays(SNMP_INTRAY_MEDIA, 0)) <> "")
End if
'Get alerts
rgAlerts = rgSNMPGetAlerts(objSNMP, objHelper, iDevice, iAlerts)
End If
%>
>
<%=Write(L_PageTitle_Text) %>
<%=Write(DEF_BASEFONT_TAG)%>
<%
If Not bRefresh Then
Response.Flush
bRet = rgSNMPConsole(objSNMP, iDevice, iRow, iColumn, rgConsole, strLang)
If Not bRet Then ErrorHandler2 (strFileID)
End If
Dim L_FrontPanelColon_Text, L_DeviceStatus_Text
Dim L_DetailedErr_Text, L_RealTimeTitle_Text, L_ConsoleLights_Text
L_FrontPanelColon_Text = OleCvt.ASPString(IDS_ASP_FRONT_PAN)
L_DeviceStatus_Text = OleCvt.ASPString(IDS_ASP_DEVICE_STATUS_2)
L_RealTimeTitle_Text = OleCvt.ASPString(IDS_ASP_REALTIME)
L_ConsoleLights_Text = OleCvt.ASPString(IDS_ASP_CONSOLE_LIGHT)
L_DetailedErr_Text = OleCvt.ASPString(IDS_ASP_DETAILED_ERROR)
%>
|
<%=Write(DEF_FONT_TAG & L_DeviceStatus_Text & END_FONT)%>
|
<% If IsArray (rgConsole) Then
Response.Write(Write("" & DEF_FONT_TAG & L_FrontPanelColon_Text & END_FONT & " | ") )
End If
%>
|
<% =Write(strSnmpStatus(rgState)) %>
|
<% If IsArray (rgConsole) Then
strHTML = "" &_
"" &_
GenConsoleTable(iRow, iColumn, rgConsole, strLang) &_
" | " &_
"
| "
Response.Write( Write(strHTML) )
End If
%>
<% Const L_PaperTrays_Text = "Paper Trays:" %>
<%=Write(DEF_FONT_TAG & L_PaperTrays_Text & END_FONT)%>
<%
If Not bRefresh Then
Response.Flush
rgTrays = rgSNMPGetInputTrays(objSNMP, iDevice, iTrays)
If Err.Number <> 0 Then ErrorHandler2 (strFileID)
If iTrays >= 0 Then
bPaperSize = not (rgTrays(SNMP_INTRAY_MEDIA, 0) = "" or rgTrays(SNMP_INTRAY_MEDIA, 0) = " " )
bPaperMedia = (getMedia (rgTrays(SNMP_INTRAY_MEDIA, 0)) <> "")
End If
End If
%>
<%=Write(GenTrayTable (bPaperSize, bPaperMedia, iTrays, rgTrays))%>
<%
If Not bRefresh Then
Response.Flush
rgLights = rgSNMPLights(objSNMP, iDevice, iLights)
If Err.Number <> 0 Then ErrorHandler2 (strFileID)
End If
%>
<%If iLights >= 0 Then %>
<%=Write(DEF_FONT_TAG & L_ConsoleLights_Text & END_FONT)%>
<%=Write(GenLightTable (iLights, rgLights, strId))%>
<% End If%>
<%=Write(DEF_FONT_TAG & L_DetailedErr_Text & END_FONT)%>
<%
If Not bRefresh Then
Response.Flush
'Get alerts
rgAlerts = rgSNMPGetAlerts(objSNMP, objHelper, iDevice, iAlerts)
'If Err.Number <> 0 Then Exit Function
End If
%>
<%=Write(GenAlertTable (iAlerts, rgAlerts, rgTrays))%>
<%
objHelper.close
%>
<%
Response.End
%>
|