System information

Table Of Contents
i.LON SmartServer 2.0 Programmer’s Reference
21-48
networkScan.UCPTscan(0) = domain
'send InvokeCmd
Dim itemColl As New iLON_SmartServer.Item_Coll()
itemColl.Item = New iLON_SmartServer.Item(0) {}
itemColl.Item(0) = networkScan
SmartServer._iLON.InvokeCmd(itemColl)
Console.WriteLine("starting scan")
'send the GetScan command to check network scan progress
Dim networkScan_Check As New iLON_SmartServer.LON_Network_ScanCommand_Invoke()
networkScan_Check.ScanCommand = iLON_SmartServer.LON_Network_eScanCommand.GetScan
networkScan_Check.UCPTname = "Net"
Dim itemColl_Check As New iLON_SmartServer.Item_Coll()
itemColl_Check.Item = New iLON_SmartServer.Item(0) {}
itemColl_Check.Item(0) = networkScan_Check
'Check scan status
Dim scanDone As Boolean = False
While Not scanDone
SmartServer._iLON.InvokeCmd(itemColl_Check)
Dim scanCheck_Response As New iLON_SmartServer.InvokeCmdResponse()
scanCheck_Response.iLonItem = itemColl_Check
Dim scanStatusCheck As iLON_SmartServer.LON_Network_ScanCommand_Invoke =
DirectCast(scanCheck_Response.iLonItem.Item(0),
iLON_SmartServer.LON_Network_ScanCommand_Invoke)
'if the scan is done set scanDone flag to true
If scanStatusCheck.Command(0).UCPTstatus.Value = "STATUS_DONE" Then
Console.WriteLine("Network Scan Status = " &
scanStatusCheck.Command(0).UCPTstatus.Value)
scanDone = True
'if the scan is not done, keep scanDone flag at false, wait 10 seconds, and check again
ElseIf scanStatusCheck.Command(0).UCPTstatus.Value = "STATUS_PENDING" Then
Console.WriteLine("Network Scan Status = " &
scanStatusCheck.Command(0).UCPTstatus.Value)
Thread.Sleep(10000)
End If
End
While
' A "<network>/#DeviceDiscovery" data logger is automatically created by the network scan
' read the Data Logger and process the data of the discovered data
Dim deviceDiscovered As New iLON_SmartServer.UFPTdataLogger_Data()
deviceDiscovered.UCPTname = "Net/#DeviceDiscovery"
Dim itemColl_DataLog As New iLON_SmartServer.Item_Coll()
itemColl_DataLog.xSelect = "//Item[@xsi:type=""UFPTdataLogger_Data""]"
itemColl_DataLog.Item = New iLON_SmartServer.Item(0) {}
itemColl_DataLog.Item(0) = deviceDiscovered
Dim dataLogger As iLON_SmartServer.Item_DataColl =
SmartServer._iLON.Read(itemColl_DataLog)
Console.WriteLine("Devices Discovered = " & (dataLogger.Item.Length - 1))
Console.WriteLine("======================================================")
Dim itemCfgColl As New iLON_SmartServer.Item_CfgColl()
'Create a new ItemCfgColl to store discovered devices
itemCfgColl.Item = New iLON_SmartServer.Item_Cfg(dataLogger.Item.Length - 2) {}
For i As Integer = 1 To dataLogger.Item.Length - 1
'we start at 1 to account for the metaData item in Data Logger
Dim dataLoggerData As iLON_SmartServer.UFPTdataLogger_Data =
DirectCast(dataLogger.Item(i), iLON_SmartServer.UFPTdataLogger_Data)
If dataLoggerData IsNot Nothing Then
Console.WriteLine(("Device #" & i & ": Neuron ID and Program ID = ") &
dataLoggerData.UCPTvalue(0).Value)