Isifetchdevice(), Isifetchdomain() – Echelon ISI User Manual
Page 131
129
ISI Programmer’s Guide
IsiFetchDevice()
void IsiFetchDevice(void);
Fetches a device by assigning a domain to the device from a domain address
server (DAS). The IsiFetchDevice() function must not be called from a device
that is not a domain address server.
To use the IsiFetchDevice() function, you must implement a when (resp_arrives)
task and call the IsiProcessResponse() function from the domain address server’s
application to complete the processing involved with fetching a remote device.
The IsiFetchDevice() operation does not require application code on the remote
device. The remote device remains unaware of the change to its primary domain.
An alternate method to assign a domain to a device is for the device to use the
IsiAcquireDomain() function. This function provides more immediate recovery
from network addressing conflicts and more immediate maintenance of automatic
connections. The disadvantage of using the IsiAcquireDomain() function is that
it typically requires more code on the device, and it requires that the device
support ISI-DA. The IsiFetchDevice() function may be used with any device. A
DAS must support both methods.
The ISI engine must be running for this function to have any effect, and this
function only operates on a domain address server.
E
XAMPLE
The following example is part of the domain address server’s application.
The example assigns the domain address server’s domain to a device when
the user presses the Connect button on the server:
when (connect_button_pressed) {
IsiFetchDevice();
}
// Handle responses to requests in IsiFetchDomain()
when (resp_arrives) {
if (IsiProcessResponse()) {
// TODO: process unprocessed responses here (if any)
}
}
IsiFetchDomain()
void IsiFetchDomain(void);
Starts or re-starts the fetch domain process in a domain address server, described
above in
Fetching a Domain for a DAS
. The IsiFetchDomain() function must not
be called from a device that is not a domain address server.
The ISI engine must be running for this function to have any effect, and this
function only operates on a domain address server.