System information
Table Of Contents
- Table of Contents
- 1 Introduction to the SmartServer SOAP/XML Interface
- 2 SOAP Messages and the SmartServer WSDL File
- 2.1 SmartServer Naming Structure
- 2.2 SmartServer WSDL File
- 2.3 Security
- 2.4 SOAP Request and Response Message Structure
- 2.5 SOAP Messages Formats
- 2.6 Data Point References
- 2.7 UCPTcurrentConfig
- 2.8 Fault Structure
- 2.9 LonString type
- 2.10 SOAP Message Examples
- 3 SmartServer Applications and the SOAP/XML Interface
- 3.1 Overview of SmartServer Applications
- 3.2 SmartServer XML Configuration Files
- 3.3 SmartServer Resource Files
- 3.3.1 Standard Network Variable Type (SNVT) Device Resource Files
- 3.3.2 Standard Configuration Property Type (SCPT) Device Resource Files
- 3.3.3 User Defined Network Variable Type (UNVT) Device Resource Files
- 3.3.4 User Defined Configuration Property Type (UCPT) Device Resource Files
- 3.3.5 Data Point Templates
- 3.3.6 Data Formatting
- 3.4 SOAP Functions
- 3.5 Performance Issues
- 4 Using the SmartServer Data Server
- 4.1 Creating and Modifying the Data Point XML Files
- 4.2 Overview of the Data Point XML File
- 4.3 Data Server SOAP Interface
- 4.3.1 Using the List Function on the Data Server
- 4.3.2 Using the Get Function on the Data Server
- 4.3.3 Using the Set Function on the Data Server
- 4.3.4 Using the Read Function on the Data Server
- 4.3.5 Using the Write Function on the Data Server
- 4.3.6 Using the Invoke Function to Reset Data Point Priorities
- 4.3.7 Data Point Values and Priority Levels
- 4.3.8 Using the Delete Function on the Data Server
- 4.4 Using the Web Binder Application
- 5 Data Loggers
- 5.1 Overview of the Data Logger XML File
- 5.2 Creating and Modifying the Data Logger XML File
- 5.3 Data Logger SOAP Interface
- 6 Alarm Generator
- 6.1 Overview of the Alarm Generator XML File
- 6.2 Creating and Modifying the Alarm Generator XML File
- 6.3 Alarm Generator SOAP Interface
- 7 Alarm Notifier
- 7.1 Overview of the AlarmNotifier XML File
- 7.2 Creating and Modifying the Alarm Notifier XML File
- 7.3 Alarm Notifier SOAP Interface
- 7.3.1 Using the List Function on an Alarm Notifier
- 7.3.2 Using the Get Function on an Alarm Notifier
- 7.3.3 Using the Set Function on an Alarm Notifier
- 7.3.4 Using the Read Function on an Alarm Notifier
- 7.3.5 Using the Write Function on an Alarm Notifier Log File
- 7.3.6 Using the Clear Function on an Alarm Notifier Log File
- 7.3.7 Using the Delete Function on an Alarm Notifier
- 8 Analog Function Block
- 9 Scheduler
- 9.1 Overview of the Scheduler XML File
- 9.2 Creating and Modifying the Scheduler XML File
- 9.3 Scheduler SOAP Interface
- 10 Calendar
- 10.1 Overview of the Calendar XML File
- 10.2 Creating and Modifying the Calendar XML File
- 10.3 Calendar SOAP Interface
- 11 Real Time Clock
- 12 Type Translator
- 12.1 Overview of the Type Translator XML File
- 12.2 Creating and Modifying the Type Translator XML File
- 12.3 Type Translator SOAP Interface
- 12.3.1 Using the List Function on a Type Translator
- 12.3.2 Using the Get Function on a Type Translator
- 12.3.3 Using the Set Function on a Type Translator
- 12.3.4 Pre Defined Type Translator Rules
- 12.3.4.1 16xSNVT_switch_TO_SNVT_state
- 12.3.4.2 SNVT_lev_disc_TO_SNVT_occupancy
- 12.3.4.3 SNVT_lev_disc_TO_SNVT_switch
- 12.3.4.4 SNVT_occupancy_TO_SNVT_setting
- 12.3.4.5 SNVT_scene_TO_SNVT_setting
- 12.3.4.6 SNVT_scene_TO_SNVT_switch
- 12.3.4.7 SNVT_setting_TO_SNVT_switch
- 12.3.4.8 SNVT_state_TO_16xSNVT_switch
- 12.3.4.9 SNVT_switch_TO_SNVT_lev_disc
- 13 Type Translator Rules
- 14 LonWorks Driver
- 14.1 LonWorks Networks
- 14.2 LonWorks Channels
- 14.3 LonWorks Devices
- 14.4 Routers
- 14.5 Remote Network Interface
- 14.6 LonWorks Functional Blocks
- 14.7 Network Variables (LonWorks Data Points)
- 14.8 Configuration Properties (LonWorks Data Points)
- 14.9 LonWorks Connections
- 15 Modbus Driver
- 16 M Bus Driver
- 17 Virtual Driver
- 18 File System Data
- 19 System Information Methods
- 20 Using the SOAP Interface as a Web Service
- 21 Programming Examples
- 21.1 Visual C#.NET Examples
- 21.1.1 Reading and Writing Data Point Values in Visual C# .NET
- 21.1.2 Creating and Reading a Data Logger in Visual C# .NET
- 21.1.3 Creating a Scheduler and Calendar in Visual C# .NET
- 21.1.4 Creating and Installing a LonWorks Device in Visual C# .NET
- 21.1.5 Commissioning External Devices in Visual C# .NET
- 21.1.6 Discovering and Installing External Devices in Visual C# .NET
- 21.1.7 Configuring the SmartServer in Visual C# .NET
- 21.2 Visual Basic.NET Examples
- 21.2.1 Reading and Writing Data Point Values in Visual Basic.NET
- 21.2.2 Creating and Reading a Data Logger in Visual Basic. NET
- 21.2.3 Creating a Scheduler and Calendar in Visual Basic.NET
- 21.2.4 Creating and Installing a LonWorks Device in Visual Basic.NET
- 21.2.5 Commissioning External Devices in Visual Basic.NET
- 21.2.6 Discovering and Installing External Devices in Visual Basic.NET
- 21.2.7 Configuring the SmartServer in Visual Basic.NET
- 21.1 Visual C#.NET Examples
- 22 Programming the SmartServer with Java
- Appendix A: SOAP Tester Example
i.LON SmartServer 2.0 Programmer’s Reference
21-23
//Check scan status
bool scanDone = false;
while (!scanDone)
{
SmartServer.InvokeCmd(ref itemColl_Check);
iLON_SmartServer.InvokeCmdResponse scanCheck_Response =
new iLON_SmartServer.InvokeCmdResponse();
scanCheck_Response.iLonItem = itemColl_Check;
iLON_SmartServer.LON_Network_ScanCommand_Invoke scanStatusCheck =
(iLON_SmartServer.LON_Network_ScanCommand_Invoke)scanCheck_Response.iLonItem.Item[0];
//if the scan is done set scanDone flag to true
if (scanStatusCheck.Command[0].UCPTstatus.Value == "STATUS_DONE")
{
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
else if (scanStatusCheck.Command[0].UCPTstatus.Value == "STATUS_PENDING")
{
Console.WriteLine("Network Scan Status = " +
scanStatusCheck.Command[0].UCPTstatus.Value);
Thread.Sleep(10000);
}
}
// A "<network>/#DeviceDiscovery" data logger is automatically created by the network scan
// read the Data Logger and process the data of the discovered data
iLON_SmartServer.UFPTdataLogger_Data deviceDiscovered =
new iLON_SmartServer.UFPTdataLogger_Data();
deviceDiscovered.UCPTname = "Net/#DeviceDiscovery";
iLON_SmartServer.Item_Coll itemColl_DataLog = new iLON_SmartServer.Item_Coll();
itemColl_DataLog.xSelect = "//Item[@xsi:type=\"UFPTdataLogger_Data\"]";
itemColl_DataLog.Item = new iLON_SmartServer.Item[1];
itemColl_DataLog.Item[0] = deviceDiscovered;
iLON_SmartServer.Item_DataColl dataLogger = SmartServer.Read(itemColl_DataLog);
Console.WriteLine(
"Devices Discovered = " + (dataLogger.Item.Length - 1));
Console.WriteLine("==========================================================");
iLON_SmartServer.Item_CfgColl itemCfgColl = new iLON_SmartServer.Item_CfgColl();
//Create a new ItemCfgColl to store discovered devices
itemCfgColl.Item = new iLON_SmartServer.Item_Cfg[dataLogger.Item.Length - 1];
for (int i = 1; i < dataLogger.Item.Length; i++)
//we start at 1 to account for the metaData item in Data Logger
{
iLON_SmartServer.UFPTdataLogger_Data dataLoggerData =
(iLON_SmartServer.UFPTdataLogger_Data)dataLogger.Item[i];
if (dataLoggerData != null)
{
Console.WriteLine("Device #" + i + ": Neuron ID and Program ID = " +
dataLoggerData.UCPTvalue[0].Value);
}
// -------------- CREATING DISCOVERED LONWORKS DEVICES--------------
//Create a new LON_Device_Cfg Item and add it to ItemCfgColl
iLON_SmartServer.LON_Device_Cfg my_LON_Device =
new iLON_SmartServer.LON_Device_Cfg();
itemCfgColl.Item[i - 1] = my_LON_Device;
//subtract 1 for the metaData item in Data Logger
//parse Neuron ID and Program ID from Data Logger
String NID_PID = dataLoggerData.UCPTvalue[0].Value;
String NID = NID_PID.Substring(0, 12);