3 Replies Latest reply on Mar 15, 2019 3:45 AM by Denis Davidek

    TC51 doesn't work with Interleaved 2of5 codes

    Denis Davidek

      Hello everyone,


      I have been following tutorials and samples for EMDK for Android 7.0. I am developing an application for one of my clients and that application must be able to scan Interlaved 2of5 codes. Unfortunately no matter what I write, setting up decoders in next function doesn't work. Here is how I initialize scanner(code is written in the Kotlin language):


      private fun initializeScanner() {

         if (scanner == null) {


         scanner = barcodeManager.getDevice(BarcodeManager.DeviceIdentifier.DEFAULT)// INTERNAL_IMAGER1)


         scanner?.triggerType = Scanner.TriggerType.HARD





         startRead = true




      and setting the decoders for the scanner:



      private fun setDecoders() {

         if (scanner != null) {

         try {

         val config = scanner?.getConfig()



        config?.decoderParams?.chinese2of5?.enabled = true
         config?.decoderParams?.matrix2of5?.enabled = true
         config?.decoderParams?.d2of5?.enabled = true

         config?.decoderParams?.i2of5?.enabled = true
         /* config?.decoderParams?.i2of5?.convertToEan13 = false*/
         config?.decoderParams?.i2of5?.length1 = 0
         config?.decoderParams?.i2of5?.length2 = 18
         config?.decoderParams?.i2of5?.reducedQuietZone = false
         config?.decoderParams?.i2of5?.redundancy = true
         config?.decoderParams?.i2of5?.reportCheckDigit = false
         config?.decoderParams?.i2of5?.verifyCheckDigit = ScannerConfig.CheckDigitType.NO
         config?.decoderParams?.i2of5?.securityLevel = ScannerConfig.SecurityLevel.LEVEL_1

         // Set EAN8
         config?.decoderParams?.ean8?.enabled = true
         // Set EAN13
         config?.decoderParams?.ean13?.enabled = true

         config?.decoderParams?.gs1QrCode?.enabled = true
        config?.decoderParams?.gs1Datamatrix?.enabled = true


        } catch (e: ScannerException) {






      When I try to test the scanner on TC51, then scanning EAN8,13 and gs1 code works. Unfortunately, if I for example set ean8?.enabled = false, then after rebuild and rerun the application, I am still able to scan EAN8 codes. When I set the i2of5?.enabled to either true or false I am not able to scan Interleaved2of5 codes on the TC51 device.


      I am running EMDK for Android 7.0.0

      and TC 51 device with Android Nougat 7.1.2


      What should I do to enable scanning of Interleaved2of5 codes  and why setting up decoders doesn't have any effect on the device?

      Can you help me please?


      Thanks in advance.