beautypg.com

Echelon i.LON SmartServer 2.0 User Manual

Page 434

background image

i.LON SmartServer 2.0 Programmer’s Reference

22-29

// A "/#DeviceDiscovery" data logger is automatically created by the network scan

// read the Data Logger and process the data of the discovered data

UFPTdataLoggerData

deviceDiscovered

=

new

UFPTdataLoggerData();

deviceDiscovered.setUCPTname("Net/#DeviceDiscovery");
ItemColl

itemColl_DataLog

=

new

ItemColl();

itemColl_DataLog.setXSelect("//Item[@xsi:type=\"UFPTdataLogger_Data\"]");

itemColl_DataLog.getItem().add(deviceDiscovered);

ItemDataColl

dataLogger

=

SmartServer.read(itemColl_DataLog);

System.out.println("Devices Discovered = " + (dataLogger.getItem().size()-1));

System.out.println("=======================================================");

ItemCfgColl

itemCfgColl

=

new

ItemCfgColl();

for (int i = 1; i < dataLogger.getItem().size(); i++)

{

UFPTdataLoggerData

dataLoggerData

=

(UFPTdataLoggerData)dataLogger.getItem().get(i);


if (dataLoggerData != null)

{
System.out.println("Device #" + i + ": Neuron ID and Program ID = " +

dataLoggerData.getUCPTvalue().get(0).getValue());

}
// -------------- CREATING DISCOVERED LONWORKS DEVICES--------------

//Create a new LON_Device_Cfg Item

LONDeviceCfg my_LON_Device = new LONDeviceCfg();
itemCfgColl.getItem().add(my_LON_Device);

//parse Neuron ID and Program ID from Data Logger
String NID_PID = dataLoggerData.getUCPTvalue().get(0).getValue();
String NID = NID_PID.substring(0, 12);
String PID = NID_PID.substring(13, 29);
System.out.println("Neuron ID = " + NID);
System.out.println("Program ID = " + PID);

//set Neuron ID, which is a byte[]
my_LON_Device.setUCPTuniqueId(hexStringToByteArray(NID));

//set Program ID, which is a byte[]
my_LON_Device.setUCPTprogramId(hexStringToByteArray(PID));

//set template

EXSelect xSelect = new EXSelect();

xSelect.setXSelect("//Item[@xsi:type=\"TemplateManager_Cfg\"]

[UCPTfileType=\"TEMPLATE_OR_XIF\"]

[UCPTprogramId=\""

+

PID

+

"\"]");


itemColl = SmartServer.list(xSelect);

TemplateManagerSurrogateCfg template =

(TemplateManagerSurrogateCfg)

itemColl.getItem().get(0);

String templateName = template.getUCPTname();

System.out.println("Device Template = " + templateName);

my_LON_Device.setUCPTurlTemplate(templateName);

//set the device name

//1. get the name of the channel ("Net/LON")

xSelect.setXSelect("//Item[@xsi:type=\"LON_Channel_Cfg\"]

[UCPThidden=0]");

itemColl = SmartServer.list(xSelect);

Item channel = itemColl.getItem().get(0);

//2. get the name of the xif

String[] templateName_justxif = templateName.split("/");

int templateNameLength = templateName_justxif.length;