serial.vbs - vbscript script by ActiveXperts Software
serial.vbs queries a serial device.
Use serial.vbs directly from ActiveXperts Network Monitor; in the Manager's 'Monitor' menu, select 'New Check (Script)' and select serial.vbs. Configure the required parameter, or press 'Load a working sample'.
In ActiveXperts Network Monitor, Administrators can use three different scripting languages: Powershell, VBScript and SSH.
serial.vbs script code
' /////////////////////////////////////////////////////////////////////////////// ' // ActiveXperts Network Monitor - VBScript based checks ' // For more information about ActiveXperts Network Monitor and VBScript, visit ' // http://www.activexperts.com/support/network-monitor/online/vbscript/ ' /////////////////////////////////////////////////////////////////////////////// Option Explicit ' Declaration of global variables Dim SYSDATA, SYSEXPLANATION ' SYSDATA is displayed in the 'Data' column in the Manager; SYSEXPLANATION in the 'LastResponse' column ' Constants - return values Const retvalUnknown = 1 ' ActiveXperts Network Monitor functions should always return True (-1, Success), False (0, Error) or retvalUnknown (1, Uncertain) ' // To test a function outside Network Monitor (e.g. using CSCRIPT from the ' // command line), remove the comment character (') in the following lines: ' Dim bResult ' bResult = CheckSerialDevice( "COM1" ) ' WScript.Echo "Return value: [" & bResult & "]" ' WScript.Echo "SYSDATA: [" & SYSDATA & "]" ' WScript.Echo "SYSEXPLANATION: [" & SYSEXPLANATION & "]" Function CheckSerialDevice( strDevice ) ' Description: ' Queries a serial device. Depending on the results, the result is set to True, ' False or Unknown ' Parameters: ' 1) strDevice As String - COM port (like: COM1) or TAPI Device (like: Standard 9600 bps Modem) ' Usage: ' CheckSerialDevice( "<COMx | TAPIDevice>" ) ' Sample: ' CheckSerialDevice( "COM1" ) Dim objComport, strResponse, strResponseAll, iResponse Set objComport = CreateObject( "ActiveXperts.Comport" ) ' Set Device property objComport.Device = strDevice ' Optionally, override device defaults ' objComport.BaudRate = 57600 ' objComport.HardwareFlowControl = True ' objComport.SoftwareFlowControl = False ' Optionally, set Logging - for troubleshooting purposes ' objComport.LogFile = "C:\ActiveComport.log" ' Open the device objComport.Open If( objComport.LastError <> 0 ) Then CheckSerialDevice = False SYSEXPLANATION = "Open port failed, Error #" & objComport.LastError & ": " & objComport.GetErrorDescription( objComport.LastError ) Exit Function End If ' Write command: "ATZ" objComport.WriteString "ATZ" If( objComport.LastError <> 0 ) Then CheckSerialDevice = False SYSEXPLANATION = "Write port failed, Error #" & objComport.LastError & ": " & objComport.GetErrorDescription( objComport.LastError ) objComport.Close Exit Function End If ' Wait for the response (expected response: "OK") strResponseAll = "[" & objComport.ReadString & "]" If( objComport.LastError <> 0 ) Then CheckSerialDevice = False SYSEXPLANATION = "Read port failed, Error #" & objComport.LastError & ": " & objComport.GetErrorDescription( objComport.LastError ) objComport.Close Exit Function End If iResponse = 1 While( objComport.LastError = 0 And iResponse < 10 ) strResponse = "[" & objComport.ReadString & "]" If( objComport.LastError = 0 ) Then strResponseAll = strResponseAll & " " & strResponse End If iResponse = iResponse + 1 WEnd If( InStr( UCase( strResponseAll ), "OK" ) ) Then CheckSerialDevice = True SYSEXPLANATION = "Response matched, response=" & strResponseAll Else CheckSerialDevice = False SYSEXPLANATION = "Response not matched, response=" & strResponseAll End If ' Close the port objComport.Close Set objComport = Nothing End Function