【发布时间】:2017-12-13 07:07:00
【问题描述】:
我是 Qt C++ 开发的新手。我有一个可以控制硬件的处理器。从服务器(Java)我会将指令发送到该硬件。根据该特定指令,它将执行。这是我项目的总体思路。
基本控制指令写在船上。现在我想要什么,我要描述的问题是什么?对不起我的英语不好。
我要从服务器发送 JSON 字符串。例如
working|pq|0|1
我会从 web socket 收到字符串
else if(message.contains("working")) {
emit OnMsgRecievedConnect("connect");
workingpq = message;
qDebug() << workingpq;
}
现在我从服务器收到了一个字符串。我已将该字符串放入另一个线程中,以向硬件发出指令。
workingvaluepq = EchoClient::workingpq ;
qDebug() << "End pq value Received from server :" << workingvaluepq ;
QStringList pq = workingvaluepq.split("|");
int pqSize = pq.size(); // get the pq list size;
qDebug() << "End pq size :" << pqSize;
if(pqSize == 5){
p = pq[3];
q = pq[4];
}
int pInt = p.toInt(&ok);
int qInt = q.toInt(&ok);
if(!ok && pqSize == 5){
pend = pInt;
}
if(!ok && pqSize == 5){
qend = qInt;
}
pend = pInt;
qend = qInt;
if(pqSize == 1 ){
pend = jread->endvaluep;
qend = jread->endvalueq;
}
while(true)
{ (All other stuff here)
if(pqSize == 5){
if (pend == pstart && qend == qstart)
{
Jsonendflag = 1;
}
}
if(pqSize == 1){
if (pend == pstart && qend == qstart)
{
Rightstopflag = 1;
}
}
所以当这一点(无论我们修复什么)到达特定任务时,它最终会停止。也许上面的代码有一些经验丰富的问题。所以有人可以帮助我改进代码。还有一个问题,这只是一项任务,我试过了。
注意:pstart、qstart、pend、qend这些东西在板载JSON文件中定义。只是我会阅读并执行,所以阅读执行没什么大不了的 如果我从服务器机器收到多个字符串(任务),则必须一一完成任务。例如,将收到如下所示的字符串
working|xy|2|3*working1|xy|8|7*working3|xy|12|15*working4|xy|17|20
上面的字符串有四个不同的任务,我会在同一时间收到,现在我想拆分并连续完成任务。我希望在这里有这么多有经验的人可以帮助和解决这个问题。
【问题讨论】:
-
是Qt,不是QT,QT是Quick Time。
-
感谢您提供的信息。我已经按照你的建议修改了。
标签: java c++ json qt websocket