#include "tcpclient.h" #include #include "datatype.h" #include TcpClient::TcpClient(QObject * parent):QObject (parent) { connect(&m_TcpSocket,SIGNAL(readyRead()),this,SLOT(slotReadMessage())); connect(&m_TcpSocket,SIGNAL(disconnected()),this,SLOT(slotDisconnected())); // 设置接收缓冲区大小 int receiveBufferSize = 1024 * 1024; // 1MB m_TcpSocket.setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, receiveBufferSize); } TcpClient::~TcpClient() { disConnectServer(); m_isConnected = false; } bool TcpClient::disConnectServer() { if (m_TcpSocket.state() == QAbstractSocket::ConnectedState || m_TcpSocket.state() == QAbstractSocket::ConnectingState) { qDebug() << "Disconnecting from server..."; m_TcpSocket.disconnectFromHost(); } else { qDebug() << "Already disconnected or not connected."; } m_isConnected = false; qDebug()<<"state"<totalSize) return false; QByteArray smallBlock = data.mid(startIdx,length); qint64 written = m_TcpSocket.write(smallBlock); bool success = m_TcpSocket.waitForBytesWritten(); if(!success)//发送失败包时,停止发送 { return false; } bytesWritten+=written; bytesToWrite-=written; } m_TcpSocket.flush(); return true; } QByteArray TcpClient::GetData() { return QByteArray(); } void TcpClient::slotTestReadMessage() { QByteArray temp_BtyeArray = m_TcpSocket.readAll(); m_msgArray.append(temp_BtyeArray ); //数据头大小为23个字节 //数据块长度192或者6 //剩余部分5 while(!m_msgArray.isEmpty()) { qint32 allSize = m_msgArray.size(); //数据头不够 if (allSize < 23) { qDebug()<<"sizeRcre"<allSize ) { qDebug()<<"datalength:"<>frameHeader>>frameHeader >> packetSeq >> dataLength >> batteryLevel >> channelCount >> pitchAngle >> rollAngle >> yawAngle >> ecg >> spo2 >> reserved1 >> reserved2 >> reserved3 >> reserved4; qDebug()<<"---:"<> syncSource >> syncSeq; in >> checksum; in >> packetTail; qDebug()<<"getdataLength:"<