Echelon i.LON SmartServer 2.0 User Manual
Page 434
i.LON SmartServer 2.0 Programmer’s Reference
22-29
// A "
// 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;