可复制的图中代码如下:
void FirmwareUpdate::sendBinDataSlot(){ QFile* file = new QFile; file->setFileName(fileName); bool ok = file->open(QIODevice::ReadOnly); if(!ok) { QMessageBox::information(this,"Error Message", "File Open Error" + file->errorString()); return; } QDataStream in(file); char * binByte = new char[binSize]; in.setVersion (QDataStream::Qt_5_9); in.readRawData (binByte, binSize); //binSize=36128 ;读出文件到缓存。 /*** int readRawData(char *, int len); ***/ const char* charBinData=binByte; int byteToSend = 1024; tmp = startWidget->my_serialport->write(charBinData, byteToSend); /*** qint64 QIODevice::write(const char *data, qint64 maxSize) Writes at most maxSize bytes of data from data to the device. Returns the number of bytes that were actually written, or -1 if an error occurred. ***/ qDebug()<<"binSize:"<<binSize<<";"<<"charBinData:"<<charBinData<<";"<<"tmp"<<tmp<<endl;//binSize: 36128 ; temp 1024 delete[] binByte;}