storehk.cpp
92 lines
| 2.3 KiB
| text/x-c
|
CppLexer
r76 | #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; | ||||
} | ||||