...
For TC, the filter receives OPCUA reading (from north) and creates a corresponding PIVOT reading. The created PIVOT reading format is given in FLEDGE WIKI.
The reading input is expected with the following JSON equivalent format:
Code Block | ||
---|---|---|
| ||
{
"control_object":{
"co_type": <string>,
"co_test": <int>,
"co_ts": <int>,
"co_se": <int>,
"co_negative": <int>,
"co_qu": <int>,
"co_cot": <int>,
"co_id": <string>,
"co_value": <depends on data type...>
}
} |
TBC : Something does not work. The "do_value" (reply) will be sent by a south service, is it intended to be received as a full PIVOT value? What will be the reading sent from south to North in this case? Is it supposed to be a reading that is compatible with filter and opcua?. And in that case, should we ignore all fields except "do_value" or create a full read-only variable set on the OPC server for each TC?
The content under <Root> will convert the OPCUA command objet to a pivot object as follow:
Key | Type | Default value | opcua.control_object.<...> | Note | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<Root>.Identifier | String | co_id | PIVOT identifier. | ||||||||||||||||||||
<Root>.Select.stVal | Boolean | false | co_se | - 0 is mapped with false, for Execute - 1 is mapped with true, for Select before Execute | |||||||||||||||||||
<Root>.ComingFrom | String | "opcua" | N.A. | This plugin should always use the value "opcua" when converting to pivot | |||||||||||||||||||
<Root>.<type> | String | co_type | (see | ||||||||||||||||||||
<Root>.<type>.q.test | Boolean | false | co_test | ||||||||||||||||||||
<Root>.<type>.t.SecondSinceEpoch | Integer | co_ts | TBC | Boolean | false | co_se | <Root>.Confirmation.stVal | Boolean | co_negative | TBC | Boolean | false | co_qu | <Root>.ComingFrom | String | "opcua" | N.A. | <Root>.Cause.stVal | Integer | co_cot | See Cause of Transmission|||
| Float | co_value | For ApcTyp<Root>.ApcTyp.mxVal | Float | do_value | For ApcTyp TBC!! This cannot be part of the reading sent from north to south. | 32 | ||||||||||||||||
| String | co_value | For DpcTypintermediate-state | off | on | bad-state | ||||||||||||||||||||
String | do_value | For DpcTyp TBC!! same as above | <Root>.<Root>. | DpcTyp.mxValIncTyp.ctlVal | Integer | co_value | For IncTyp | <Root>.IncTyp.stVal | Integer | do_value | For IncTypTBC!! same as aboveInt 32 | ||||||||||||
<Root>.SpcTyp.ctlVal | Boolean | co_value | For SpcTyp0 or 1 | ||||||||||||||||||||
<Root>. | SpcTypBscTyp. | stValctlVal | BooleanString | doco_value | For SpcTypTBC!! same as abovestop | lower | higher | reserved |