mbeckerle commented on a change in pull request #245: Added X-DFDL-5-BIT-DFI-1661-DUI-001 char encoding URL: https://github.com/apache/incubator-daffodil/pull/245#discussion_r297259993
########## File path: daffodil-io/src/main/scala/org/apache/daffodil/processors/charset/X_DFDL_MIL_STD.scala ########## @@ -43,7 +43,15 @@ object BitsCharset6BitDFI264DUI001 extends { object BitsCharset6BitDFI311DUI002 extends { override val name = "X-DFDL-6-BIT-DFI-311-DUI-002" override val bitWidthOfACodeUnit = 6 - override val decodeString = """\u00A0ABCDEFGHIJKLMNOPQRSTuVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0123456789\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD""" + override val decodeString = """\u00A0ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0123456789\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD""" + override val replacementCharCode = 0x0 + override val requiredBitOrder = BitOrder.LeastSignificantBitFirst +} with BitsCharsetNonByteSize + +object BitsCharset5BitDFI1661DUI001 extends { + override val name = "X-DFDL-5-BIT-DFI-1661-DUI-001" + override val bitWidthOfACodeUnit = 5 + override val decodeString = """\u00A0ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD""" Review comment: Yup, a byteOrder "RTL-per-line" feature that splits the data at line boundaries, then interprets each line as a documentPart with byteOrder "RTL". That might be more natural for people to use. The "RTL" feature was added specifically to make it possible to directly put a table from mil-std-2045 directly into a test case. E.g., see tests - testMIL2045_47001D_Page70_TableB_I - testMIL2045_47001D_Page70_TableB_I_with_string in the daffodil-tdml-unittest module. You may find the style they use helpful given you are dealing with formats which are mixtures of bit fields and these 5, 6, and 7 bit character set strings. They make good use of the fact that only 0 and 1 are interpreted as contributing bits to the result, but you'll notice they have one documentPart per line for exactly the reasons expected - we want RTL, not bottom to top. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services