Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. How we can read particular string/data from any device to print on particular LCD in qt?

How we can read particular string/data from any device to print on particular LCD in qt?

Scheduled Pinned Locked Moved Solved Mobile and Embedded
qtcreatorqtwidgetsqt5.5qt4read serial
25 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.
  • M Offline
    M Offline
    Mohit Tripathi
    wrote on 20 Mar 2018, 05:59 last edited by
    #1
    void Dialog::serialReceived()
    {
        arduino->waitForReadyRead(100);
        QStringList buffer_split = serialBuffer.split(",");
        if(buffer_split.length() < 3){
            serialData = arduino->readAll();
            serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
            serialData.clear();
        }else{
            serialBuffer = "";
            qDebug() << buffer_split << "\n";
            Dialog::updatelcd1(buffer_split[1]);
            Dialog::updatelcd2(buffer_split[1]);
        }
    
    }
    
    void Dialog::updatelcd1(QString sensor_reading1)
    {
       ui->temp1_lcdNumber->display(sensor_reading1);
    }
    
    void Dialog::updatelcd2(QString sensor_reading2)
    {
       ui->temp2_lcdNumber->display(sensor_reading2);
    }
    
    

    Can I know what is wrong in this code?

    J 1 Reply Last reply 20 Mar 2018, 06:13
    0
    • M Mohit Tripathi
      20 Mar 2018, 05:59
      void Dialog::serialReceived()
      {
          arduino->waitForReadyRead(100);
          QStringList buffer_split = serialBuffer.split(",");
          if(buffer_split.length() < 3){
              serialData = arduino->readAll();
              serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
              serialData.clear();
          }else{
              serialBuffer = "";
              qDebug() << buffer_split << "\n";
              Dialog::updatelcd1(buffer_split[1]);
              Dialog::updatelcd2(buffer_split[1]);
          }
      
      }
      
      void Dialog::updatelcd1(QString sensor_reading1)
      {
         ui->temp1_lcdNumber->display(sensor_reading1);
      }
      
      void Dialog::updatelcd2(QString sensor_reading2)
      {
         ui->temp2_lcdNumber->display(sensor_reading2);
      }
      
      

      Can I know what is wrong in this code?

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 20 Mar 2018, 06:13 last edited by jsulm
      #2

      @Mohit-Tripathi Why do you call waitForReadyRead?
      I guess serialReceived is connected to readyRead() signal?

      "Can I know what is wrong in this code?" - come on, you should tell what does not work...

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

      M 1 Reply Last reply 20 Mar 2018, 06:19
      2
      • J jsulm
        20 Mar 2018, 06:13

        @Mohit-Tripathi Why do you call waitForReadyRead?
        I guess serialReceived is connected to readyRead() signal?

        "Can I know what is wrong in this code?" - come on, you should tell what does not work...

        M Offline
        M Offline
        Mohit Tripathi
        wrote on 20 Mar 2018, 06:19 last edited by
        #3

        @jsulm I am unable to print the particular data on particular LCD. If we read the data from any device we can read any data. We do not know which data we will read. But what about the particular data? How can we read?

        J 1 Reply Last reply 20 Mar 2018, 06:21
        0
        • M Mohit Tripathi
          20 Mar 2018, 06:19

          @jsulm I am unable to print the particular data on particular LCD. If we read the data from any device we can read any data. We do not know which data we will read. But what about the particular data? How can we read?

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 20 Mar 2018, 06:21 last edited by
          #4

          @Mohit-Tripathi Sorry, I don't understand what you're writing.
          First: are you able to read the data from serial device?
          Second: what LCD do you mean? How is it connected and how do you access it?
          If you don't know what data you will get then what do you want to print on LCD?

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

          M 1 Reply Last reply 20 Mar 2018, 06:29
          0
          • J jsulm
            20 Mar 2018, 06:21

            @Mohit-Tripathi Sorry, I don't understand what you're writing.
            First: are you able to read the data from serial device?
            Second: what LCD do you mean? How is it connected and how do you access it?
            If you don't know what data you will get then what do you want to print on LCD?

            M Offline
            M Offline
            Mohit Tripathi
            wrote on 20 Mar 2018, 06:29 last edited by
            #5

            @jsulm Yes, i am able to read the data serially. I am using the LCD Number widget into application means (.ui) file. LCDNumber widget displays a number with LCD-like digits.
            I am getting the data1 for LCD number1 and data2 for LCD number2 but I want to read the data2 for LCD number1 and data1 for LCD number2. The data is in string format.

            J J 2 Replies Last reply 20 Mar 2018, 06:39
            0
            • M Mohit Tripathi
              20 Mar 2018, 06:29

              @jsulm Yes, i am able to read the data serially. I am using the LCD Number widget into application means (.ui) file. LCDNumber widget displays a number with LCD-like digits.
              I am getting the data1 for LCD number1 and data2 for LCD number2 but I want to read the data2 for LCD number1 and data1 for LCD number2. The data is in string format.

              J Offline
              J Offline
              jsulm
              Lifetime Qt Champion
              wrote on 20 Mar 2018, 06:39 last edited by
              #6

              @Mohit-Tripathi Sounds like endianess issue.
              You can use QDataStream to read your data and set big/little endian using http://doc.qt.io/qt-5/qdatastream.html#setByteOrder

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

              1 Reply Last reply
              1
              • M Mohit Tripathi
                20 Mar 2018, 06:29

                @jsulm Yes, i am able to read the data serially. I am using the LCD Number widget into application means (.ui) file. LCDNumber widget displays a number with LCD-like digits.
                I am getting the data1 for LCD number1 and data2 for LCD number2 but I want to read the data2 for LCD number1 and data1 for LCD number2. The data is in string format.

                J Offline
                J Offline
                J.Hilk
                Moderators
                wrote on 20 Mar 2018, 06:43 last edited by J.Hilk
                #7

                @Mohit-Tripathi
                might be, that I missunderstand you,
                but you asign LCD 1 and 2 the savesame value

                Dialog::updatelcd1(buffer_split[1]);
                Dialog::updatelcd2(buffer_split[1]);
                

                those could never be different.


                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.

                M 1 Reply Last reply 22 Mar 2018, 07:12
                1
                • J J.Hilk
                  20 Mar 2018, 06:43

                  @Mohit-Tripathi
                  might be, that I missunderstand you,
                  but you asign LCD 1 and 2 the savesame value

                  Dialog::updatelcd1(buffer_split[1]);
                  Dialog::updatelcd2(buffer_split[1]);
                  

                  those could never be different.

                  M Offline
                  M Offline
                  Mohit Tripathi
                  wrote on 22 Mar 2018, 07:12 last edited by
                  #8

                  @J.Hilk Yes, it is giving the same value on both LCD widget. How can I read different value for particular LCd widget?

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 22 Mar 2018, 07:16 last edited by
                    #9

                    Hi,

                    If buffer split contains the two values you want to show, use the correct index e.g.:

                    updatelcd1(buffer_split[0]);
                    updatelcd2(buffer_split[1]);
                    

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

                    M 1 Reply Last reply 22 Mar 2018, 07:25
                    3
                    • SGaistS SGaist
                      22 Mar 2018, 07:16

                      Hi,

                      If buffer split contains the two values you want to show, use the correct index e.g.:

                      updatelcd1(buffer_split[0]);
                      updatelcd2(buffer_split[1]);
                      
                      M Offline
                      M Offline
                      Mohit Tripathi
                      wrote on 22 Mar 2018, 07:25 last edited by Mohit Tripathi
                      #10

                      @SGaist I have changed the code but still I am getting the same problem.

                      void Dialog::serialReceived()
                      {
                         int data1  =0;
                          char *dataBuffer;
                          int size = arduino->bytesAvailable();
                          dataBuffer = new char[size+1];
                          data1 = arduino->read(dataBuffer,size);
                          dataBuffer[data1]='\0';
                          if(data1 < 3){
                              serialData = arduino->readAll();
                              serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
                              serialData.clear();
                          }else{
                              serialBuffer = "";
                              qDebug() << dataBuffer << "\n";
                              Dialog::updateTemperature(dataBuffer);
                              Dialog::updateTemperature(dataBuffer);
                          }
                      
                      }
                      
                      void Dialog::updateTemperature(QString sensor_reading)
                      {
                         ui->temp_lcdNumber_2->display(sensor_reading);
                         ui->temp_lcdNumber_3->display(sensor_reading);
                      }
                      
                      

                      I tried with two function.

                       if(data1 < 3){
                              serialData = arduino->readAll();
                              serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
                              serialData.clear();
                          }else{
                              serialBuffer = "";
                              qDebug() << dataBuffer << "\n";
                              Dialog::updateTemperature(dataBuffer);
                              Dialog::updateTemperature1(dataBuffer);
                          }
                      void Dialog::updateTemperature(QString sensor_reading)
                      {
                         ui->temp_lcdNumber_2->display(sensor_reading);
                      }
                      
                      void Dialog::updateTemperature1(QString sensor_reading)
                      {
                         ui->temp_lcdNumber_3->display(sensor_reading);
                      }
                      

                      I am getting the same value on both LCD widget. I am writing the two values and I am able to read the only last. It means that I see only last value on the LCD widget, not the first value. The both values are same on LCD widget.

                      J 1 Reply Last reply 22 Mar 2018, 08:09
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on 22 Mar 2018, 08:08 last edited by
                        #11

                        You still are passing the exact same input to all your widgets. It's not because one function is named updateTemperature and the other updateTemperature1 that they will parse your data to extract the correct value to show. That's your job.

                        Note that you are using pretty convoluted code to handle your serial port data. Use QByteArray to cumulate the data. There's no need for all these conversions you are doing.

                        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
                        1
                        • M Mohit Tripathi
                          22 Mar 2018, 07:25

                          @SGaist I have changed the code but still I am getting the same problem.

                          void Dialog::serialReceived()
                          {
                             int data1  =0;
                              char *dataBuffer;
                              int size = arduino->bytesAvailable();
                              dataBuffer = new char[size+1];
                              data1 = arduino->read(dataBuffer,size);
                              dataBuffer[data1]='\0';
                              if(data1 < 3){
                                  serialData = arduino->readAll();
                                  serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
                                  serialData.clear();
                              }else{
                                  serialBuffer = "";
                                  qDebug() << dataBuffer << "\n";
                                  Dialog::updateTemperature(dataBuffer);
                                  Dialog::updateTemperature(dataBuffer);
                              }
                          
                          }
                          
                          void Dialog::updateTemperature(QString sensor_reading)
                          {
                             ui->temp_lcdNumber_2->display(sensor_reading);
                             ui->temp_lcdNumber_3->display(sensor_reading);
                          }
                          
                          

                          I tried with two function.

                           if(data1 < 3){
                                  serialData = arduino->readAll();
                                  serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
                                  serialData.clear();
                              }else{
                                  serialBuffer = "";
                                  qDebug() << dataBuffer << "\n";
                                  Dialog::updateTemperature(dataBuffer);
                                  Dialog::updateTemperature1(dataBuffer);
                              }
                          void Dialog::updateTemperature(QString sensor_reading)
                          {
                             ui->temp_lcdNumber_2->display(sensor_reading);
                          }
                          
                          void Dialog::updateTemperature1(QString sensor_reading)
                          {
                             ui->temp_lcdNumber_3->display(sensor_reading);
                          }
                          

                          I am getting the same value on both LCD widget. I am writing the two values and I am able to read the only last. It means that I see only last value on the LCD widget, not the first value. The both values are same on LCD widget.

                          J Offline
                          J Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on 22 Mar 2018, 08:09 last edited by
                          #12

                          @Mohit-Tripathi You send exact same data to both functions:

                          Dialog::updateTemperature(dataBuffer);
                          Dialog::updateTemperature1(dataBuffer);
                          

                          How is it supposed to show different values if you use same value for both?

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

                          1 Reply Last reply
                          0
                          • Pablo J. RoginaP Offline
                            Pablo J. RoginaP Offline
                            Pablo J. Rogina
                            wrote on 22 Mar 2018, 14:54 last edited by
                            #13

                            @Mohit-Tripathi it looks like you are somehow double posting your issue, since this is the same problem as you mention here. Again, it seems you need to define a protocol so you the contents of dataBuffer can tell you both the value and the component to update.

                            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
                            • M Offline
                              M Offline
                              Mohit Tripathi
                              wrote on 24 Mar 2018, 21:36 last edited by Mohit Tripathi
                              #14
                               void Dialog::serialReceived()
                                  {
                                     QStringList buffer_split;
                                      if(buffer_split.length()< 3){
                                          serialData = arduino->readAll();
                                          serialBuffer = serialBuffer + QString::fromStdString(serialData.toStdString());
                                          serialData.clear();
                                      }else{
                                          serialBuffer = "";
                                          qDebug() << buffer_split << "\n";
                                          Dialog::updateTemperature(dataBuffer[0]);
                                          Dialog::updateTemperature1(dataBuffer[1]);
                                      }
                              
                                  }
                              
                                  void Dialog::updateTemperature(QString sensor_reading)
                                  {
                                     ui->temp_lcdNumber_2->display(sensor_reading);
                                  }
                              
                                  void Dialog::updateTemperature1(QString sensor_reading1)
                                  {
                                      ui->temp_lcdNumber_3->display(sensor_reading1);
                                  }
                              
                              
                                  void Dialog::on_pushButton_clicked()
                                  {
                                      QMessageBox::information(this,"Motor Controller","Write data");
                                      QString output1 = ui->lineEdit->text();
                                      //qDebug()<<output1;
                                      QString output2 = ui->lineEdit_2->text();
                                      if(arduino->isWritable())
                                      {
                                           //arduino->write();
                                         arduino->write(output1.toStdString().c_str());
                                         arduino->write(output2.toStdString().c_str());
                                           arduino->flush();
                                           arduino->waitForBytesWritten(100);
                                           qDebug()<<output1;
                                          qDebug()<<output2;
                                      }
                                  }
                              

                              I am still getting the same problem.
                              I can write the data in arduino in form of string using push widget through Line Edit widget. I can read the data from arduino also. But, I can not print the data on LCD number widget. I am unable to print the particular string on particular LCD widget. I am getting the data1 for LCD number2 and data2 for LCD number1 but I want to read the data1 for LCD number1 and data1 for LCD number1 and sometime getting the data2 for both LCD widget.

                              Can I know why I am getting the wrong output for particular LCD widget?
                              0_1521927306240_6dlhB.png

                              1 Reply Last reply
                              -1
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on 24 Mar 2018, 22:06 last edited by
                                #15

                                Hi,

                                Because as already written in another thread you are not handling the data from your serial port correctly. You should cumulate the data you get until you know you have enough then parse it and update your lcd widget accordingly.

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

                                M 1 Reply Last reply 27 Mar 2018, 09:38
                                1
                                • SGaistS SGaist
                                  24 Mar 2018, 22:06

                                  Hi,

                                  Because as already written in another thread you are not handling the data from your serial port correctly. You should cumulate the data you get until you know you have enough then parse it and update your lcd widget accordingly.

                                  M Offline
                                  M Offline
                                  Mohit Tripathi
                                  wrote on 27 Mar 2018, 09:38 last edited by
                                  #16

                                  @SGaist @jsulm @J-Hilk
                                  The ardunio code is

                                  String a[10];
                                  
                                  void setup() 
                                  {
                                  
                                  Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
                                  
                                  }
                                  
                                  void loop() {
                                  if(Serial.available()>0)
                                  {
                                    for(int i=0;i<2;i++)
                                    {
                                      a[i] = Serial.readString();
                                    }
                                  
                                    for(int i=0;i<2;i++)
                                    {
                                      Serial.println(a[i]);
                                    }
                                    Serial.flush();
                                  }
                                  }
                                  

                                  I am getting the two strings while entering two string in arduino like "12" and "1" on ardunio IDE but why i am not getting the correct result on LCD widget in qt5 like "12" on LCD widget 1 and "1" on LCD widget 2. Please note that I entered the "12" in lineEdit and "1" lineEdit_2.

                                  J 1 Reply Last reply 27 Mar 2018, 10:02
                                  0
                                  • M Mohit Tripathi
                                    27 Mar 2018, 09:38

                                    @SGaist @jsulm @J-Hilk
                                    The ardunio code is

                                    String a[10];
                                    
                                    void setup() 
                                    {
                                    
                                    Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
                                    
                                    }
                                    
                                    void loop() {
                                    if(Serial.available()>0)
                                    {
                                      for(int i=0;i<2;i++)
                                      {
                                        a[i] = Serial.readString();
                                      }
                                    
                                      for(int i=0;i<2;i++)
                                      {
                                        Serial.println(a[i]);
                                      }
                                      Serial.flush();
                                    }
                                    }
                                    

                                    I am getting the two strings while entering two string in arduino like "12" and "1" on ardunio IDE but why i am not getting the correct result on LCD widget in qt5 like "12" on LCD widget 1 and "1" on LCD widget 2. Please note that I entered the "12" in lineEdit and "1" lineEdit_2.

                                    J Offline
                                    J Offline
                                    J.Hilk
                                    Moderators
                                    wrote on 27 Mar 2018, 10:02 last edited by
                                    #17

                                    @Mohit-Tripathi with the assumption, that all data arrives simultaneously at your QSerialPort you could try the following.

                                    According to the ardunino docs, println appends with \r\n so you can use readLine on Qt's side:

                                    void Dialog::serialReceived()
                                    {
                                        arduino->waitForReadyRead(100);
                                    
                                       if(arduino->canReadLine()){
                                          QStringList myData;
                                           while(arduino->canReadLine()){
                                                char buf[1024];
                                                qint64 lineLength = file.readLine(buf, sizeof(buf));
                                                if (lineLength != -1) {
                                                      // the line is available in buf
                                                      myData.append(QString(buf));
                                                }else qDebug() << "Reading Line failed";
                                           }
                                           if(myData.size() >0)
                                               updatelcd1(myData.at(0);
                                           if(myData.size() >1)
                                              updatelcd2(myData.at(1));
                                       }else qDebug() << "Could not read lines";
                                    }
                                    

                                    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.

                                    M 1 Reply Last reply 27 Mar 2018, 10:34
                                    1
                                    • J J.Hilk
                                      27 Mar 2018, 10:02

                                      @Mohit-Tripathi with the assumption, that all data arrives simultaneously at your QSerialPort you could try the following.

                                      According to the ardunino docs, println appends with \r\n so you can use readLine on Qt's side:

                                      void Dialog::serialReceived()
                                      {
                                          arduino->waitForReadyRead(100);
                                      
                                         if(arduino->canReadLine()){
                                            QStringList myData;
                                             while(arduino->canReadLine()){
                                                  char buf[1024];
                                                  qint64 lineLength = file.readLine(buf, sizeof(buf));
                                                  if (lineLength != -1) {
                                                        // the line is available in buf
                                                        myData.append(QString(buf));
                                                  }else qDebug() << "Reading Line failed";
                                             }
                                             if(myData.size() >0)
                                                 updatelcd1(myData.at(0);
                                             if(myData.size() >1)
                                                updatelcd2(myData.at(1));
                                         }else qDebug() << "Could not read lines";
                                      }
                                      
                                      M Offline
                                      M Offline
                                      Mohit Tripathi
                                      wrote on 27 Mar 2018, 10:34 last edited by Mohit Tripathi
                                      #18

                                      @J.Hilk If I am using this code (according to your solution)

                                      if(myData.size() >0)
                                             {
                                                 updateLCD(myData.at(0));
                                             }
                                             else if(myData.size() >1)
                                             {
                                                updateLCD1(myData.at(1));
                                             }
                                      

                                      I am still getting the same problem in LCD Widget. I am getting the both input on only one LCD widget.

                                      0_1522146624326_app1.png

                                      If I am using the same function call for both. I am getting the same output on both LCD widget.

                                       if(myData.size() >0)
                                             {
                                                 updateLCD(myData.at(0));
                                             }
                                             else if(myData.size() >1)
                                             {
                                                updateLCD(myData.at(1));
                                             }
                                      void Dialog::updateLCD(QString sensor_reading)
                                      {
                                         ui->temp_lcdNumber_2->display(sensor_reading);
                                        ui->temp_lcdNumber_3->display(sensor_reading);
                                      }
                                      

                                      0_1522146831784_app2.png

                                      I am getting the same problem always.

                                      J 1 Reply Last reply 27 Mar 2018, 10:47
                                      0
                                      • M Mohit Tripathi
                                        27 Mar 2018, 10:34

                                        @J.Hilk If I am using this code (according to your solution)

                                        if(myData.size() >0)
                                               {
                                                   updateLCD(myData.at(0));
                                               }
                                               else if(myData.size() >1)
                                               {
                                                  updateLCD1(myData.at(1));
                                               }
                                        

                                        I am still getting the same problem in LCD Widget. I am getting the both input on only one LCD widget.

                                        0_1522146624326_app1.png

                                        If I am using the same function call for both. I am getting the same output on both LCD widget.

                                         if(myData.size() >0)
                                               {
                                                   updateLCD(myData.at(0));
                                               }
                                               else if(myData.size() >1)
                                               {
                                                  updateLCD(myData.at(1));
                                               }
                                        void Dialog::updateLCD(QString sensor_reading)
                                        {
                                           ui->temp_lcdNumber_2->display(sensor_reading);
                                          ui->temp_lcdNumber_3->display(sensor_reading);
                                        }
                                        

                                        0_1522146831784_app2.png

                                        I am getting the same problem always.

                                        J Offline
                                        J Offline
                                        J.Hilk
                                        Moderators
                                        wrote on 27 Mar 2018, 10:47 last edited by
                                        #19

                                        @Mohit-Tripathi said in How we can read particular string/data from any device to print on particular LCD in qt?:

                                        @J.Hilk If I am using this code (according to your solution)

                                        if(myData.size() >0)
                                               {
                                                   updateLCD(myData.at(0));
                                               }
                                               else if(myData.size() >1)
                                               {
                                                  updateLCD1(myData.at(1));
                                               }
                                        

                                        are you kidding me?
                                        how is that code supposed to be executed? Im sure even the compiler will rationalize it away.

                                        if myData is bigger than 0 updateLCD will be called and the else will never execute

                                        if myData is noit bigger than 0 it can never bigger than 1

                                        Theres a reason I omitted the else


                                        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.

                                        M 1 Reply Last reply 27 Mar 2018, 11:12
                                        2
                                        • J J.Hilk
                                          27 Mar 2018, 10:47

                                          @Mohit-Tripathi said in How we can read particular string/data from any device to print on particular LCD in qt?:

                                          @J.Hilk If I am using this code (according to your solution)

                                          if(myData.size() >0)
                                                 {
                                                     updateLCD(myData.at(0));
                                                 }
                                                 else if(myData.size() >1)
                                                 {
                                                    updateLCD1(myData.at(1));
                                                 }
                                          

                                          are you kidding me?
                                          how is that code supposed to be executed? Im sure even the compiler will rationalize it away.

                                          if myData is bigger than 0 updateLCD will be called and the else will never execute

                                          if myData is noit bigger than 0 it can never bigger than 1

                                          Theres a reason I omitted the else

                                          M Offline
                                          M Offline
                                          Mohit Tripathi
                                          wrote on 27 Mar 2018, 11:12 last edited by
                                          #20

                                          @J.Hilk I am not kidding. I am getting the same problem when I started to do code. I am at beginner level in Qt. That's why I am facing the problem.
                                          But, here if Data size is less than 0. It should print only one enter value, not both value on one LCD widget. But, It is printing the both value on one LCD widget.

                                          1 Reply Last reply
                                          0

                                          1/25

                                          20 Mar 2018, 05:59

                                          • Login

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