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. How can I see and storage the data from device in QT?
Qt 6.11 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.0k 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.
  • dheerendraD Offline
    dheerendraD Offline
    dheerendra
    Moderators Qt Champions 2024 Qt Champions 2022 Qt Champions 2017
    wrote on last edited by
    #2

    This requires good programming practise.

    1. Whenever you click on the button, you need to open the device selected. Right now u have hard coded with mSerialport->setPortName("/dev/ttyUSB0");
    2. use readyRead() signal to check the arrival of data.
    3. use readAll() method to read all the data from device.
    4. Display the data in QTextEdit UI control

    Dheerendra
    @Community Service
    Certified Qt Specialist
    https://www.pthinks.com

    S 1 Reply Last reply
    1
    • dheerendraD dheerendra

      This requires good programming practise.

      1. Whenever you click on the button, you need to open the device selected. Right now u have hard coded with mSerialport->setPortName("/dev/ttyUSB0");
      2. use readyRead() signal to check the arrival of data.
      3. use readAll() method to read all the data from device.
      4. Display the data in QTextEdit UI control
      S Offline
      S Offline
      segtteee
      wrote on last edited by
      #3

      @dheerendra
      Thank you for your reply. Does that mean you have to make a full correction my code? otherwise just change
      " mSerialport->setPortName("/dev/ttyUSB0");" ??

      1 Reply Last reply
      0
      • dheerendraD Offline
        dheerendraD Offline
        dheerendra
        Moderators Qt Champions 2024 Qt Champions 2022 Qt Champions 2017
        wrote on last edited by
        #4

        only mSerialport->setPortName("/dev/ttyUSB0") this may be sufficient.

        Dheerendra
        @Community Service
        Certified Qt Specialist
        https://www.pthinks.com

        S 1 Reply Last reply
        1
        • dheerendraD dheerendra

          only mSerialport->setPortName("/dev/ttyUSB0") this may be sufficient.

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

          @dheerendra
          Can not I solve the problem without changing the "mSerialport->setPortName("/dev/ttyUSB0")" ? I do not think I can change it.

          jsulmJ 1 Reply Last reply
          -1
          • S segtteee

            @dheerendra
            Can not I solve the problem without changing the "mSerialport->setPortName("/dev/ttyUSB0")" ? I do not think I can change it.

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

            @segtteee Why can't you change it?

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

            S 1 Reply Last reply
            1
            • jsulmJ jsulm

              @segtteee Why can't you change it?

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

              @jsulm
              I can write code by specifying one port, but I can not write one after choosing multiple ports...i am a beginner sorry..

              jsulmJ 1 Reply Last reply
              0
              • S segtteee

                @jsulm
                I can write code by specifying one port, but I can not write one after choosing multiple ports...i am a beginner sorry..

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

                @segtteee Then you should learn how to do it.
                Where does the user select the port? Is it a QComboBox? Something else?

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

                S 1 Reply Last reply
                2
                • jsulmJ jsulm

                  @segtteee Then you should learn how to do it.
                  Where does the user select the port? Is it a QComboBox? Something else?

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

                  @jsulm
                  it is combobox

                  jsulmJ 1 Reply Last reply
                  0
                  • S segtteee

                    @jsulm
                    it is combobox

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

                    @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? :-)

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

                    S 1 Reply Last reply
                    2
                    • 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

                                          • Login

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