Functional block property lists (fb-property-list) – Echelon Neuron C User Manual
Page 203
Neuron C Reference Guide
183
the external_name string described above. In this case, the device interface
information contains a scope and index pair (the first number is a scope, then a
colon character, and then the second number is an index). The scope and index
pair identifies a language string in the resource files, which a network tool can
access for a language-dependent name of the functional block. You can use the
scope and index pair to reduce memory requirements and to provide language-
dependent names for your functional blocks.
Alternatively, a string argument can be supplied to the external_resource_name
keyword. The compiler takes this string and uses it to look up the appropriate
string in the resource files that apply to the device. This mechanism is provided
as a convenience to the programmer, so the compiler can look up the scope and
index; but the result is the same, the scope and index pair is used in the external
interface information, rather than a string. The string
must
exist in an
accessible resource file for the compiler to properly perform the lookup.
Functional Block Property Lists (fb-property-list)
You can include a property list at the end of the functional block declaration,
similar to the device property lists and the network variable property lists
discussed in the previous chapter. The functional block’s property list, at a
minimum, must include all of the mandatory properties defined by the functional
profile that apply to the functional block. Implementation-specific properties can
be added to the list without any special keywords. You cannot implement more
than one property of any particular SCPT or UCPT type for the same functional
block.
The functional block’s property list must only contain the mandatory and
optional properties that apply to the functional block as a whole. Properties that
apply specifically to an individual abstract network variable member of the
profile must appear in the
nv-property-list
of the network variable that
implements the member, rather than in the
fb-property-list
.
The complete syntax for a functional block’s property list is:
fb_properties {
property-reference-list
}
property-reference-list
:
property-reference-list
,
property-reference
property-reference
property-reference
:
property-identifier
[=
initializer
] [
range-mod
]
property-identifier
[
range-mod
] [=
initializer
]
range-mod
:
range_mod_string (
C-string-constant
)
property-identifier
:
[
property-qualifier
]
cpnv-prop-ident
[
property-qualifier
]
cp-family-prop-ident
property-qualifier
:
static | global
cpnv-prop-ident
:
identifier
[
constant-array-index-expr
]
identifier
cp-family-prop-indent
:
identifier