Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [PLEASE HELP] how to make a barcode receiver?
Forum Updated to NodeBB v4.3 + New Features

[PLEASE HELP] how to make a barcode receiver?

Scheduled Pinned Locked Moved Solved General and Desktop
57 Posts 9 Posters 14.4k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Pablo J. RoginaP Pablo J. Rogina

    @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

    at any time and under any condition when the barcode scanner hardware detetect any barcaode it will do_something()

    You've changed the requirements :-)
    In this case I'd say you need to change the barcode driver, and work at a lower level than Qt... so the driver code instead of pasting the decoded text/numbers into the keyboard buffer does some kind of notification that your application can trap. But it looks like that work it's out of scope for Qt framework

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #16

    @Pablo-J.-Rogina said in [PLEASE HELP] how to make a barcode receiver?:

    at any time and under any condition when the barcode scanner hardware detetect any barcaode it will do_something()

    Can't your barcode scanner just write to a string and you then put it in the correct line edit?

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    ? 1 Reply Last reply
    0
    • jsulmJ jsulm

      @Pablo-J.-Rogina said in [PLEASE HELP] how to make a barcode receiver?:

      at any time and under any condition when the barcode scanner hardware detetect any barcaode it will do_something()

      Can't your barcode scanner just write to a string and you then put it in the correct line edit?

      ? Offline
      ? Offline
      A Former User
      wrote on last edited by A Former User
      #17

      @jsulm
      yes it write to a string
      but it cannot put this string in the correct line edit
      and what if a button is selected
      0_1534367535920_542f4758-8857-46ef-8892-598bb52a2f78-image.png
      not line edit

      jsulmJ 1 Reply Last reply
      0
      • ? A Former User

        @jsulm
        yes it write to a string
        but it cannot put this string in the correct line edit
        and what if a button is selected
        0_1534367535920_542f4758-8857-46ef-8892-598bb52a2f78-image.png
        not line edit

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #18

        @davidlabib To put a string into a line edit this line edit does not need to have focus!
        Simply:

        ui->lineEdit_1->setText(someText);
        

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        Pablo J. RoginaP 1 Reply Last reply
        0
        • jsulmJ jsulm

          @davidlabib To put a string into a line edit this line edit does not need to have focus!
          Simply:

          ui->lineEdit_1->setText(someText);
          
          Pablo J. RoginaP Offline
          Pablo J. RoginaP Offline
          Pablo J. Rogina
          wrote on last edited by Pablo J. Rogina
          #19

          @jsulm I think his problem is at a lower level, not just set the "text" for the proper line edit.

          Most barcode reader drivers mimic the keyboard, so when they scan something they place the data read like the keyboard, and SO is facing the issue that if focus is with another widget, not the line edit, if a scan is done that data will go there, or as his last example with the button, lost.

          Upvote the answer(s) that helped you solve the issue
          Use "Topic Tools" button to mark your post as Solved
          Add screenshots via postimage.org
          Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

          1 Reply Last reply
          0
          • ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #20

            @Pablo-J-Rogina

            @Pablo-J.-Rogina said in [PLEASE HELP] how to make a barcode receiver?:

            Most barcode reader drivers mimic the keyboard, so when they scan something they place the data read like the keyboard, and SO is facing the issue that if focus is with another widget, not the line edit, if a scan is done that data will go there, or as his last example with the button, lost.

            that's exactly what I'm talking about
            You completely understand me

            but i don't think that it's a lower level problem
            i think that making thread always waiting for input 13 digit --any right barcode in the world contain 13 digit-- less than 1 second
            if the input was 13 digit and inputted less than a second then it's a barcode and deal with it as a barcode
            else what for input again

            Pablo J. RoginaP 1 Reply Last reply
            0
            • ? A Former User

              @Pablo-J-Rogina

              @Pablo-J.-Rogina said in [PLEASE HELP] how to make a barcode receiver?:

              Most barcode reader drivers mimic the keyboard, so when they scan something they place the data read like the keyboard, and SO is facing the issue that if focus is with another widget, not the line edit, if a scan is done that data will go there, or as his last example with the button, lost.

              that's exactly what I'm talking about
              You completely understand me

              but i don't think that it's a lower level problem
              i think that making thread always waiting for input 13 digit --any right barcode in the world contain 13 digit-- less than 1 second
              if the input was 13 digit and inputted less than a second then it's a barcode and deal with it as a barcode
              else what for input again

              Pablo J. RoginaP Offline
              Pablo J. RoginaP Offline
              Pablo J. Rogina
              wrote on last edited by
              #21

              @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

              always waiting for input 13 digit --any right barcode in the world contain 13 digit

              Be careful with this assumption, think of EAN 8 for instance...

              Like the UPC code, there is the EAN-13 symbology with 13 digits, and an abbreviated EAN barcode called the EAN-8 with only 8 digits for smaller goods where space is limited.

              Upvote the answer(s) that helped you solve the issue
              Use "Topic Tools" button to mark your post as Solved
              Add screenshots via postimage.org
              Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

              1 Reply Last reply
              2
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #22

                @Pablo-J-Rogina thanks for the warning
                @mrjj take a look here i think you faced this type of problems
                https://forum.qt.io/topic/71310/reading-barcode-from-barcode-scanner

                mrjjM Pablo J. RoginaP 2 Replies Last reply
                0
                • ? A Former User

                  @Pablo-J-Rogina thanks for the warning
                  @mrjj take a look here i think you faced this type of problems
                  https://forum.qt.io/topic/71310/reading-barcode-from-barcode-scanner

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by mrjj
                  #23

                  @davidlabib

                  Yes, that very normal issues when using a
                  scanner in HID mode so it acts like a keyboard.

                  I usually put a button next to input that says scan and it popup dialog
                  to do the scanning in.

                  There is no easy solution to what you try. as unless NOTHING else can have focus. ( you can disable focus for buttons) then user might switch to other edit fields.

                  Often scanner input is terminated with \n\r or similar- check the documentation
                  for the scanner.

                  1 Reply Last reply
                  3
                  • ? A Former User

                    @Pablo-J-Rogina thanks for the warning
                    @mrjj take a look here i think you faced this type of problems
                    https://forum.qt.io/topic/71310/reading-barcode-from-barcode-scanner

                    Pablo J. RoginaP Offline
                    Pablo J. RoginaP Offline
                    Pablo J. Rogina
                    wrote on last edited by
                    #24

                    @davidlabib I did some grocery shopping yesterday, and looking at the point of sale software the clerk used when I checked out, and also thinking about the shopping cart and checkout process in websites, I wonder why do you need this "always on" scanning phase?

                    I mean, maybe you're overcomplicating your requirements. Do you really have such use case from an actual user/customer of your application?

                    While checking out most of the software overthere that I remember have some steps/phases:

                    1. Initial data (optional)
                    2. 1-N items scanning (using barcode reader!!) so focus is there for just one widget (a list where scanned items are added, or a line edit where you click a "Add" button, whatever)
                    3. When you are ready (by self-checkout or a clerk helping you) a "Proceeed to checkout" button move to next phase, i.e. Delivery information or just Payment (at this point if credit card is read, again focus is only for reading the credit card data)
                    4. "Finish" button to print receipt and move into next customer...

                    Is your use case completely different from this scenario? if so, why!?

                    Upvote the answer(s) that helped you solve the issue
                    Use "Topic Tools" button to mark your post as Solved
                    Add screenshots via postimage.org
                    Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                    1 Reply Last reply
                    2
                    • ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #25

                      the only payment method is cash only (for now), so we can skip 3

                      It's not very require to make focus when the barcode input something but i thought that it will be a good extra feature in the application

                      mrjjM raven-worxR 2 Replies Last reply
                      0
                      • ? A Former User

                        the only payment method is cash only (for now), so we can skip 3

                        It's not very require to make focus when the barcode input something but i thought that it will be a good extra feature in the application

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #26

                        @davidlabib
                        Hi
                        The complication of trying to guess if its user typing or scanner input
                        can be complicated. While often a scan is terminated with same
                        symbols, you first know later if scan or keypress and hence
                        makes it complicated to handle.

                        So its actually complicated to make work flawless and hence a
                        straight way of saying for user. "I want to scan" is often preferred.
                        As it avoid confusing and guessing.

                        1 Reply Last reply
                        0
                        • ? A Former User

                          the only payment method is cash only (for now), so we can skip 3

                          It's not very require to make focus when the barcode input something but i thought that it will be a good extra feature in the application

                          raven-worxR Offline
                          raven-worxR Offline
                          raven-worx
                          Moderators
                          wrote on last edited by raven-worx
                          #27

                          @davidlabib
                          just a note:
                          Some barcode scanners have different modes. One mode is "keyboard" mode (like you are using it now) and another can be via the serial interface. The later would let you use QtSerialPort module to receive the scanned code in plain text.
                          Those modes can be switched by scanning a special barcode. Take a look at the scanners manual.

                          --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                          If you have a question please use the forum so others can benefit from the solution in the future

                          ? 1 Reply Last reply
                          4
                          • raven-worxR raven-worx

                            @davidlabib
                            just a note:
                            Some barcode scanners have different modes. One mode is "keyboard" mode (like you are using it now) and another can be via the serial interface. The later would let you use QtSerialPort module to receive the scanned code in plain text.
                            Those modes can be switched by scanning a special barcode. Take a look at the scanners manual.

                            ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #28

                            @raven-worx
                            0_1534682994843_f52d64be-c499-4ed8-8c2d-61bd38a1de84-image.png
                            0_1534683017626_314576f9-6b75-42fd-b9a7-8124961e7757-image.png
                            0_1534683048600_4b9a11df-1307-42af-9058-f90b71a6a88b-image.png
                            0_1534683072140_89cd40a7-8a36-49d8-92ab-78edd63f4b99-image.png
                            0_1534683090490_c9b50133-170b-49a0-8fea-138ae9c73956-image.png
                            0_1534683117128_9f977db8-5b6e-40e8-8f77-80814053f964-image.png
                            can you help me on setting the right mod and use QtSerialPort

                            JKSHJ raven-worxR 2 Replies Last reply
                            0
                            • ? A Former User

                              @raven-worx
                              0_1534682994843_f52d64be-c499-4ed8-8c2d-61bd38a1de84-image.png
                              0_1534683017626_314576f9-6b75-42fd-b9a7-8124961e7757-image.png
                              0_1534683048600_4b9a11df-1307-42af-9058-f90b71a6a88b-image.png
                              0_1534683072140_89cd40a7-8a36-49d8-92ab-78edd63f4b99-image.png
                              0_1534683090490_c9b50133-170b-49a0-8fea-138ae9c73956-image.png
                              0_1534683117128_9f977db8-5b6e-40e8-8f77-80814053f964-image.png
                              can you help me on setting the right mod and use QtSerialPort

                              JKSHJ Offline
                              JKSHJ Offline
                              JKSH
                              Moderators
                              wrote on last edited by
                              #29

                              @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

                              can you help me on setting the right mod and use QtSerialPort

                              If you want to use Qt Serial Port, choose the RS-232 option. You will also need to connect the barcode scanner to a serial port on your computer.

                              Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                              ? 1 Reply Last reply
                              2
                              • ? A Former User

                                @raven-worx
                                0_1534682994843_f52d64be-c499-4ed8-8c2d-61bd38a1de84-image.png
                                0_1534683017626_314576f9-6b75-42fd-b9a7-8124961e7757-image.png
                                0_1534683048600_4b9a11df-1307-42af-9058-f90b71a6a88b-image.png
                                0_1534683072140_89cd40a7-8a36-49d8-92ab-78edd63f4b99-image.png
                                0_1534683090490_c9b50133-170b-49a0-8fea-138ae9c73956-image.png
                                0_1534683117128_9f977db8-5b6e-40e8-8f77-80814053f964-image.png
                                can you help me on setting the right mod and use QtSerialPort

                                raven-worxR Offline
                                raven-worxR Offline
                                raven-worx
                                Moderators
                                wrote on last edited by raven-worx
                                #30

                                @davidlabib
                                use the very first code (RS232).
                                Then check the COM port of the scanner it is connected to (e.g. on Windows in the Device Manager).

                                in your .pro file add QT += serialport

                                QSerialPort example usage:

                                QSerialPort* port = new QSerialPort( this );
                                port->setBaudRate( QSerialPort::Baud115200 ); // possible something else, also check the manual
                                port->setPort( QPortInfo("COM4") ); // COM port - check Device Manager for connected port
                                if( port->open(QSerialPort::ReadOnly) )
                                {
                                        connect(port, &QSerialPort::readyRead, this, [port]() {
                                              if( !port->bytesAvailable() )
                                                   return;
                                              const QByteArray scannedData = port->readAll();
                                              // ...
                                        });
                                }
                                else
                                {
                                    // check port->error()
                                }
                                

                                --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                                If you have a question please use the forum so others can benefit from the solution in the future

                                ? 1 Reply Last reply
                                5
                                • JKSHJ JKSH

                                  @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

                                  can you help me on setting the right mod and use QtSerialPort

                                  If you want to use Qt Serial Port, choose the RS-232 option. You will also need to connect the barcode scanner to a serial port on your computer.

                                  ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #31

                                  @JKSH is it must came from serial port not usb?

                                  JKSHJ 1 Reply Last reply
                                  0
                                  • ? A Former User

                                    @JKSH is it must came from serial port not usb?

                                    JKSHJ Offline
                                    JKSHJ Offline
                                    JKSH
                                    Moderators
                                    wrote on last edited by
                                    #32

                                    @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

                                    is it must came from serial port not usb?

                                    Qt Serial Port works with serial ports. A USB port is not a serial port.

                                    If your computer doesn't have a serial port, you can use a USB-to-serial converter.

                                    Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                                    mrjjM raven-worxR 2 Replies Last reply
                                    4
                                    • JKSHJ JKSH

                                      @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

                                      is it must came from serial port not usb?

                                      Qt Serial Port works with serial ports. A USB port is not a serial port.

                                      If your computer doesn't have a serial port, you can use a USB-to-serial converter.

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #33

                                      @JKSH
                                      Hi
                                      this mode, i wonder if
                                      alt text

                                      does not install a virtual comport and allows to use usb connection much like
                                      serial over USB converter. just without the converter.

                                      What do you think ? ( purely guessing here)

                                      1 Reply Last reply
                                      3
                                      • JKSHJ JKSH

                                        @davidlabib said in [PLEASE HELP] how to make a barcode receiver?:

                                        is it must came from serial port not usb?

                                        Qt Serial Port works with serial ports. A USB port is not a serial port.

                                        If your computer doesn't have a serial port, you can use a USB-to-serial converter.

                                        raven-worxR Offline
                                        raven-worxR Offline
                                        raven-worx
                                        Moderators
                                        wrote on last edited by
                                        #34

                                        @JKSH said in [PLEASE HELP] how to make a barcode receiver?:

                                        Qt Serial Port works with serial ports. A USB port is not a serial port.

                                        thats not true. Of course QtSerialPort works with USB.
                                        USB = Universal Serial Bus

                                        The code above i've posted definitively works with a USB Barcode scanner and i used it myself already.

                                        --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                                        If you have a question please use the forum so others can benefit from the solution in the future

                                        K 1 Reply Last reply
                                        1
                                        • raven-worxR raven-worx

                                          @davidlabib
                                          use the very first code (RS232).
                                          Then check the COM port of the scanner it is connected to (e.g. on Windows in the Device Manager).

                                          in your .pro file add QT += serialport

                                          QSerialPort example usage:

                                          QSerialPort* port = new QSerialPort( this );
                                          port->setBaudRate( QSerialPort::Baud115200 ); // possible something else, also check the manual
                                          port->setPort( QPortInfo("COM4") ); // COM port - check Device Manager for connected port
                                          if( port->open(QSerialPort::ReadOnly) )
                                          {
                                                  connect(port, &QSerialPort::readyRead, this, [port]() {
                                                        if( !port->bytesAvailable() )
                                                             return;
                                                        const QByteArray scannedData = port->readAll();
                                                        // ...
                                                  });
                                          }
                                          else
                                          {
                                              // check port->error()
                                          }
                                          
                                          ? Offline
                                          ? Offline
                                          A Former User
                                          wrote on last edited by
                                          #35

                                          @raven-worx
                                          0_1534947972491_3255bdcc-2942-41cb-986a-e4f1bb6adf9c-image.png
                                          I'm using ubuntu now

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved