У меня проблема с правильной функцией QByteArray.Я не знаю, что я делаю, wronge.Я не понимаю, почему вывод такой, какой он есть.На мой взгляд, в первом примере вывода строка между xxxx и ----- должна быть 4080-1897, а значит 2183. Может кто-нибудь сказать мне, что не так?
QByteArray serialByteBuffer; //serialByteBuffer is already filled
unsigned char start_stop = 0xFE;
// ------------------------------------------------------------------------
if(serialByteBuffer.count(start_stop)==2){
qDebug()<< "xxxxxxxxxxxx";
qDebug()<< serialByteBuffer.size();
qDebug()<< "+++++++++++++";
int z = serialByteBuffer.indexOf(start_stop);
qDebug()<< z;
qDebug()<< "xxxxxxxxxxxxx+";
QByteArray y = serialByteBuffer.right(z);
qDebug() << y.size();
qDebug()<< "---------------";
serialByteBuffer.clear();
}
Вывод:
xxxxxxxxxxxx
8160
+++++++++++++
2111
xxxxxxxxxxxxx+
2111
---------------
или
xxxxxxxxxxxx
4080
+++++++++++++
1897
xxxxxxxxxxxxx+
1897
---------------
или ...