##// END OF EJS Templates
spacecraft potential storage added to lfrsgse...
spacecraft potential storage added to lfrsgse entermode slightly modified

File last commit:

r76:c2ac69e28c43 default
r76:c2ac69e28c43 default
Show More
storehk.cpp
92 lines | 2.3 KiB | text/x-c | CppLexer
#include "storehk.h"
StoreHK::StoreHK(QObject *parent) :
QObject(parent)
{
logFile = new QFile();
}
void StoreHK::buildDataAsQByteArray( short param1, short param2, short param3, unsigned int coarseTime, unsigned int fineTime )
{
double sampleTime;
QByteArray sampleTimeQByteArray;
initDataBuffer();
sampleTime = 0;
if (storageEnabled == true)
{
sampleTime = (double) (coarseTime)
+ ((double) (fineTime)) * 1. / 65536.;
sampleTimeQByteArray.setNum( sampleTime, 'f', 10 );
dataBuffer.append( sampleTimeQByteArray + ' '
+ QByteArray::number(param1) + ' '
+ QByteArray::number(param2) + ' '
+ QByteArray::number(param3) );
storeDataBuffer();
}
}
void StoreHK::buildFileName()
{
QTime time;
QDate date;
QString dateTime;
QString prefix;
date = QDate::currentDate();
time = QTime::currentTime();
dateTime = QString::number( date.year() ) + "_"
+ QString::number( date.month() ) + "_"
+ QString::number( date.day() ) + "-"
+ QString::number( time.hour() ) + "_"
+ QString::number( time.minute() ) + "_"
+ QString::number( time.second() );
prefix = defaultStorageDirectory + "/" + dateTime + "_" + hkName ;
if(this->logFile->isOpen()) this->logFile->close();
this->logFile->setFileName( prefix + ".data");
if(this->logFile->open(QIODevice::WriteOnly)) this->logFileStrm = new QTextStream(this->logFile);
*(this->logFileStrm) << "time value1 value2 value3" << endl;
storageEnabled = true;
}
void StoreHK::storeDataBuffer()
{
*(this->logFileStrm) << dataBuffer << endl;
if (storageEnabled == false){
this->logFileStrm->flush();
this->logFile->waitForBytesWritten(3000);
this->logFile->close();
}
}
void StoreHK::storeData()
{
if (logFileEn == false)
{
buildFileName();
logFileEn = true;
}
else
{
// disable storage
storageEnabled = false;
logFileEn = false;
}
}
void StoreHK::initDataBuffer()
{
dataBuffer.clear();
}
void StoreHK::setDefaultStorageDirectory(QString nameOfTheDirectory)
{
defaultStorageDirectory = nameOfTheDirectory;
}