beautypg.com

Isiisrunning(), Isiissueheartbeat(), Isileaveenrollment() – Echelon ISI User Manual

Page 135

background image

133

ISI Programmer’s Guide

IsiIsRunning()

boolean IsiIsRunning(void);

Returns TRUE if the ISI engine is running and FALSE if the ISI engine is
stopped. Non-zero values are considered TRUE.

No forwarder is provided for this function. The function operates in all states of

the ISI engine.

IsiIssueHeartbeat()

boolean IsiIssueHeartbeat(unsigned

NvIndex

);

Sends a network variable update for the specified network variable index and its
aliases, as long as the network variable is a bound output network variable using

group addressing. The function returns TRUE if at least one update has been
propagated, and FALSE otherwise. IsiIssueHeartbeat() uses the address table

for addressing information, but always uses unacknowledged service with one
repeat when issuing the heartbeat. IsiIssueHeartbeat() only sends a network

variable if it uses group addressing (the default ISI addressing mode)—it skips

updates that use a different addressing mode.

This function is typically called in an IsiQueryHeartbeat() callback. If the
function is called outside of this callback to create a custom heartbeat scheme,

the application must only call this function for bound output network variables.

This function requires that the ISI engine has been started with the

isiFlagHeartbeat flag passed in.

E

XAMPLE

The following starts the ISI engine with heartbeats enabled and issues a

heartbeat in response to the IsiQueryHeartbeat() callback.

when (reset) {
IsiStartDa(isiFlagHeartbeat);
}

boolean IsiQueryHeartbeat(unsigned nv) {

// Agree to all heartbeats suggested by the ISI engine

return IsiIssueHeartbeat(nv);

}

IsiLeaveEnrollment()

void IsiLeaveEnrollment(unsigned

Assembly

);

Removes the specified assembly from all enrolled connections as a local operation
only. When used on the connection host, the function will automatically be

interpreted as IsiDeleteEnrollment().

No forwarder is provided for this function. This function has no effect if the ISI

engine is stopped.