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. Inconsistent behavior of QSerialPort on Debian
Forum Update on Monday, May 27th 2025

Inconsistent behavior of QSerialPort on Debian

Scheduled Pinned Locked Moved Unsolved General and Desktop
qtserialportlinuxescpos
23 Posts 3 Posters 7.7k Views
  • 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.
  • M Offline
    M Offline
    mrdebug
    wrote on 30 Jan 2016, 15:10 last edited by
    #8

    Can you try serial->setFlowControl(); none?
    I'm using QSerialPort intensively in Debian and I assure it's working perfectly.

    Need programmers to hire?
    www.labcsp.com
    www.denisgottardello.it
    GMT+1
    Skype: mrdebug

    1 Reply Last reply
    0
    • S Offline
      S Offline
      SGaist
      Lifetime Qt Champion
      wrote on 30 Jan 2016, 20:15 last edited by
      #9

      No QSerialPort and QextSerialPort are two different things.

      My question wasn't about having two applications running at the same time. Just if you had the possibility to test the communication with your printer with another application to ensure that the port parameters are correct and the port is working correctly.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • H Offline
        H Offline
        Hjunior
        wrote on 31 Jan 2016, 10:33 last edited by Hjunior
        #10

        Hmm, I see. Since it is a RS232 based printer i have no other program by this way. But it has linux driver to work with CUPS. I can test with it tomorrow and will post the results.

        Actually, i want to ask you about my design. I have a BaseSerialDevice class and QSerialPort is a private pointer stored in BaseSerialDevice.h and created in createPort@BaseSerialDevice.cpp.
        Then I have an EscPos class which extends BaseSerialDevice and calls createPort in constructor. I have 2 more classes extending the same BaseSerialDevice as same as EscPos. They working without any issue. At a time all of the 3 ports must be open and work. The other 2 has no problem. I checked the IRQs and tried several things but nothing changed. One more idea is they are all attached to MainWindow so they are in same thread. May this be the issue? Or is the setup issue? Or has QSerialPort a hidden bug?

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 31 Jan 2016, 20:40 last edited by
          #11

          From your description, are you opening the same port 3 times ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • H Offline
            H Offline
            Hjunior
            wrote on 1 Feb 2016, 07:48 last edited by Hjunior 2 Jan 2016, 10:17
            #12

            No friend they use base same class. The instances are set to use DIFFERENT PORTS as ttyS1,ttyS4,ttyS6

            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 3 Feb 2016, 22:05 last edited by
              #13

              All of them physical ports of your computer or converter like usb to serial ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              H 1 Reply Last reply 4 Feb 2016, 12:50
              0
              • S SGaist
                3 Feb 2016, 22:05

                All of them physical ports of your computer or converter like usb to serial ?

                H Offline
                H Offline
                Hjunior
                wrote on 4 Feb 2016, 12:50 last edited by
                #14

                @SGaist Yes all of them are phsical ports of my computer. NO usb to serial.

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 4 Feb 2016, 20:29 last edited by
                  #15

                  Does it also happen if you change devices e.g. exchange the devices from ttyS1 and ttyS6.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  H 1 Reply Last reply 15 Feb 2016, 08:12
                  0
                  • S SGaist
                    4 Feb 2016, 20:29

                    Does it also happen if you change devices e.g. exchange the devices from ttyS1 and ttyS6.

                    H Offline
                    H Offline
                    Hjunior
                    wrote on 15 Feb 2016, 08:12 last edited by
                    #16

                    @SGaist No difference.

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 15 Feb 2016, 21:50 last edited by
                      #17

                      Does the devies need the DTR to be set ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      H 1 Reply Last reply 21 Feb 2016, 14:05
                      0
                      • S SGaist
                        15 Feb 2016, 21:50

                        Does the devies need the DTR to be set ?

                        H Offline
                        H Offline
                        Hjunior
                        wrote on 21 Feb 2016, 14:05 last edited by
                        #18

                        @SGaist Yes the device uses Hardware flow control and in the technical manual says it uses DTR/DSR.

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on 21 Feb 2016, 20:37 last edited by
                          #19

                          Silly question but, did you set DTR in your application ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          0
                          • H Offline
                            H Offline
                            Hjunior
                            wrote on 12 May 2016, 14:23 last edited by
                            #20

                            Hello again,

                            I finally figured out how this occurs.

                            BaseSerialDevice.cpp

                            class BaseSerialDevice : public QObject
                            {
                                Q_OBJECT
                            ....
                            protected:
                                QSerialPort *serial;
                            ....
                            

                            Problematic.cpp

                            class Problematic : public BaseSerialDevice
                            {
                                Q_OBJECT
                            ...
                            

                            MainWindow.h

                            ...
                            private:
                                Problematic worksLikeACharm;
                            

                            Everything works as expected if defined as a NON-POINTER but if;
                            MainWindow.h

                            ...
                            private:
                                Problematic* notWorksSo;
                            

                            then in MainWindow.cpp's constructor:

                            notWorksSo = new Problematic(parent()); 
                            or 
                            notWorksSo = new Problematic(NULL); 
                            or 
                            notWorksSo = new Problematic;
                            

                            the problem occurs as defined at the start of this topic. And same situation occurs if we use QSocket as same architecture.

                            I tested it from scratch at least 6 times. Im sure of that case.

                            And Cant believe and cant understand why?

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on 12 May 2016, 20:04 last edited by
                              #21

                              And if you build it with Problematic(this) ?

                              When you don't pass it a parent, do you delete it in the destructor of your MainWindow ?

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              H 1 Reply Last reply 13 May 2016, 06:34
                              0
                              • S SGaist
                                12 May 2016, 20:04

                                And if you build it with Problematic(this) ?

                                When you don't pass it a parent, do you delete it in the destructor of your MainWindow ?

                                H Offline
                                H Offline
                                Hjunior
                                wrote on 13 May 2016, 06:34 last edited by
                                #22

                                @SGaist Hi.

                                I am tried with Problematic(this) no change. In case of no parent arg i tried with delete, but nothing changed.

                                I tried making it static as
                                MainWindow.h

                                static Problematic* notWorksSo;
                                

                                MainWindow.cpp

                                Problematic* MainWindow::notWorksSo = 0;
                                

                                then in constructor

                                notWorksSo = new Problematic(this); 
                                

                                NOTHING CHANGED.

                                Any ideas?

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  SGaist
                                  Lifetime Qt Champion
                                  wrote on 13 May 2016, 20:04 last edited by
                                  #23

                                  Without seeing the implementation of these classes I can't tell.

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  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