Isistartdeviceacquisition() – Echelon ISI User Manual

Page 141

Advertising
background image

139

ISI Programmer’s Guide

When selecting one of the specialized versions IsiStartS(), IsiStartDA(), or

IsiStartDAS(), you must make sure to use the same type of specialized message
processor function (IsiProcessMsgS(), etc) and tick function (IsiTickS(), etc).

No forwarders are provided with the IsiStart() functions.

E

XAMPLE

The following example starts the ISI engine after confirming the device is in
self-installation mode:

network input SCPTnwrkCnfg cp cp_info(reset_required) cpNetConfig

= CFG_EXTERNAL;
eeprom SCPTnwrkCnfg oldNetConfig = CFG_NUL;

when (reset) {
SCPTnwrkCnfg

netConfig;

netConfig = oldNetConfig;


if (netConfig == CFG_NUL) {

// First application start, enable self-installation

cpNetConfig

=

CFG_LOCAL;

}

oldNetConfig = cpNetConfig;


if (cpNetConfig == CFG_LOCAL) {

if (netConfig == CFG_EXTERNAL) {

// Managed application has returned to self-installation

IsiReturnToFactoryDefaults(); // Call NEVER returns!

}

// Self-installed network--start the ISI engine:

scaled_delay(31745UL);

// 800ms delay

IsiStartS(isiFlagExtended+isiFlagHeartbeat);

}
}

IsiStartDeviceAcquisition()

void IsiStartDeviceAcquisition(void);

Starts or retriggers device acquisition mode on a domain address server. The
domain address server will respond to domain ID requests from ISI-DA devices

as long as it is in device acquisition mode. When the domain address server is in

device acquisition mode and has responded to a domain request (DIDRQ) with a
domain response (DIDRM), calling the IsiStartDeviceAcquisition() function also

confirms that the correct device has been allocated, and triggers the release of a

domain confirmation message (DIDCF).

This function has no effect on a device that is not a domain address server, or if
the ISI engine is stopped. No forwarder is provided for this function.

E

XAMPLE

The following example starts domain acquisition mode on a domain address
server when the user presses a Connect button on the server:

when (connect_button_pressed) {

IsiStartDeviceAcquisition();

}

Advertising