Results 1 to 12 of 12

Thread: Serial port split data

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Mar 2008
    Location
    Kraków, Poland
    Posts
    1,540
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows
    Thanked 284 Times in 279 Posts

    Default Re: Serial port split data

    And these packages do not have any fixed structure? If so, the protocol is incorrectly designed.

  2. #2
    Join Date
    Jan 2017
    Posts
    58
    Qt products
    Qt5
    Platforms
    Windows
    Thanks
    2
    Thanked 2 Times in 2 Posts

    Default Re: Serial port split data

    Of course not, these packages have fixed structure. I have just 3 or 4 different patterns.

  3. #3
    Join Date
    May 2017
    Posts
    6
    Qt products
    Qt5
    Platforms
    Windows
    Thanks
    2

    Default Re: Serial port split data

    I had the same Problem few days ago,
    try to add special characters like crlf and append your data on a QString (or anything you want) until you recieve crlf.
    QSerialPort doesn't know your frame so it only recieve data when it is available.

  4. #4
    Join Date
    Jan 2017
    Posts
    58
    Qt products
    Qt5
    Platforms
    Windows
    Thanks
    2
    Thanked 2 Times in 2 Posts

    Default Re: Serial port split data

    Yes, it is possible way to solve this problem. But I can't be sure that this special character will not be part of correct data - packet and I think, in 21th century is possible to transfer all data without any special characters at the end. I'm just saying, when I sent 20B I also get 20B. So, I changed my program to check this length and it seems working correctly.

  5. #5
    Join Date
    May 2011
    Posts
    81
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11
    Thanks
    6
    Thanked 5 Times in 4 Posts

    Default Re: Serial port split data

    Quote Originally Posted by ado130 View Post
    Yes, it is possible way to solve this problem. But I can't be sure that this special character will not be part of correct data - packet and I think, in 21th century is possible to transfer all data without any special characters at the end. I'm just saying, when I sent 20B I also get 20B. So, I changed my program to check this length and it seems working correctly.
    In any century, it is not possible to just 'transfer all data' via a serial port without some way to verify the data on the receiving end. The way you are doing WILL fail at some point. If your do not have a starting element or an ending element (preferably both), you can never be absolutely 100% sure you have the correct data.

    My advice is if you truly know the structure of the 3 or 4 patterns like you mentioned above, then you should implement code to check the received data fits into one of those patterns.

    If something should happen during transmission, and a byte is dropped... or part of the packet is corrupted, then your data will be wrong...and assuming that just because you received 20 bytes that the data is good... is a very, very bad idea.

    Just my 2 cents...

Similar Threads

  1. read data from serial port
    By amitpatel22 in forum Qt for Embedded and Mobile
    Replies: 2
    Last Post: 20th July 2011, 17:11
  2. DataPlot with data from Serial Port
    By przemek in forum Qwt
    Replies: 4
    Last Post: 2nd April 2011, 17:11
  3. recieve continious data from serial port
    By ready in forum Qt Programming
    Replies: 11
    Last Post: 2nd April 2011, 09:06
  4. can't set serial port data bits
    By yyiu002 in forum Qt Programming
    Replies: 6
    Last Post: 23rd June 2010, 22:28
  5. data from serial port
    By bhe in forum Newbie
    Replies: 4
    Last Post: 3rd May 2009, 10:19

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.