Isiisrunning(), Isiissueheartbeat(), Isileaveenrollment() – Echelon ISI User Manual
Page 135
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.