1 Reply Latest reply on Dec 5, 2018 11:05 PM by Brian Moore

    code39 barcode issues

    Kishor PV

      Issue description:


      we get incidents on a regular basis from stores that seems the device scanners sometime decode the back room locations incorrectly. It is usually a character that is misinterpreted as the examples below sent by stores indicate. We haven’t been able to reproduce this in our lab environment. Could you please run it by your internal teams to see if they have any ideas or have seen reports from other customers? Looks in 2015 the scanners on PDA exhibited similar behaviors but it seems no one remembers how it was fixed. This is an urgent matter and is causing issues for backstocking in stores so any help is greatly appreciated. Thanks. 


      Scanned “L01A004E29”

      Read as: “L01A004F29”

      Misread “E” as “F”


      Scanned “01A10J28”

      Read as  “01E10J28”

      Misread “A” as “E”


      Based on our old emails we found that we were advised to set the below settings for PDA's, I'm trying to set same set of attributes(redundancy as all thrice, bidirectional as true flag) for TC51 and TC56.



      My Code to support the above window:


      ScannerConfig config = scanner.getConfig();

      config.decoderParams.code39.length1 = 8;

      config.decoderParams.code39.length2 = 24;

      config.decoderParams.code39.redundancy = true;

      config.readerParams.readerSpecific.laserSpecific.linearSecurityLevel = ScannerConfig.LinearSecurityLevel.ALL_THRICE;


      Please advise about my changes  and let me know if there are any performance issues with ALL_THRICE setting as the document says  - Three times read redundancy for all bar codes.


      Let me know if you need any other information.



        • Re: code39 barcode issues
          Brian Moore



          Enabling ALL_THRICE does have a small performance penalty. By default the scanner will read twice before returning a value. Setting ALL_THRICE change the scanner to read three times before returning a result.


          Another thing to note, the sample code you have provided is setting the laserSpecific settings. TC51 and TC56 use an imager scanner, the correct setting should be imagerSpecific.


          If you have control over the barcodes themselves, you can add a check digit and enable the code39.verifyCheckDigit setting. This will perform a basic checksum and help prevent the issue you are seeing with misidentified characters.



          Brian Moore

          Software Engineer Kutir Mobility

          Posted on behalf of Zebra Technologies