Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
239 Brean 1
/***************************************************************************
2
 *   Copyright (C) 2008 by Manuel Schrape                                  *
3
 *   manuel.schrape@gmx.de                                                 *
4
 *   and Andreas Bresser bresser@informatik.uni-bremen.de                  *
5
 *                                                                         *
6
 *   This program is free software; you can redistribute it and/or modify  *
7
 *   it under the terms of the GNU General Public License as published by  *
8
 *   the Free Software Foundation; either version 2 of the License.        *
9
 *                                                                         *
10
 *   This program is distributed in the hope that it will be useful,       *
11
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13
 *   GNU General Public License for more details.                          *
14
 *                                                                         *
15
 *   You should have received a copy of the GNU General Public License     *
16
 *   along with this program; if not, write to the                         *
17
 *   Free Software Foundation, Inc.,                                       *
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19
 ***************************************************************************/
20
 
21
#include "CSVLogger.h"
22
 
240 Brean 23
CSVLogger::CSVLogger(cSettings * settings, sMode * mode) {
239 Brean 24
    // QFile-Instanz (Log-Datei)
25
    csvfile = new QFile("");
26
    this->settings = settings;
240 Brean 27
    this->mode = mode;
239 Brean 28
}
29
 
30
CSVLogger::~CSVLogger() {
31
    close();
32
}
33
 
34
//datei ist geöffnet bedeutet wir sind soweit und können schreiben
35
bool CSVLogger::ready() {
36
    return csvfile->isOpen();
37
}
38
 
39
//Datei schließen
40
void CSVLogger::close()
41
{
42
    if (csvfile->isOpen())
43
        csvfile->close();
44
}
45
 
46
//neuen Log erstellen
240 Brean 47
void CSVLogger::newLog() {
239 Brean 48
    if (!csvfile->isOpen())
49
    {
240 Brean 50
        QString mode_name = mode->Hardware;
51
        if (mode_name.size() == 0) {
52
            mode_name = QString("groundstation_log");
53
        }
54
        QString filename = settings->DIR.Logging +
55
                           mode_name + "_" +
56
                           QDate::currentDate().toString(("yyyy-MM-dd")) + "_" +
57
                           QTime::currentTime().toString("hh-mm") + ".csv";
239 Brean 58
        csvfile = new QFile(filename);
59
        if (!csvfile->exists())
60
        {
61
            csvfile->open(QIODevice::Append | QIODevice::Text);
62
        }
63
    }
64
}
65
 
66
//daten schreiben
67
void CSVLogger::write(int * analogData) {
68
    if (csvfile->isOpen())
69
    {
70
        QTextStream out(csvfile);
71
        for (int a=0; a<MaxAnalog; a++)
72
        {
73
            if (settings->Analog1.LogView[a])
74
            {
75
                out << analogData[a];
76
                if (a < MaxAnalog - 1)
77
                    out << ';';
78
            }
79
        }
80
        out << "\n";
81
    }
82
}