void QstProtocol::send( const QstMessage &message )
{
    QByteArray data;

    if (!message.isUnpacked()) {
        data = message.m_buffer;
    } else if (!message.m_map.isEmpty()) {
        QDataStream s(&data, QIODevice::WriteOnly);
        s.setVersion(QDataStream::Qt_4_6);
        s << message.m_map;
    }

    QDataStream tmp(this);
    tmp.setVersion(QDataStream::Qt_4_6);
    sendPreamble(&tmp, message);

    // phase 2
    quint32 len = data.count();
    tmp << len;
    if (len > 0) {
        // phase 3
        tmp.writeRawData( data.data(), (int)len );
    }

    // phase 4
    tmp << TEST_MSG_END;

    flush();    // Force socket to send data now
}
예제 #2
0
파일: OSV2.cpp 프로젝트: r2d2/ard-stuff
/**
 * \brief    Send an Oregon message
 * \param    data   The Oregon message
 */
void OSV2::sendOregon()
{
    sendPreamble();
    sendData(OregonMessageBuffer, getMessageSize());
    sendPostamble();
}