This plugin intends at converting PIVOT data into OPCUA north plugin.
The filter implements the Fledge Filter plugin interface (see filter_plugins).
Filter configuration
See Plugins configuration design for examples and details
The "config
" parameter of "plugin_init
" call shall include :
- A "
exchanged_data
" category with the same content as provided to the OPCUA north plugin. This section is mandatory so that the filter plugin can convert the PIVOT type to OPCUA type.
Notes :
- All types not listed in this table are not supported in current version.
- The current implementation provides a default mapping rule for each known type, but some new rules might be added in the future and configured using the "
alternate_mapping_rule
" option in its parameters.
Filter interface
The "plugin_ingest
" call will convert each "reading
" of "reading_set
" as follow:
- The Reading fields "id", "TimeStamp", "userTimestamp" and "asset_name" are unchanged.
- The Reading field "reading" is updated with an JSON object
{'data_object' : {...}}
. The content of object under'data_object'
is given below.
The <Root> key of PIVOT object can be:
Reading key | Content |
---|---|
PIVOT.GTIS | Tele Signal |
PIVOT.GTIM | Tele Measurement |
PIVOT.GTIC | Not supported |
In the following table: <type>
is equal to
- "SpsTyp" or "DpsTyp" (for GTIS)
- "MvTyp" (for GTIM)
The content under <Root> will convert the pivot to a opcua object as follow:
Key | Type | Default Value | opcua.data_object.<...> | Note |
---|---|---|---|---|
<Root>.Cause.stVal | Integer | Mandatory | do_cot | See Cause of Transmission |
<Root>.Confirmation.stVal | Boolean | false | do_confirmation | |
<Root>.ComingFrom | String | Mandatory | do_comingfrom | Any protocol name ("iec104" ,"opcua", ...) |
<Root>.Identifier | String | Mandatory | do_id do_type | do_id = PIVOT ID do_type = "opcua_sps" | "opcua_dps" | "opcua_mvi" | "opcua_mvf". Other types not supported in current version. |
| PIVOT : Object | 0 | do_detail | OR-Mask of following values:
|
<Root>.<type>.t.TimeQuality | Integer | 0 | do_ts_quality | OR-Mask of following values:
|
<Root>.<type>.q.Source | String | "process" | do_source | "process" | "substituted" |
<Root>.<type>.q.Validity | String | Mandatory | do_value_quality | "good" | "invalid" | "reserved" | "questionable" |
<Root>.<type>.t.SecondSinceEpoch | Integer | 0 | do_ts | Unit = seconds since Epoch (January, 1st 1970) |
<Root>.TmOrg.stVal | String | Mandatory | do_ts_org | "genuine" | "substituted" |
<Root>.TmValidity.stVal | String | Mandatory | do_ts_validity | "good" | "invalid" | "reserved" | "questionable" |
<Root>.SpsTyp.stVal | Boolean | Mandatory | do_value | |
<Root>.DpsTyp.stVal | String | Mandatory | do_value | |
<Root>.MvTyp.mag.f | Float | Mandatory | do_value | |
<Root>.MvTyp.mag.i | Integer | Mandatory | do_value |