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. Problem with data read from USB port
Forum Updated to NodeBB v4.3 + New Features

Problem with data read from USB port

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 7 Posters 5.4k Views 2 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.
  • VRoninV VRonin

    the problem is here: serialBuffer += QString::fromStdString(serialData.toStdString());

    how does your sensor encode the data?

    P Offline
    P Offline
    pj0909
    wrote on last edited by
    #3

    @VRonin The sensor is based on capacitive technology. Any change in capacitance gives corresponding values.

    VRoninV 1 Reply Last reply
    0
    • P pj0909

      @VRonin The sensor is based on capacitive technology. Any change in capacitance gives corresponding values.

      VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #4

      @pj0909 said in Problem with data read from USB port:

      values

      This still does not answer my question. how are those values represented in binary format to the serial output? is it a 32 bit integer, a 64 bit double precision float, an ASCII encoded string?

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      P 1 Reply Last reply
      0
      • VRoninV VRonin

        @pj0909 said in Problem with data read from USB port:

        values

        This still does not answer my question. how are those values represented in binary format to the serial output? is it a 32 bit integer, a 64 bit double precision float, an ASCII encoded string?

        P Offline
        P Offline
        pj0909
        wrote on last edited by
        #5

        @VRonin Sorry, I misinterpreted your question. The answer to your question is 64 bit double precision float.

        jsulmJ kshegunovK 2 Replies Last reply
        0
        • P pj0909

          @VRonin Sorry, I misinterpreted your question. The answer to your question is 64 bit double precision float.

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

          @pj0909 Then you should use http://doc.qt.io/qt-5/qbytearray.html#toDouble without converting to string:

          bool ok = false;
          serialBuffer += sensor->readAll().toDouble(&ok);
          if (!ok) // error
          

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

          1 Reply Last reply
          2
          • VRoninV Offline
            VRoninV Offline
            VRonin
            wrote on last edited by VRonin
            #7

            To add to @jsulm, you should also check that serialData contains 64 and only 64 bits of data (i.e. serialData.size()==8) otherwise use QDataStream

            void Dialog::readSerial()
            {
            QDataStream sensorStream(sensor);
            QVector<double> readValues;
            for(;;){
            sensorStream.startTransaction();
            double readValue=0;
            sensorStream >> readValue;
            if(sensorStream.commitTransaction())
            readValues.push_back(readValue);
            else
            break;
            }
            qDebug() << "data read: " << readValues;
            }
            

            P.S.
            If your sensor sends the data in little endian order, you'll have to set the QDataStream byte order http://doc.qt.io/qt-5/qdatastream.html#setByteOrder

            "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
            ~Napoleon Bonaparte

            On a crusade to banish setIndexWidget() from the holy land of Qt

            1 Reply Last reply
            2
            • P pj0909

              @VRonin Sorry, I misinterpreted your question. The answer to your question is 64 bit double precision float.

              kshegunovK Offline
              kshegunovK Offline
              kshegunov
              Moderators
              wrote on last edited by
              #8

              @pj0909 said in Problem with data read from USB port:

              The answer to your question is 64 bit double precision float.

              Then you need to read the data as binary, not as text! Something like this (warning: the code isn't really portable):

              QDataStream in(&serialData, QIODevice::ReadOnly);
              
              double value;
              in >> value;

              Read and abide by the Qt Code of Conduct

              1 Reply Last reply
              3
              • P Offline
                P Offline
                pj0909
                wrote on last edited by
                #9

                I will implement the suggestions in the code and will see the output from the sensor. Will let you all know if its working correctly or still there is a problem. Thank you for the suggestions.

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  pj0909
                  wrote on last edited by
                  #10

                  Finally I solved my problem. I set the floating point precision in addition to the suggestions given above and now I am reading the data as expected.

                  Thank you all for the suggestions.

                  1 Reply Last reply
                  0
                  • N Offline
                    N Offline
                    namduc
                    wrote on last edited by
                    #11

                    Hi all!
                    I have the same problem, I need to communicate with a USB card reader, but I don't recognize it when i plug it with my PC ( Win 7)
                    serialportinfo.hasProductIdentifier() and serialportinfo.hasVendorIdentifier() all return false;
                    Who can help me? Thanks!

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      kuzulis
                      Qt Champions 2020
                      wrote on last edited by
                      #12

                      What's relation between the serial ports and the USB card readers?

                      1 Reply Last reply
                      2
                      • N Offline
                        N Offline
                        namduc
                        wrote on last edited by
                        #13

                        Reader Card connect directly to the computer using the USB port
                        Are there any libraries supporting this?
                        Thanks!

                        aha_1980A 1 Reply Last reply
                        0
                        • N namduc

                          Reader Card connect directly to the computer using the USB port
                          Are there any libraries supporting this?
                          Thanks!

                          aha_1980A Offline
                          aha_1980A Offline
                          aha_1980
                          Lifetime Qt Champion
                          wrote on last edited by
                          #14

                          Hi @namduc,

                          there is exactly one: libusb

                          Regards

                          Qt has to stay free or it will die.

                          1 Reply Last reply
                          6

                          • Login

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