View Issue Details

IDProjectCategoryView StatusLast Update
000465110000-006: MappingsSpecpublic2020-04-21 16:08
Reporterjpfr Assigned ToRandy Armstrong  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionreopened 
Summary0004651: DataValue encoding mask bits with zero timestamps
Description

Part 6, 5.2.2.17, Table 17 says the following about the encoding mask of DataValue types:

0x01 False if the Value is Null.
0x02 False if the StatusCode is Good.
0x04 False if the Source Timestamp is DateTime.MinValue.
0x08 False if the Server Timestamp is DateTime.MinValue.
0x10 False if the Source Picoseconds is 0.
0x20 False if the Server Picoseconds is 0.

In applications that care about picoseconds (e.g. physics), there is a big difference between
not measuring picoseconds at all
and
having measured zero picoseconds.
But this difference is lost in the encoding.

This has come up since it was proposed to "throw out" picosecond information in our encoder if zero picoseconds are measured.
https://github.com/open62541/open62541/pull/2534
In accordance with the current spec we would have to do this.

As a solution, we propose the following change to table 17:

0x01 False if the Value is Null.
0x02 False if the StatusCode is Good.
0x04 False if no Source Timestamp is defined.
0x08 False if no Server Timestamp is defined.
0x10 False if no Source Picoseconds is defined.
0x20 False if no Server Picoseconds is defined.

Should be 100% compatible with the existing decoders.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Randy Armstrong

2019-04-06 05:25

administrator   ~0010139

Changed text in Table 16 in OPC UA Part 6 - Mappings Draft 1.05.06 Specification.docx

jpfr

2019-04-14 19:43

reporter   ~0010191

Only the pico-seconds definition has been changed.
The following definitions were left unchanged:

0x04 False if the Source Timestamp is DateTime.MinValue.
0x08 False if the Server Timestamp is DateTime.MinValue.

To be consistent between pico-seconds and the normal timestamps, the following wording could be used.

0x04 False if the Source Timestamp is not present.
0x08 False if the Server Timestamp is not present.

Randy Armstrong

2020-03-20 22:14

administrator   ~0011800

Fixed as suggested.

Jim Luth

2020-04-21 16:08

administrator   ~0011958

Agreed to text in telecon.

Issue History

Date Modified Username Field Change
2019-03-04 17:48 jpfr New Issue
2019-04-06 05:25 Randy Armstrong Assigned To => Randy Armstrong
2019-04-06 05:25 Randy Armstrong Status new => resolved
2019-04-06 05:25 Randy Armstrong Resolution open => fixed
2019-04-06 05:25 Randy Armstrong Note Added: 0010139
2019-04-14 19:43 jpfr Status resolved => feedback
2019-04-14 19:43 jpfr Resolution fixed => reopened
2019-04-14 19:43 jpfr Note Added: 0010191
2019-06-25 17:00 Jim Luth Status feedback => assigned
2020-03-20 22:14 Randy Armstrong Status assigned => resolved
2020-03-20 22:14 Randy Armstrong Note Added: 0011800
2020-04-21 16:08 Jim Luth Status resolved => closed
2020-04-21 16:08 Jim Luth Fixed in Version => 1.05
2020-04-21 16:08 Jim Luth Note Added: 0011958