question

Upvotes
Accepted
791 10 10 16

Impact of Dictionary Fields changed from 32bit to 64bit?

Hi

We've moved new development to UPA, but we still need to support some of our older product versions that use RSSL 1.3.0 F37.

One of our users is moving from RDMFieldDictionary version 4.00.10 to 4.20.01.

They have noticed that a lot of field definitions have changed types:

REAL32->REAL64

UINT32->UINT64

They want to know if those RDMFieldDictionary changes could cause any problems if they do not change their own code to use 64-bit types. They use our code, which encodes 32-bit values as REAL32. They would like to avoid changing all of those to 64-bit values. )

More specifically: what happens if their output [with RSSL 1.3.0 F37] is encoded as REAL32, but the downstream user (with the newer RDMFieldDictionary) decodes it as REAL64?

Will it decode successfully?

Will it work, but with possibly bad data? Or will it fail spectacularly (eg, crash)?

elektronelektron-sdkrrteta-apielektron-transport-apirdm
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Upvotes
Accepted
322 9 14 16

The good news is that what you are trying to do is safe.

Encoding as the smaller type (Real32/UInt32/Int32) and decoding as the larger type (Real64/UInt64/Int64) will always succeed because the larger type is encoded/decoded in the same way and can represent all of the values of the smaller type.

The only area where the changes in the dictionary may be noticed is if you have an app encoding the content as a Real64/Int64/UInt64 and an older app trying to decode this as a Real32/Int32/UInt32. In this case, the decoding app will see a failure code for any content that exceeds what it can represent. This is not the case you are encountering, but I wanted to mention it in case it may impact any older test tools that may connect to newer versions of your code that you have changed.

When moving to UPA (as you have likely seen), there are no longer two types for these relationships. UPA only exposes an RsslReal construct and it is always 64 bit. Only older, internal versions exposed RsslReal32 and RsslReal64. At some point when the older code is migrated to UPA it may have to make changes to accommodate for this.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.