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