QT串口数据处理:用QT编写的上位机从下位机接受很多数据,如何才能从这些数据中跳出我想要的

QT串口数据处理:用QT编写的上位机从下位机接受很多数据,如何才能从这些数据中跳出我想要的,第1张

Qt 4:

第三方串口接口类;

Win_QextSerialPort myCom;

数据: QByteArray temp = myCom->readAll();

长度:templength();

Qt 5:

QSerialPort my_serialport= new QSerialPort;

读取数据: QByteArray xxx = my_serialport->readAll();

长度: xxsize();

数据: xxdata();

至于说怎么保存到不同的 QString 这就是解析的问题,你可以随意发挥,反正就是将你得到的数据进行识别、类型转换、存储而已。

QVector是Qt框架中的一种容器,它可以存储任何类型的数据,比如int、float、string等。QVector的优势在于可以快速访问,可以在O(1)时间内访问任何元素,而且可以轻松地添加和删除元素,更加高效。QVector可以使用toStdString()函数将其转换为标准字符串。实现这一转换的步骤如下:首先,使用QVector的begin()和end()函数获取容器中的迭代器;其次,使用std::string的append()函数将迭代器中的元素添加到标准字符串中;最后,使用toStdString()函数将标准字符串转换为QString类型。综上所述,QVector可以使用toStdString()函数转换为标准字符串,从而实现QVector转换为String的功能。

如何从一段由特殊符号分隔的 QString 中获取被分隔的子串?

从字符串 “one, two, three, four”中获取第二个由‘,’分隔的子串,即 “two” ;

1: #include <QtCore/QCoreApplication>

2: #include <iostream>

3: using namespace std;

4:

5: int main()

6: {

7: QString str = "one, two, three, four";

8: cout << strsection(',', 1, 1)trimmed()toStdString() << endl;

9: return 0;

10: }

Qt4:第三方串口接口类;Win_QextSerialPortmyCom;数据:QByteArraytemp=myCom->readAll();长度:templength();Qt5:QSerialPortmy_serialport=newQSerialPort;读取数据:QByteArrayxxx=my_serialport->readAll();长度:xxsize();数据:xxdata();至于说怎么保存到不同的QString这就是解析的问题,你可以随意发挥,反正就是将你得到的数据进行识别、类型转换、存储而已。

假设整型数据是i,将它转换为二进制数为:xxxx xxxx xxxx xxxx一共4个字节,如何转换为一字节的字符型数据呢?如果把这四个字节分别称为:最高字节,次高字节,次低字节,最低字节,分别获取这四个字节的十进制数,然后用到的时候,再把它拼出来就是了

#include <stdioh>

#define MaxSize 100

typedef struct

{

char data[MaxSize];

int len; //串长

} SqString;

void StrAssign(SqString &str,char cstr[]) //str为引用型参数

{

int i;

for (i=0;cstr[i]!='\0';i++)

strdata[i]=cstr[i];

strlen=i;

}

void StrCopy(SqString &s,SqString t) //s为引用型参数

{

int i;

for (i=0;i<tlen;i++)

sdata[i]=tdata[i];

slen=tlen;

}

int StrLength(SqString s)

{

return slen;

}

SqString Concat(SqString s,SqString t)

{

SqString str;

int i;

strlen=slen+tlen;

for (i=0;i<slen;i++) //将sdata[0]~sdata[slen-1]复制到str

strdata[i]=sdata[i];

for (i=0;i<tlen;i++) //将tdata[0]~tdata[tlen-1]复制到str

strdata[slen+i]=tdata[i];

return str;

}

SqString SubStr(SqString s,int i,int j)

{

SqString str;

int k;

strlen=0;

if (i<=0 || i>slen || j<0 || i+j-1>slen)

return str; //参数不正确时返回空串

for (k=i-1;k<i+j-1;k++) //将sdata[i]~sdata[i+j]复制到str

strdata[k-i+1]=sdata[k];

strlen=j;

return str;

}

void DispStr(SqString s)

{

int i;

if (slen>0)

{

for (i=0;i<slen;i++)

printf("%c",sdata[i]);

printf("\n");

}

}

SqString invert(SqString &s) //例6-2的算法

{

SqString s1,s2;

if (StrLength(s)>0)

{

s1=invert(SubStr(s,2,StrLength(s)-1));

s2=Concat(s1,SubStr(s,1,1));

}

else

StrCopy(s2,s);

return s2;

}

void main()

{

SqString s,t;

StrAssign(s,"abcd1234");

printf("s:");DispStr(s);

printf("s->t\n");

t=invert(s);

printf("t:");DispStr(t);

以上就是关于QT串口数据处理:用QT编写的上位机从下位机接受很多数据,如何才能从这些数据中跳出我想要的全部的内容,包括:QT串口数据处理:用QT编写的上位机从下位机接受很多数据,如何才能从这些数据中跳出我想要的、qtvector转string、求教QStringList 拆分为 多个 QStringList等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9393703.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存