1、解决因切分来车状态信息时,切分异常的问题

This commit is contained in:
Mr.V 2024-03-18 15:10:29 +08:00
parent 4eb953d178
commit cb379ed189
2 changed files with 6 additions and 4 deletions

View File

@ -77,10 +77,11 @@ void TcpClient::connectToServer(QString ip, int port) {
// 接收到数据
connect(this->tcp_, &QTcpSocket::readyRead, this, [=](){
QByteArray jsonData = this->tcp_->readAll();
// emit sendTcpInfoSignals("--" + QString(jsonData));
jsonData.replace("}{", "}-{");
QList<QByteArray> jsonDataList = jsonData.split('-');
jsonData.replace("}{", "}&{");
QList<QByteArray> jsonDataList = jsonData.split('&');
for (int i = 0; i < jsonDataList.size(); i++) {
// emit getTcpInfoSignals("TCP:" + QString(jsonDataList[i]));
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonDataList[i]);
if (jsonDocument.isObject()) {
QJsonObject jsonObject = jsonDocument.object();
@ -91,7 +92,7 @@ void TcpClient::connectToServer(QString ip, int port) {
come_time = jsonObject["cometime"].toString();
carType = jsonObject["type"].toString();
}
else if (jsonObject["type"].toString() != carType)
else if (jsonObject["type"].toString() != carType && carType == "1")
{
// 火车无
emit this->comeTrainSignals(false);

View File

@ -36,6 +36,7 @@ signals:
void sendTcpInfoSignals(QString info);
void socketComplete(QTcpSocket* tcp, QString ip, quint16 port); // tcp句柄发送给主线程监管
void restartSocket(QString ip, int port); //重启Socket连接
void getTcpInfoSignals(QString info);
};
#endif // TCPCLIENT_H