16,216
社区成员
发帖
与我相关
我的任务
分享
void RadarUdpSocket::readDataFromDCP()
{
QByteArray data_block;
//qDebug() << "***" << endl;
do {
//qDebug() << "---" << endl;
data_block.resize(pendingDatagramSize());
//将数据读取到data_block
readDatagram(data_block.data(), data_block.size());
QDataStream in(&data_block, QIODevice::ReadOnly);
in.setVersion(QDataStream::Qt_5_0);
in >> cat_62_;
//判断欧标标识位
if (CAT_62_ != cat_62_) {
return;
}
in >> block_size_;
//判断数据包是否读取完整,如读取不完整,直接返回继续读取
if (data_block.size() != block_size_) {
return;
}
block_size_ -= 3;
QByteArray block_data;
qint8 ch;
for (int i(0); 0 != block_size_; ++i) {
in >> ch;
block_data.append(ch);
}
//将读取的数据保存到文档中
writeRadarDataToFile(block_data);
} while (hasPendingDatagrams());
}
QFile file(tr("radar_data.txt"));
//文件以WriteOnly&Append模式打开
if ( !file.open(QIODevice::WriteOnly & QIODevice::Append)) {
return;
}
QDataStream write_radar_data(&file);
write_radar_data.setVersion(QDataStream::Qt_5_0);
write_radar_data.writeBytes(bytes, bytes.size());
file.close();