beautypg.com

Opening enrollment – Echelon ISI User Manual

Page 33

background image

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