#include "incomingtcparser.h" IncomingTCParser::IncomingTCParser(QObject *parent) : QObject(parent) { incompleteData = false; localDataArray.clear(); } void IncomingTCParser::processIncomingQByteArray(QByteArray incomingQByteArray) { int ccsdsSize; bool keepParsing; QByteArray tcPacket; keepParsing = true; localDataArray.append( incomingQByteArray ); if (localDataArray.size() >= 4 ) { while(keepParsing == true) { ccsdsSize = ( (unsigned char) localDataArray[1] ) * 256 * 256 + ( (unsigned char) localDataArray[2] ) * 256 + ( (unsigned char) localDataArray[3] ); if (localDataArray.size() < (ccsdsSize+4) ) keepParsing = false; else { tcPacket = QByteArray( localDataArray ); tcPacket.resize( ccsdsSize + 4 ); emit sendPacketUsingSpaceWire( tcPacket ); localDataArray.remove(0, ccsdsSize + 4); } if (localDataArray.size() >= 4 ) keepParsing = true; else keepParsing = false; } } }