8 Replies Latest reply on Dec 2, 2015 1:30 AM by Wolfram Gierling

    Why does TC55 (imager) not return from scanning?

    Wolfram Gierling

      Hi all,


      we have 2 TC55 devices, one with a 1-D scanner, the other with a 2-D imager. We run the BasicScanningTutorial on both devices. The 1-D scanner device works as expected. On the 2-D imager device, we scan a Barcode once. Then the status "Scanning..." is displayed and the device does not return from this status. If I ignore the isScanning flag in the code, "Already scanning. Wait for current scanning to complete." is displayed. (If I turn the device, the scanner is idle again.presumably, because the activity is stopped and restarted.)

      Any idea, what's wrong with the 2-D imager device?



        • Re: Why does TC55 (imager) not return from scanning?
          Pietro Maggi

          Hi Wolfram,

          few questions for you.

          1. Are the two TC55 using the same BSP? which is the version installed on the two devices?
          2. Which EMDK version are you using?
          3. Have you installed on both devices the same EMDK runtime?
          4. Can you post the binary and, if possible, the source of the version of the BasicScanning Tutorial you're using?


          Following the published tutorial:

          Basic Scanning Tutorial using Barcode API


          I've seen in the past that it was required to add a sleep(100) instruction before the scanner.read() call to avoid scanner freeze similar to what you described.

          The sleep call is included in the sample provided with the EMDK.


          Personally, I've modified the BarcodeScanning Tutorial code for the IDLE state in this way:


          case IDLE:
               statusStr = "The scanner enabled and its idle";
               // Start an async scan
               try {
                   // An attempt to use the scanner continuously and rapidly (with a delay < 100 ms between scans)
                   // may cause the scanner to pause momentarily before resuming the scanning.
                   // Hence add some delay (>= 100ms) before submitting the next read.
                   try {
                   } catch (InterruptedException e) {
               } catch (ScannerException e) {
                   statusStr = e.getMessage();