Isimsgdeliver(), Isimsgsend(), Isiopenenrollment() – Echelon ISI User Manual

Page 136

Advertising
background image

ISI Programmer’s Guide

134

IsiMsgDeliver()

void IsiMsgDeliver(IsiMessage*

pMsg

, unsigned

Length

, msg_out_addr*

pDestination

);

Sends an ISI message to the address specified in the

pDestination

parameter.

An ISI application must implement the IsiMsgDeliver() function. The function is

used by the ISI library for sending messages, and should not be used by the
application itself. In most cases, the application code need not explicitly declare

the IsiMsgDeliver() function; it is automatically implemented by including the

isi.h header file. The function that should be used for sending messages is
IsiMsgSend().

No forwarder is provided for this function. This function operates in any state of

the ISI engine.

IsiMsgSend()

void IsiMsgSend(IsiMessage*

pMsg

, unsigned

IsiMessageLength

, service_type

Service

, msg_out_addr*

pDestination

);

Sends an ISI message of the specified length using the specified service to the

specified address, for example from a function invoked via an
IsiCreatePeriodicMsg() event.

No forwarder is provided for this function. This function operates in any state of
the ISI engine.

IsiOpenEnrollment()

void IsiOpenEnrollment(unsigned

Assembly

);

Opens manual enrollment for the specified assembly. This operation turns the
device into a connection host for this connection and sends a CSMO manual

connection invitation to all devices in the network.

No forwarder is provided for this function. The ISI engine must be running, and

in the idle state.

E

XAMPLE

The following example opens manual enrollment for a simple assembly with
one network variable, using the network variable’s global index as the

application-specific assembly number:

void startEnrollment(void) {
unsigned

myAssembly;

myAssembly = nvoValue::global_index;

IsiOpenEnrollment(myAssembly);

}

Advertising