Details on datapoint groups

There is an internal datapoint type _DpGroup for datapoint groups:

_DpGroup

Sheet Type Description
.Dps dyn_string Datapoint filter (e.g. "Reading.C*").
.Types dyn_string Datapoint type filter (DPT name)
.Level int int == 1 for main group, otherwise 0.

DPs and Types always exist in parallel, that is, each element of DPs is assigned an element of Types and vice-versa.

There are three options:

1. Types[n]!="", Dps[n]!="" : filters by DPE pattern in DPType.

2. Types[n]=="", Dps[n]!="" : searches all DPTypes on DP pattern.

3. Types[n]!="", Dps[n]=="": In this case the filter is a group. A maximum of 20-level nesting is permitted (for example, Group1 contains Group2 as a type filter, Group2 contains Group3 as a type filter and so on up to maximum 20 times), beyond this an error message will be displayed (this also can create an endless loop, that is, if the type filter for Group1 is Group2 and the type filter for Group2 is Group1.)

The datapoint names of the type are automatically assigned as follows:

_DpGroupNNNNN_Type, where NNNNN is a serial number (automatically created by the panel), Type is either "Public" or a user name (private).

Datapoints _DpGroupNNNNN_Public can be managed by all users, datapoints _DpGroupNNNNN_Username can only be used by the owner (for example, DpGroupNNNNN_root by the root user).