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 0000000..eeb3823 Binary files /dev/null and b/test_resources/blackbox/datamatrix-1/readerinit.png differ 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(); }