Opening enrollment – Echelon ISI User Manual
Page 33
31
ISI Programmer’s Guide
Opening Enrollment
void IsiOpenEnrollment(unsigned
Assembly
);
void IsiCreateCsmo(unsigned
Assembly
, IsiCsmoData*
pCsmoData
);
unsigned IsiGetPrimaryGroup(unsigned
Assembly
);
unsigned IsiGetWidth(unsigned
Assembly
);
void IsiInitiateAutoEnrollment(const IsiCsmoData*
pCsma
, unsigned
Assembly
);
void IsiUpdateUserInterface(IsiEvent
Event
, unsigned
Parameter
);
You can create a connection using
automatic
,
controlled
, or
manual
enrollment.
When you use controlled or manual enrollment, user intervention is required to
identify devices or assemblies to be connected. Controlled enrollment is initiated
by a centralized tool such as a controller or user interface panel. This centralized
tool is called the
connection controller
. Manual enrollment is initiated from the
devices to be connected, typically with a push button called the
Connect button
.
When you use automatic enrollment, connections are automatically created and
no user intervention is required.
To join a connection, a device must support at least one type of enrollment. A
device may support multiple types of enrollment—a device may even support all
three types of enrollment. For example, a lamp actuator may support automatic
enrollment to a gateway, controlled enrollment configured by a user interface
panel, and manual enrollment with switch devices. Devices that support
controlled enrollment must also support connection recovery as described in
Recovering Connections
in Chapter 5. Standard functional profiles may require
support for specific types of enrollment.
An event triggers your application to open enrollment. The type of event depends
on the type of enrollment:
•
Manual enrollment
—a user input on the device itself typically triggers
manual enrollment. The input may be a simple button push, or a device
may have a more complex user interface that allows the user to request a
connection.
•
Controlled enrollment
—a request from a connection controller typically
triggers controlled enrollment. This request is typically initiated by some
user input to the connection controller and arrives in a control request
(
CTRQ
) message. The CTRQ message identifies an ISI function and an
optional parameter.
•
Automatic enrollment
—the isiWarm event in the
IsiUpdateUserInterface() callback function typically triggers automatic
enrollment.
To open manual enrollment, call the IsiOpenEnrollment() function on the
connection host, passing in the assembly number to be offered for this connection.
The ISI engine then sends a connection invitation by broadcasting an
open
enrollment
message
(
CSMO)
. The CSMO message is the invitation for other
devices to join this connection. The ISI engine creates the CSMO message by
calling the IsiCreateCsmo() function, which fills the relevant fields of an
IsiCsmoData data structure with the values needed to describe the connection
type and data that is offered to the network. The default implementation of this