Isiextendenrollment() – Echelon ISI User Manual

Page 130

Advertising
background image

ISI Programmer’s Guide

128

IsiExtendEnrollment()

void IsiExtendEnrollment(unsigned

Assembly

);

Accepts a connection invitation on a device that supports connection extension.
This function may be called after the application has received and approved a

CSMO open enrollment message. The connection will be added to any previously
existing connections. If no previous connection exists for

Assembly

, a new

connection will be created. This function must not be called on a device that does

not support connection extension.

Where supported and unless application requirements dictate otherwise, this
function should be used instead of the IsiCreateEnrollment() function.

On a connection host that has received at least one CSME enrollment acceptance

message, this command completes the enrollment and extends any existing
connections. If no previous connection exists for

Assembly

, a new connection will

be created.

Devices using the IsiFull library automatically use comprehensive resource

validation included with the full version of the ISI library. See
IsiGetFreeAliasCoung() for discussion and recommendations when using this

function with devices built with one of the compact ISI libraries.

The ISI engine must be running and in the correct state for this function to have

any effect. For a connection host, the ISI engine must be in the approved state.
Other devices must be in the pending state.

E

XAMPLE

The following example accepts a connection invitation for a connection
member if the Connect button is pushed when a connection is pending, or

extends an existing connection if the Alternative flag is set:

IsiEvent isiState;

void ProcessIsiButton(unsigned Assembly, boolean Alternative) {
switch(isiState)

{

...
case

isiPending:

if

(Alternative)

{

IsiExtendEnrollment(Assembly);

}

else

{

IsiCreateEnrollment(Assembly);

}

break;
...
}
}

Advertising