В моем коде Qt есть функция f1 (), которая испускает QSignal с массивом символов двоичных данных в качестве параметра. Моя проблема в том, что QSlot, подключенный к этому QSignal, получает этот массив, но данные неполные: он получает данные до первого байта «0x00». Я пытался изменить char [] на char *, не помогло. Как я могу получить полные данные, включая байты «0x00»?
connect(dataStream, &BaseConnection::GotPacket, this, &myClass::HandleNewPacket);
void f1()
{
qDebug() << "Binary read = " << inStream.readRawData(logBuffer, static_cast<int>(frmIndex->dataSize));
//logBuffer contains the following hexa bytes: "10 10 01 30 00 00 30 00 00 00 01 00 D2 23 57 A5 38 A2 05 00 E8 03 00 00 6C E9 01 00 00 00 00 00 0B 00 00 00 00 00 00 00 A6 AF 01 00 00 00 00 00"
Q_EMIT GotPacket(logBuffer, frmIndex->dataSize);
}
void myClass::HandleNewPacket(char p[LOG_BUFFER_SIZE], int size)
{
// p contains the following hexa bytes : "10 10 01 30"
}
Спасибо.