Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How can I see and storage the data from device in QT?
Qt 6.12 LTS is out! See what's new in the release blog

How can I see and storage the data from device in QT?

Scheduled Pinned Locked Moved Unsolved General and Desktop
28 Posts 5 Posters 10.3k 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.
  • jsulmJ jsulm

    @segtteee Then just go to the documentation: http://doc.qt.io/qt-5/qcombobox.html#currentText-prop
    Change

    mSerialport->setPortName("/dev/ttyUSB0");
    

    to

    mSerialport->setPortName(ui->comboBox->currentText()); // Change the name of the combobox if it's called differently in your code
    

    Really easy, isn't it? :-)

    S Offline
    S Offline
    segtteee
    wrote on last edited by
    #11

    @jsulm
    I modified the port name as you told me. I also changed baudrate and databite equally, but here I get an error.
    "" no matching function for call to ‘QSerialPort::setBaudRate(QString)’
    mSerialport->setBaudRate(ui->comboBox_baudrate->currentText()); ""
    Can I change only the port name?

    jsulmJ 1 Reply Last reply
    0
    • K Offline
      K Offline
      Kicer86
      wrote on last edited by
      #12

      @segtteee said in How can I see and storage the data from device in QT?:

      Can I change only the port name?

      If you want to hardcode all values in code, why do you put comboboxes in ui?

      1 Reply Last reply
      0
      • S segtteee

        @jsulm
        I modified the port name as you told me. I also changed baudrate and databite equally, but here I get an error.
        "" no matching function for call to ‘QSerialPort::setBaudRate(QString)’
        mSerialport->setBaudRate(ui->comboBox_baudrate->currentText()); ""
        Can I change only the port name?

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

        @segtteee See the documentation: http://doc.qt.io/qt-5/qserialport.html#baudRate-prop
        setBaudRate() takes an integer not a string.
        See again documentation to find out how to convert a string to an integer: http://doc.qt.io/qt-5/qstring.html#toInt

        mSerialport->setBaudRate(ui->comboBox_baudrate->currentText().toInt());
        

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

        S 1 Reply Last reply
        2
        • jsulmJ jsulm

          @segtteee See the documentation: http://doc.qt.io/qt-5/qserialport.html#baudRate-prop
          setBaudRate() takes an integer not a string.
          See again documentation to find out how to convert a string to an integer: http://doc.qt.io/qt-5/qstring.html#toInt

          mSerialport->setBaudRate(ui->comboBox_baudrate->currentText().toInt());
          
          S Offline
          S Offline
          segtteee
          wrote on last edited by
          #14

          @jsulm
          I understand that the port name is a string, and baudrate is a number, so toint is an integer, but databits is a number, why not toint? And paritybits is a character, but it should not be used.

          jsulmJ 1 Reply Last reply
          0
          • S segtteee

            @jsulm
            I understand that the port name is a string, and baudrate is a number, so toint is an integer, but databits is a number, why not toint? And paritybits is a character, but it should not be used.

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

            @segtteee said in How can I see and storage the data from device in QT?:

            databits is a number, why not toint?

            I don't understand. If it is a number then convert it to a number like baud rate.

            "And paritybits is a character, but it should not be used" - don't know what you mean. If it should not be used then don't use it.

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

            S 1 Reply Last reply
            2
            • jsulmJ jsulm

              @segtteee said in How can I see and storage the data from device in QT?:

              databits is a number, why not toint?

              I don't understand. If it is a number then convert it to a number like baud rate.

              "And paritybits is a character, but it should not be used" - don't know what you mean. If it should not be used then don't use it.

              S Offline
              S Offline
              segtteee
              wrote on last edited by
              #16

              @jsulm
              it mean
              port name = string so currentText()
              baud rate = integer so currentText().toint()

              data bits = integer so ??
              Is not the toint() correct for the data bits? but error occured

              jsulmJ 1 Reply Last reply
              0
              • S segtteee

                @jsulm
                it mean
                port name = string so currentText()
                baud rate = integer so currentText().toint()

                data bits = integer so ??
                Is not the toint() correct for the data bits? but error occured

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

                @segtteee Could you please show real code and the error message?
                DataBits is an enum, so you can do something like:

                DataBits dataBits;
                if (ui->dataBits.currentText() == "Data5")
                    dataBits = DataBits::Data5;
                else if ...
                

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

                S 1 Reply Last reply
                2
                • jsulmJ jsulm

                  @segtteee Could you please show real code and the error message?
                  DataBits is an enum, so you can do something like:

                  DataBits dataBits;
                  if (ui->dataBits.currentText() == "Data5")
                      dataBits = DataBits::Data5;
                  else if ...
                  
                  S Offline
                  S Offline
                  segtteee
                  wrote on last edited by
                  #18

                  @jsulm
                  alt text
                  alt text

                  jsulmJ 1 Reply Last reply
                  0
                  • S segtteee

                    @jsulm
                    alt text
                    alt text

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

                    @segtteee See my previous post

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

                    S 1 Reply Last reply
                    1
                    • jsulmJ jsulm

                      @segtteee See my previous post

                      S Offline
                      S Offline
                      segtteee
                      wrote on last edited by
                      #20

                      @jsulm

                      if (ui->comboBox_databits->currentText() == "Data8")
                      mSerialport->setDataBits("Data8") ;
                      error occured ..

                      jsulmJ 1 Reply Last reply
                      0
                      • S segtteee

                        @jsulm

                        if (ui->comboBox_databits->currentText() == "Data8")
                        mSerialport->setDataBits("Data8") ;
                        error occured ..

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

                        @segtteee First, please read what I write more carefully, second if you get an error please post it.
                        This is wrong:

                        if (ui->comboBox_databits->currentText() == "Data8")
                            mSerialport->setDataBits("Data8") ;
                        

                        As I wrote above setDataBits takes an enum not a string - why do you try to pass a string?
                        You should really read documentation.
                        Here again the code I already posted before:

                        DataBits dataBits;
                        if (ui->dataBits.currentText() == "Data5")
                            dataBits = DataBits::Data5;
                        else if ..
                        ...
                        // new
                        mSerialport->setDataBits(dataBits) ;
                        

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

                        S 1 Reply Last reply
                        1
                        • jsulmJ jsulm

                          @segtteee First, please read what I write more carefully, second if you get an error please post it.
                          This is wrong:

                          if (ui->comboBox_databits->currentText() == "Data8")
                              mSerialport->setDataBits("Data8") ;
                          

                          As I wrote above setDataBits takes an enum not a string - why do you try to pass a string?
                          You should really read documentation.
                          Here again the code I already posted before:

                          DataBits dataBits;
                          if (ui->dataBits.currentText() == "Data5")
                              dataBits = DataBits::Data5;
                          else if ..
                          ...
                          // new
                          mSerialport->setDataBits(dataBits) ;
                          
                          S Offline
                          S Offline
                          segtteee
                          wrote on last edited by
                          #22

                          @jsulm
                          "DataBits dataBits; " is not written . what mean "DataBits dataBits;"?
                          I read the docummets and see "QSerialPort::Data8"
                          so I write
                          "if (ui->comboBox_databits->currentText() == "Data8")
                          mSerialport(QSerialPort::Data8); "
                          but error occured

                          jsulmJ J.HilkJ 2 Replies Last reply
                          -1
                          • S segtteee

                            @jsulm
                            "DataBits dataBits; " is not written . what mean "DataBits dataBits;"?
                            I read the docummets and see "QSerialPort::Data8"
                            so I write
                            "if (ui->comboBox_databits->currentText() == "Data8")
                            mSerialport(QSerialPort::Data8); "
                            but error occured

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

                            @segtteee Again: what error?

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

                            S 1 Reply Last reply
                            1
                            • S segtteee

                              @jsulm
                              "DataBits dataBits; " is not written . what mean "DataBits dataBits;"?
                              I read the docummets and see "QSerialPort::Data8"
                              so I write
                              "if (ui->comboBox_databits->currentText() == "Data8")
                              mSerialport(QSerialPort::Data8); "
                              but error occured

                              J.HilkJ Offline
                              J.HilkJ Offline
                              J.Hilk
                              Moderators
                              wrote on last edited by
                              #24

                              @segtteee said in How can I see and storage the data from device in QT?:

                              mSerialport(QSerialPort::Data8);

                              I'm pretty sure thats not a valid constructor of QSerialPort and I'm even more sure that not want you want to do in this case, anyway.


                              Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                              Q: What's that?
                              A: It's blue light.
                              Q: What does it do?
                              A: It turns blue.

                              1 Reply Last reply
                              1
                              • jsulmJ jsulm

                                @segtteee Again: what error?

                                S Offline
                                S Offline
                                segtteee
                                wrote on last edited by
                                #25

                                @jsulm
                                if alt text
                                "‘DataBits’ was not declared in this scope
                                DataBits dataBits; " error occured

                                if
                                alt text
                                "expression cannot be used as a function
                                mSerialport(QSerialPort::Data8); " error occured
                                ^

                                jsulmJ 1 Reply Last reply
                                0
                                • S segtteee

                                  @jsulm
                                  if alt text
                                  "‘DataBits’ was not declared in this scope
                                  DataBits dataBits; " error occured

                                  if
                                  alt text
                                  "expression cannot be used as a function
                                  mSerialport(QSerialPort::Data8); " error occured
                                  ^

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

                                  @segtteee Change

                                  DataBits dataBits;
                                  

                                  to

                                  QSerialPort::DataBits dataBits;
                                  

                                  This does not make any sense:

                                  mSerialport(QSerialPort::Data8);
                                  

                                  must be

                                  mSerialport->setDataBits(QSerialPort::Data8);
                                  

                                  Also if you directly call mSerialport->setDataBits(QSerialPort::Data8); inside if then you do not need dataBits variable...

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

                                  S 1 Reply Last reply
                                  3
                                  • jsulmJ jsulm

                                    @segtteee Change

                                    DataBits dataBits;
                                    

                                    to

                                    QSerialPort::DataBits dataBits;
                                    

                                    This does not make any sense:

                                    mSerialport(QSerialPort::Data8);
                                    

                                    must be

                                    mSerialport->setDataBits(QSerialPort::Data8);
                                    

                                    Also if you directly call mSerialport->setDataBits(QSerialPort::Data8); inside if then you do not need dataBits variable...

                                    S Offline
                                    S Offline
                                    segtteee
                                    wrote on last edited by
                                    #27

                                    @jsulm
                                    if (ui->comboBox_databits->currentText() == "Data8")
                                    mSerialport->setDataBits(QSerialPort::Data8);
                                    else if (ui->comboBox_databits->currentText() == "Data7")
                                    mSerialport->setDataBits(QSerialPort::Data7);
                                    else if (ui->comboBox_databits->currentText() == "Data6")
                                    mSerialport->setDataBits(QSerialPort::Data6);
                                    I write the above code , error not occured .
                                    Parity,Stopbits,flowcontrol , Can I do the same with them?

                                    jsulmJ 1 Reply Last reply
                                    0
                                    • S segtteee

                                      @jsulm
                                      if (ui->comboBox_databits->currentText() == "Data8")
                                      mSerialport->setDataBits(QSerialPort::Data8);
                                      else if (ui->comboBox_databits->currentText() == "Data7")
                                      mSerialport->setDataBits(QSerialPort::Data7);
                                      else if (ui->comboBox_databits->currentText() == "Data6")
                                      mSerialport->setDataBits(QSerialPort::Data6);
                                      I write the above code , error not occured .
                                      Parity,Stopbits,flowcontrol , Can I do the same with them?

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

                                      @segtteee Yes you can

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

                                      1 Reply Last reply
                                      1

                                      • Login

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