beautypg.com

Echelon FTXL User Manual

Page 100

background image

88

Developing an FTXL Application

nciGain
}
;

You can enhance the myController() function to implement the new gain factor:

void myController(void)

{

// nvoWatt = nviAmpere * nviVolt * nciGain.multiplier;

LON_SET_UNSIGNED_WORD(nvoWatt,

LON_GET_UNSIGNED_WORD(nviAmpere)

*

LON_GET_UNSIGNED_WORD(nviVolt)

*

LON_GET_UNSIGNED_WORD(nciGain.multiplier));

//

nvoWatt /= nciGain.divider;

LON_SET_UNSIGNED_WORD(nvoWatt,

LON_GET_UNSIGNED_WORD(nvoWatt)
/

LON_GET_UNSIGNED_WORD(nciGain.

divider));

if (LonPropagateNv(LonNvIndexNvoWatt) != LonApiNoError)

{

// handle propagation error here

...
}
}

Configuration network variables must be persistent, that is, their values must

withstand a power outage.

Handling a Network Variable Poll Request from the
Network

Devices on the network can request the current value of a network variable on
your device by polling or fetching the network variable. The FTXL LonTalk

protocol stack responds to poll of fetch requests by sending the current value of

the requested network variable.

Handling Changes to Changeable-Type Network
Variables

When a network management tool plug-in or the LonMaker browser changes the

type of a changeable-type network variable, it informs your application of the

change by describing the new type in the SCPTnvType configuration property
that is associated with the network variable.
When your application detects a change to the SCPTnvType value:

• It determines if the change is valid.
• If the change is valid, it processes the change.
• If the change is not valid, it reports an error.

Valid type changes are those that the application can support. For example, an

implementation of a generic PID controller might accept any numerical floating-
point typed network variables (such as SNVT_temp_f, SNVT_rpm_f, or

SNVT_volt_f), but can reject other types of network variables. Or a data logger

device might support all types that are less than 16 bytes in size, and so on.