void HardwareManipulator::constructSMSDatagram(int port, const QString &sender, const QByteArray &data, const QByteArray &contentType) { QWspPush pdu; pdu.setIdentifier(0); pdu.setPduType(6); pdu.setData(data.data(),data.length()); QBuffer buffer; buffer.open(QBuffer::ReadWrite); QWspPduEncoder encoder(&buffer); if ( contentType.length() != 0 ) { pdu.addHeader("Content-Type", contentType); encoder.encodePush(pdu); } else { pdu.writeData(&buffer); } QByteArray appData = buffer.buffer(); buffer.close(); QSMSMessage m; m.setDestinationPort(port); m.setSender(sender); m.setApplicationData(appData); if( m.shouldSplit() ) { QList<QSMSMessage> list = m.split(); for( int i =0; i < list.count(); i++ ) { SMSList.appendSMS( list[i].toPdu() ); } } else { SMSList.appendSMS( m.toPdu() ); } }