Sending a network variable update – Echelon LonTal Stack User Manual

Page 127

Advertising
background image

LonTalk Stack Developer’s Guide

115

Example:

while (1) {

// process application-specific data

...

if (OsalWaitForEvent(readyHandle, OSAL_WAIT_FOREVER) ==

OSALSTS_SUCCESS)

LonEventPump();
}

...

void LonEventReady(void)
{
OsalSetEvent(readyHandle);
}

In the example, the readyHandle variable is the handle to an OSAL event; this

handle is defined using the OsalCreateEvent() function during the application’s
initialization phase, and is signaled by the LonEventReady() callback handler

function whenever an event is ready to be processed.

Sending a Network Variable Update

Your LonTalk Stack device typically communicates with other L

ON

W

ORKS

devices by sending and receiving network variables. Each static network

variable is represented by a global variable declared by the LonTalk Interface

Developer utility in the FtxlDev.c file, with extern declarations provided in the
FtxlDev.h file. To send an update for a static output network variable, first

write the new value to the network variable declared in FtxlDev.c, and then call
the LonPropagateNv() function to send the network variable update. The

LonPropagateNv() function uses the index of the network variable, which is
defined in the LonNvIndex enumeration in FtxlDev.h. The index names use

the following format:

LonNvIndexName

Example: A network variable that is named nviRequest has the index name

LonNvIndexNviRequest.

For dynamic network variables, the application must call the LonGetNvValue()

function to retrieve the address of the value of a dynamic network variable.
The LonPropagateNv() function forwards the update to the LonTalk host stack,
which in turn transmits the update to the network. This function returns an

error status that indicates whether the update was delivered to the LonTalk host
stack, but does not indicate successful completion of the update itself.
The LonTalk Stack device must be configured and online to be able to propagate

a network variable value. If the LonPropagateNv() function is called when the
LonTalk Stack device is not configured or not online, the function returns

LonApiOffline.

After the update is complete, the LonTalk host stack informs the

LonEventReady() callback handler function in the LonTalk Stack application.

The application then calls the LonEventPump() function, which in turn calls
your LonNvUpdateCompleted() callback handler function, to notify your

application of the success or failure of the update. You can use this function for

Advertising