|
|
#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;
|
|
|
}
|
|
|
|