Isisetdomain(), Isiupdatediagnostics() – Echelon ISI User Manual

Page 151

Advertising
background image

149

ISI Programmer’s Guide

You must override the IsiGetConnection() and IsiGetConnectionTableSize()

functions if you override the IsiSetConnection() function.

IsiSetDomain()

void IsiSetDomain(domain_struct*

pDomain

, unsigned

Index

);

Sets the domain, subnet, and node ID in the primary entry of the domain table
for a device. You can override this function with an empty function during

development in a managed environment to prevent conflicts with the network
management tool. For example, if you are using the NodeBuilder Development

Tool, the LonMaker tool manages the devices you are developing. To prevent
conflicts with the LonMaker tool, the following code disables domain table

updates for a NodeBuilder development target:

#ifndef _MINIKIT

# ifdef _DEBUG

void

IsiSetDomain(domain_struct* pDomain,

unsigned Index) {
;

//

do

nothing.

}
# endif
#endif

When you override this function, only the domain, subnet, and node ID
management functions of the ISI engine are disabled—all other portions of the

ISI protocol will continue to function. This passes control of the subnet and node

IDs to an external network management tool, which means they may no longer
follow the ISI subnet/node value ranges. When disabled, any detected

subnet/node ID conflicts will not be resolved.

Warning: This function can only be overridden during development. Overriding

the IsiSetDomain() callback in the way shown above allows for debugging of the
device application with the ISI engine running, but disables important features of

the ISI protocol. Devices using this approach will not function correctly in a self-
installed environment.

IsiUpdateDiagnostics()

void IsiUpdateDiagnostics(IsiDiagnostic

Event

, unsigned

Parameter

);

Provides optional detailed ISI diagnostic events. These events are useful for

debugging ISI applications and are not typically used for production products. To
receive notification of diagnostic events, enable diagnostics in the IsiStart()

function and override the IsiUpdateDiagnostics() callback function. This callback

is normally disabled and the default implementation of IsiUpdateDiagnostics()
does nothing. The ISI engine calls this function with the

Event

parameter set to

one of the values defined for the IsiDiagnostic enumeration in Appendix A. Some

of these events carry a meaningful value in the

Parameter

argument, as detailed

in the IsiDiagnostic definition. Most diagnostics events supplement UI events;

use a combination of both events for a complete trace record.

No forwarder is supported for this function.

Advertising