Mike Beckerle created DAFFODIL-2689:
---------------------------------------

             Summary: Asterix format uses DFDL disallowed 4th combination of 
byte order and bit order
                 Key: DAFFODIL-2689
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2689
             Project: Daffodil
          Issue Type: New Feature
          Components: Back End, Front End
    Affects Versions: 3.3.0
            Reporter: Mike Beckerle
         Attachments: image-2022-04-13-11-10-28-938.png

The Asterix CAT 034 message uses byteOrder bigEndian but bit order 
leastSignificantBitFirst for numbers that span bytes. For example they describe 
an 11-bit integer in this way:

!image-2022-04-13-11-10-28-938.png!

In this picture you can see they are numbering the bits from the right, 
leastSignificantBitFirst starting from 1. But the COUNTER field spans all of 
Octet 3, but also includes the least significant 3 bits of Octet 2. In those 
least significant 3 bits are the most significant (numerically) 3 bits of the 
11 bit COUNTER integer, so this is bigEndian byte order, but 
leastSignificantBitFirst bit order.

The DFDL standard does not allow this combination of bitOrder and byteOrder, as 
there was no known documented use case at the time the new bitOrder property 
was added to the DFDL specification. It was however, proposed that it was 
likely this combination would be needed, and here is a well-documented use 
case. 

So Daffodil should lift this restriction and allow this combination.

The workaround in the mean time is to parse this counter as two separate 
integers, one 3 bits and one 8 bits, and use an inputValueCalc expression to 
compute a field with the expected value. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to