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
 
241 KeyOz 23
CSVLogger::CSVLogger(cSettings * settings, sMode * mode)
24
{
239 Brean 25
    // QFile-Instanz (Log-Datei)
26
    csvfile = new QFile("");
27
    this->settings = settings;
240 Brean 28
    this->mode = mode;
239 Brean 29
}
30
 
241 KeyOz 31
CSVLogger::~CSVLogger()
32
{
239 Brean 33
    close();
34
}
35
 
36
//datei ist geöffnet bedeutet wir sind soweit und können schreiben
241 KeyOz 37
bool CSVLogger::ready()
38
{
239 Brean 39
    return csvfile->isOpen();
40
}
41
 
42
//Datei schließen
43
void CSVLogger::close()
44
{
45
    if (csvfile->isOpen())
46
        csvfile->close();
47
}
48
 
49
//neuen Log erstellen
241 KeyOz 50
void CSVLogger::newLog()
51
{
239 Brean 52
    if (!csvfile->isOpen())
53
    {
240 Brean 54
        QString mode_name = mode->Hardware;
241 KeyOz 55
 
56
        if (mode_name.size() == 0)
57
        {
240 Brean 58
            mode_name = QString("groundstation_log");
59
        }
241 KeyOz 60
 
61
        QString filename = settings->DIR.Logging + mode_name + "_" +
240 Brean 62
                           QDate::currentDate().toString(("yyyy-MM-dd")) + "_" +
63
                           QTime::currentTime().toString("hh-mm") + ".csv";
241 KeyOz 64
 
239 Brean 65
        csvfile = new QFile(filename);
241 KeyOz 66
 
239 Brean 67
        if (!csvfile->exists())
68
        {
69
            csvfile->open(QIODevice::Append | QIODevice::Text);
241 KeyOz 70
 
71
            QTextStream Out(csvfile);
72
 
73
            for (int a = 0; a < MaxAnalog; a++)
74
            {
75
                if (settings->Analog1.LogView[a])
76
                {
77
                    Out << settings->Analog1.Label[a];
78
 
79
                    if (a < MaxAnalog - 1)
80
                        Out << ';';
81
                }
82
            }
83
            Out << "\n";
239 Brean 84
        }
241 KeyOz 85
        else
86
        {
87
            csvfile->open(QIODevice::Append | QIODevice::Text);
88
        }
239 Brean 89
    }
90
}
91
 
92
//daten schreiben
241 KeyOz 93
void CSVLogger::write(int * analogData)
94
{
239 Brean 95
    if (csvfile->isOpen())
96
    {
97
        QTextStream out(csvfile);
98
        for (int a=0; a<MaxAnalog; a++)
99
        {
100
            if (settings->Analog1.LogView[a])
101
            {
102
                out << analogData[a];
103
                if (a < MaxAnalog - 1)
104
                    out << ';';
105
            }
106
        }
107
        out << "\n";
108
    }
241 KeyOz 109
}