Echelon i.LON SmartServer 2.0 User Manual
Page 337

i.LON SmartServer 2.0 Programmer’s Reference
20-15
Note: The following examples assume that you are using a SmartServer that has been set to its factory
default settings. This prevents compilation errors based on mismatching
the objects in the L
ON
W
ORKS
network hierarchy (network/channel/device/functional block/data point).
20.3.1
Reading and Writing Data Point Values in Visual C# .NET 3.5
The following Visual C# .NET 3.5 example reads the value of the Net/LON/iLON App/Digital Output
1/nviClaValue_1 data point on the SmartServer, and then writes a value of “100.0 1” to it. This
SNVT_switch data point is one of the relay outputs on the SmartServer. You can execute this code
after you have completed section 20.1.1, Referencing and Inheriting from the WSDL Using .NET 3.5
Framework, and section 20.2.1, Instantiating the Web Service Client in Visual C# .NET 3.5.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
SmartServerConsoleExample
{
class
Program
{
static
void
Main(
string
[] args)
{
iLON_SoapCalls
.BindClientToSmartServer();
iLON_SmartServer.
iLON100portTypeClient
SmartServer =
iLON_SoapCalls
._iLON;
// -------------- READING A DATA POINT VALUE --------------
try
{
// instantiate the member object
iLON_SmartServer.
Item_Coll
itemColl =
new
iLON_SmartServer.
Item_Coll
();
itemColl.Item =
new
iLON_SmartServer.
Item
[1];
itemColl.Item[0] =
new
iLON_SmartServer.
Dp_Data
();
// set the DP name
itemColl.Item[0].UCPTname =
"Net/LON/iLON App/Digital Output 1/nviClaValue_1"
;
// set maxAge to get the updated DP value in case it has been cached for more than 10
// seconds on the Data Server (see section 4.3.4.1 for more information)
((iLON_SmartServer.
Dp_Data
)(itemColl.Item[0])).UCPTmaxAge = 10;
((iLON_SmartServer.
Dp_Data
)(itemColl.Item[0])).UCPTmaxAgeSpecified =
true
;
//call the Read Function
iLON_SmartServer.
Item_DataColl
dataColl = SmartServer.Read(itemColl);
if
(dataColl.Item ==
null
)
{
// sanity check. this should not happen
Console
.Out.WriteLine(
"No items were returned"
);
}
else
if
(dataColl.Item[0].fault !=
null
)
{
// error
Console
.Out.WriteLine(
"An error occurred. Fault code = "
+
dataColl.Item[0].fault.faultcode +
". Fault text = %s."
+
dataColl.Item[0].fault.faultstring);
}
else
{
// success
Console
.Out.WriteLine(
"Read is successful"
);
Console
.Out.WriteLine(((iLON_SmartServer.
Dp_Data
)dataColl.Item[0]).UCPTname +
" = "
+
((iLON_SmartServer.
Dp_Data
)dataColl.Item[0]).UCPTvalue[0].Value +
"\n"
);
}