Echelon i.LON SmartServer 2.0 User Manual
Page 400

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 "
' 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)