Isistart() – Echelon ISI User Manual
Page 140

ISI Programmer’s Guide
138
cpNwrkConfig = OldNetConfig;
if (cpNwrkConfig == CFG_NUL) {
// For the first application start, set nciNetConfig to
// CFG_LOCAL, allowing the ISI engine to run by default:
nciNetConfig
=
CFG_LOCAL;
}
OldNetConfig = nciNetConfig;
if (nciNetConfig == CFG_LOCAL) {
if (cpNwrkConfig == CFG_EXTERNAL) {
// The application has just returned into the self-
// installed environment. Make sure to re-initialize
// the entire ISI engine:
IsiReturnToFactoryDefaults(); // Call NEVER returns!
}
// We are in a self-installed network:
// Start the ISI engine:
scaled_delay(31745UL);
// 800ms delay
IsiStartS(isiFlagExtended);
}
}
IsiStart()
void IsiStart(IsiType
Type
, IsiFlags
Flags
);
void IsiStartDAS(IsiFlags
Flags
);
void IsiStartS(IsiFlags
Flags
);
void IsiStartDA(IsiFlags
Flags
);
Starts the ISI engine. The ISI engine sends and receives ISI messages, and
manages the network configuration of your device. You will typically start the
ISI engine in your reset task when self-installation is enabled, and you will
typically stop the ISI engine when self-installation is disabled.
The function accepts a combination of flags, defined in the IsiFlags enumeration.
Certain features of the ISI engine will only become available if the corresponding
flag had been raised with the IsiStart() function.
You can use the IsiStart() function to start the ISI engine using any ISI type.
You can use specialized versions of the IsiStart() function to minimize the
memory footprint of your application. Devices that only support a single ISI type
may use one of the following functions:
• IsiStartS()—starts the ISI engine for a device that does not support
domain acquisition.
• IsiStartDA()—starts the ISI engine for a device that supports domain
acquisition, but is not a domain address server.
• IsiStartDAS()—starts the ISI engine for an ISI-DAS application that
supports domain acquisition and is a domain address server.
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.