2014-08-11 3 views
1

При чтении из порта с помощью функции readdata потери данных qextserialport класса происходитqserialport данные отсутствуют при чтении из порта, но возвращает 9 байт доступных

Например serialobj->bytesavailable возвращает 9 байт, но в то время как serialobj->readData возвращает только два символа на другом ПИК микроконтроллера

+0

В readData() документ 's, я видел, что readData возвращают целое число. (Считывает до maxSize байты с устройства в данные и возвращает количество прочитанных байтов или -1, если произошла ошибка.). Какое значение у вас есть? – Martin

+0

У меня есть общее количество полученных байтов, –

+0

char arr_cReadbuffer [1024]; int nBytesAvailable = m_serialportCoProcessor-> bytesAvailable(); qDebug() << "\ r \ n доступных байтов:" << nBytesAvailable; if (nBytesAvailable> 0) { /* читать доступные байты */ int nBytesReceived = m_serialportCoProcessor-> readData (arr_cReadbuffer, nBytesAvailable); qDebug() << "\ r \ n Полученные байты" << nBytesReceived << arr_cReadbuffer; «доступные байты: 9» Bytes Received 9^Mk1 только 4 символов, доступных в момент чтения –

ответ

1

Судя по комментариям, вы пытаетесь распечатать полученные байты на консоли. Очевидно, что некоторые из байтов, которые вы пытаетесь распечатать, не печатаются и не создают визуального вывода.

Может быть, вы хотите, чтобы увидеть значения байтов в шестнадцатеричном базе:

qDebug() << serialObj->readData().toHex(); 
+1

yes Я не могу напечатать байты –

+0

@TeamSwatkats Эти байты не подлежат печати, поэтому их печать не производит видимых результатов. –

+0

Как я могу получить все байты, есть ли какие-либо средства –