Implementing periodic services – Echelon ISI User Manual

Page 21

Advertising
background image

19

ISI Programmer’s Guide

applies to your application’s Node Object functional block, if available, or applies

to the entire device if there is no Node Object functional block. The configuration
property has two values—CFG_LOCAL and CFG_EXTERNAL. When set to

CFG_LOCAL, your application can enable self installation. When set to

CFG_EXTERNAL, your application must disable self installation. Network
management tools automatically set this value to CFG_EXTERNAL to prevent

conflicts between self-installation functions and the network management tool.
See

Implementing a SCPTnwrkCnfg CP

for more details.

To maximize compatibility with network management tools used for managed
networks, insert an 800 millisecond to one-and-a-half second delay before calling

any of the IsiStart() functions. This delay can be implemented with a call to the
delay() or scaled_delay() function, other application processing, or a combination

of application processing plus a call to the delay() or scaled_delay() function.

Without this delay, a network tool may fail to confirm a state change when
commissioning the device for the first time, or for the first time after a change to

the device’s application.

E

XAMPLE

1

The following example declares a SCPTnwrkCnfg configuration property that
applies to the device, tests its value on startup, waits for 800ms, and starts

the ISI engine without support for domain acquisition.


network input SCPTnwrkCnfg cp cp_info(reset_required,
device_specific) cpNetConfig;

device_properties {

cpNetConfig = CFG_EXTERNAL

};

when (reset) {

if (cpNetConfig == CFG_LOCAL) {

scaled_delay(31745UL);

//

800ms

delay

IsiStartS(isiFlagNone);
}
}

See Implementing a SCPTnwrkCnfg CP for more important
considerations.

Implementing Periodic Services

void IsiTick(IsiType

Type

);

void IsiTickS(void);
void IsiTickDa(void);
void IsiTickDas(void);

You must periodically call the IsiTick() function after you have started the ISI

engine as described in the previous section. You should call this function
approximately every 250ms. You can use a timer task to implement the periodic

service.

Advertising