From e024573905c7c8c1bf4d123618146caabfd4989b Mon Sep 17 00:00:00 2001 From: Henry Schimke Date: Sat, 28 Jan 2023 18:33:58 -0600 Subject: [PATCH] several backported fixes (some are not supported and are not included in tests) --- src/common/eci_string_builder.rs | 4 +--- .../decoder/decoded_bit_stream_parser.rs | 2 +- .../blackbox/datamatrix-1/readerinit.png | Bin 0 -> 132 bytes .../blackbox/datamatrix-1/readerinit.result.txt | 2 ++ .../blackbox/datamatrix-1/readerinit.txt | 1 + tests/datamatrix_black_box_test_cases.rs | 8 ++++---- 6 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 test_resources/blackbox/datamatrix-1/readerinit.png create mode 100644 test_resources/blackbox/datamatrix-1/readerinit.result.txt create mode 100644 test_resources/blackbox/datamatrix-1/readerinit.txt diff --git a/src/common/eci_string_builder.rs b/src/common/eci_string_builder.rs index 1ce1fb8..cdf6ca8 100644 --- a/src/common/eci_string_builder.rs +++ b/src/common/eci_string_builder.rs @@ -106,9 +106,7 @@ impl ECIStringBuilder { pub fn appendECI(&mut self, value: u32) -> Result<(), Exceptions> { self.encodeCurrentBytesIfAny(); let character_set_eci = CharacterSetECI::getCharacterSetECIByValue(value)?; - // if (character_set_eci == null) { - // throw FormatException.getFormatInstance(); - // } + self.current_charset = CharacterSetECI::getCharset(&character_set_eci); Ok(()) } diff --git a/src/datamatrix/decoder/decoded_bit_stream_parser.rs b/src/datamatrix/decoder/decoded_bit_stream_parser.rs index 523b4da..b06fc5d 100644 --- a/src/datamatrix/decoder/decoded_bit_stream_parser.rs +++ b/src/datamatrix/decoder/decoded_bit_stream_parser.rs @@ -688,7 +688,7 @@ fn decodeECISegment(bits: &mut BitSource, result: &mut ECIStringBuilder) -> Resu let secondByte = bits.readBits(8)?; if firstByte <= 191 { - return result.appendECI(firstByte - 1); + return result.appendECI((firstByte - 128) * 254 + 127 + secondByte - 1); } let thirdByte = bits.readBits(8)?; diff --git a/test_resources/blackbox/datamatrix-1/readerinit.png b/test_resources/blackbox/datamatrix-1/readerinit.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb3823bb11aa8dcaa12fd1fd7c7cf7c76d9b8ee GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@O3?%wE c%Ta=Zfwf#twNm$pHP8?SPgg&ebxsLQ0KK&;0{{R3 literal 0 HcmV?d00001 diff --git a/test_resources/blackbox/datamatrix-1/readerinit.result.txt b/test_resources/blackbox/datamatrix-1/readerinit.result.txt new file mode 100644 index 0000000..b3503a6 --- /dev/null +++ b/test_resources/blackbox/datamatrix-1/readerinit.result.txt @@ -0,0 +1,2 @@ +symbologyIdentifier=]d1 +readerInit=true diff --git a/test_resources/blackbox/datamatrix-1/readerinit.txt b/test_resources/blackbox/datamatrix-1/readerinit.txt new file mode 100644 index 0000000..32dd1e2 --- /dev/null +++ b/test_resources/blackbox/datamatrix-1/readerinit.txt @@ -0,0 +1 @@ +$I \ No newline at end of file diff --git a/tests/datamatrix_black_box_test_cases.rs b/tests/datamatrix_black_box_test_cases.rs index e84eb09..94836ba 100644 --- a/tests/datamatrix_black_box_test_cases.rs +++ b/tests/datamatrix_black_box_test_cases.rs @@ -29,10 +29,10 @@ fn data_matrix_black_box1_test_case() { rxing::BarcodeFormat::DATA_MATRIX, ); // super("src/test/resources/blackbox/datamatrix-1", new MultiFormatReader(), BarcodeFormat.DATA_MATRIX); - tester.add_test(27, 28, 0.0); - tester.add_test(21, 26, 90.0); - tester.add_test(21, 26, 180.0); - tester.add_test(21, 26, 270.0); + tester.add_test(27, 27, 0.0); + tester.add_test(21, 25, 90.0); + tester.add_test(21, 25, 180.0); + tester.add_test(21, 25, 270.0); tester.test_black_box(); }