beautypg.com

Echelon i.LON SmartServer 2.0 User Manual

Page 400

background image

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 "/#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)