Facets importance for enum points

Facets for enum-type components (EnumPoint, EnumWritable, EnumSchedule, etc.) define the operating range of the component, meaning its different possible enumerated states. Each state is defined by a pairing of an integer value-to-text, also known as ordinal-tag. Each ordinal must be a unique integer, and each tag must be unique text. By default, the point’s value displays using tag text.

If you add an enum point from the control palette, its Facets slot has a blank range entry. Until you edit this facet and supply the ordinal-tag values, it can display only integer values. As shown , a special Enum window appears when you edit range facets.

Figure 1. Producing Enum window for enum point “range” facets


In the Enum window when adding an entry, the Add button becomes available after you enter an integer value in the left side Ordinal box as shown below. Type in the associated text in the right side Tag box, then click Add to add to the facet’s range. Click OK when done, also OK on any remaining windows.

Figure 2. Type unique integer value in Ordinal box and associated text in Tag box


If using lexicons, in the Lexicon Module Name field you can enter the module name of a configured lexicon (for example, control or kitControl), if Tag strings match lexicon keys in that lexicon file. In this case, enumerations will display the lexicon strings (values) for those ordinals instead of the tag text.

When defining range enumerations, instead of defining a custom one with your supplied ordinals and tags text, you can also select from well known frozen enumerations, as defined in various installed modules. A checkbox enables this and provides a drop-down list for you to select by module and enumeration type.

Figure 3. Frozen enum selection in Enum window


Depending on the driver/network type, the Point Manager under a device may automate this facets range configuration when you add enum-type proxy points. For example, under a Lonworks device, if you add a EnumPoint for a Lonworks NVO that uses an enumerated SNVT, that point’s facets will automatically be configured with the correct range values.

Note: If an enum-type point receives an input value not included in its defined facets range, it displays the ordinal integer value for that input. This varies from the multistate objects used in r2 Niagara, which would display Error for any value not defined in its stateText entries.