Creating an acknowledged connection – Echelon ISI User Manual
Page 73

71
ISI Programmer’s Guide
2. Connection host enrolls local, normal, output network variable:
direction(CSMOEX) = isiDirectionInput or isiDirectionAny,
poll(CSMOEX) = clear;
3. Connection host enrolls local, polling, input network variable:
direction(CSMOEX) = isiDirectionOutput, poll(CSMOEX) = set;
4. Connection host enrolls local, polled, output network variable:
direction(CSMOEX) = isiDirectionInput, poll(CSMOEX) = set.
The isiDirectionAny value is used in unspecific connections; for example, between
multiple switches and multiple lamps. Most connections will be direction-
specific, whereas many general-purpose I/O devices will support unspecific-
direction connections to simplify the manual-connection scenario. Devices
receiving a CSMO include the direction and poll attributes in the consideration of
acceptance.
You can use the isiDirectionVarious value when the compound assembly contains
multiple network variables of different directions, where the network variable
direction is determined by the functional profile.
E
XAMPLE
The following example creates a CSMOEX with the direction field set to
output and the poll field set to on. The isiFlagExtended flag is required for
transmitting this CSMOEX (but not for receiving).
static const IsiCsmoData MyCsmo = {
ISI_DEFAULT_GROUP,
//
Group
isiDirectionOutput,
//
NV
direction
1,
//
Width
2,
//
Profile
number
(2
=
//
SFPTopenLoopSensor)
76u, //
Network
variable
type
index
//
(76
=
SNVT_freq_hz)
0,
//
Variant
(0
=
standard)
0,
//
Acknowledged
1,
//
Poll
isiScopeStandard,
// Scope that defines FPT or NVT
{0x9F, 0xFF, 0xFF, 0x05, 0x00, 0x05}, // application
1
//
network
variable
member
//
number
(1
=
nvoValue)
};
Creating an Acknowledged Connection
You can create a unicast acknowledged connection. The ISI protocol does not
support multicast acknowledged connections. An acknowledged connection
requires subnet/node ID addressing instead of the group ID addressing typically
used by ISI for network variable connections. Devices initiating acknowledged
network variable updates must track subnet/node ID allocation using some
suitable application-specific algorithm. The ISI library does not provide an
implementation of these algorithms, but applications are free to supply support
for acknowledged service. Acknowledged service is typically not used because of
the additional complexity of tracking subnet/node ID changes. To send an NV
update using the acknowledged service, create an explicit message that is