##// END OF EJS Templates
Display bug in the TM echo bridge thumbnail corrected
Display bug in the TM echo bridge thumbnail corrected

File last commit:

r24:52cca9b26092 default
r26:39e6fee21433 default
Show More
lfrxmlparser.cpp
63 lines | 1.7 KiB | text/x-c | CppLexer
#include "lfrxmlparser.h"
LFRXmlParser::LFRXmlParser(QObject *parent) :
QObject(parent)
{
}
void LFRXmlParser::processIncomingStr(QString incomingStr)
{
int indexOfStartStr;
int indexOfStopStr;
int result;
QString eventBinaryStr;
QString startStr = "<EventBinary>";
QString stopStr = "</EventBinary>";
xmlBuffer.append(incomingStr);
result = findPattern( startStr, stopStr, &indexOfStartStr, &indexOfStopStr);
while( result !=-1 )
{
eventBinaryStr = xmlBuffer.mid(
indexOfStartStr + startStr.size(),
indexOfStopStr - (indexOfStartStr + startStr.size() ) );
processIncomingData( eventBinaryStr );
xmlBuffer.remove(0, indexOfStopStr + stopStr.size());
result = findPattern( startStr, stopStr, &indexOfStartStr, &indexOfStopStr);
}
}
int LFRXmlParser::findPattern(QString startStr, QString stopStr, int *indexOfStartStr, int *indexOfStopStr)
{
*indexOfStartStr = xmlBuffer.indexOf(startStr);
*indexOfStopStr = xmlBuffer.indexOf(stopStr);
if ( (*indexOfStartStr==-1) | (*indexOfStopStr==-1) | (*indexOfStartStr > *indexOfStopStr) )
{
return -1;
}
else
{
return 0;
}
}
void LFRXmlParser::processIncomingData(const QString &ch)
{
QByteArray newdat;
char *values;
unsigned char *ccsdsData;
unsigned int ccsdsSize = 0;
TMPacketToRead *incomingPacket;
newdat = QByteArray::fromHex(ch.toAscii());
values = (char*) newdat.data();
ccsdsSize = newdat.size();
ccsdsData = (unsigned char *) values;
incomingPacket = new TMPacketToRead(ccsdsData, ccsdsSize);
emit sendPacket( incomingPacket );
}