Echelon FTXL User Manual

Page 97

Advertising
background image

FTXL User’s Guide

85

Do not handle an update failure with a repeated propagation; the FTXL LonTalk

protocol stack automatically retries a number of times based on the network
variable’s retry count. A completion failure generally indicates a problem that

should be signaled to the user interface (if any), flagged by an error or alarm

output network variable (if any), or by signaled as a comm_failure error through
the nvoStatus network variable of the Node Object functional block (if there is

one).

Example: The following model file defines the device interface for a simple power

converter. This converter accepts current and voltage inputs on its nviAmpere

and nviVolt input network variables. It computes the power and sends the value
on its nvoWatt output network variable:

network input SNVT_amp

nviAmpere;

network input SNVT_volt

nviVolt;

network output SNVT_power

nvoWatt;


fblock UFPTpowerConverter {

nvoWatt

implements nvoPower;

nviAmpere implements nviCurrent;

nviVolt

implements nviVoltage;

} powerConverter;

The following code fragment, implemented in your application’s code, uses the
data most recently received by either of the two input network variables,

computes the product, and stores the result in the nvoWatt output network

variable. It then calls the LonPropagateNv() function to send the computed
value.

#include "FtxlDev.h"

void myController(void)

{

nvoWatt = nviAmpere * nviVolt;

if (LonPropagateNv(LonNvIndexNvoWatt)!= LonApiNoError) {

// handle propagation error here

// such as lack of buffers or validation

...

}
}

Receiving a Network Variable Update from the
Network

When the FTXL LonTalk protocol stack receives a network variable update from

the network, it enqueues the event and signals the arrival of the event by calling

the LonEventReady() callback handler function. When the application calls the
LonEventPump() function, the FTXL LonTalk protocol stack writes the update to

your network variable (by using the variable’s address stored in the network
variable table), and then calls the LonNvUpdateOccurred() event handler

function to inform your application that the update occurred. The application can

read the current value of any input network variable by reading the value of the
variable declared in the FtxlDev.c file.

Advertising