Fotobot
Get data from your photovoltaic plant
database.h
Go to the documentation of this file.
1 
7 #ifndef _DATABASE_H_
8 #define _DATABASE_H_
9 
10 #include <QObject>
11 #include <QSettings>
12 #include <QSqlDatabase>
13 #include <QMutex>
14 #include <QTimer>
15 #include "database_tables.h"
16 
17 
47 class DATABASE : public QObject {
48  Q_OBJECT
49  public:
50  ~DATABASE();
51  DATABASE(QSettings *settings, QObject *parent = NULL);
52 
53  QList<DBT_LINES> lines(int line = 0);
54  QList<DBT_INVERTORS> invertors(int line = 0);
55  QList<DBT_INVERTORS> invertors(const QList<int>& invertors);
56  QList<DBT_INTERFACEBOXES> interfaceboxes(int line = 0);
57  QList<DBT_INTERFACEBOXES> interfaceboxes(const QList<int>& interfaceboxes);
59  QList<DBT_DATA_VW> data(const QDateTime& from = QDateTime(), const QDateTime& to = QDateTime(), bool limit = true);
60  QList<DBT_USERS> users(const QString& user = QString());
61  QList<DBT_MAINTENANCE> maintenance();
62  QList<DBT_LINES_STATUS> linesStatus();
63 
64  signals:
72  void databaseChanged();
73 
74  public slots:
75  void insertData(DBT_DATA);
76  void execMaintenance();
77  void deleteLine(QSqlDatabase&, int);
78  void deleteLine( int);
79  void deleteInvertor(QSqlDatabase&, int);
80  void deleteInvertor( int);
81  void deleteInterfacebox(QSqlDatabase&, int);
82  void deleteInterfacebox( int);
83  void deleteUser(QSqlDatabase&, QString userid);
84  void deleteUser( QString userid);
85  QString changePassword(QSqlDatabase&, DBT_USERS);
86  QString changePassword( DBT_USERS);
87  void saveUser(QSqlDatabase&, DBT_USERS);
88  void saveUser( DBT_USERS);
89  int saveLine(QSqlDatabase&, DBT_LINES);
90  int saveLine( DBT_LINES);
91  int saveInvertor(QSqlDatabase&, DBT_INVERTORS);
93  int saveInterfacebox(QSqlDatabase&, DBT_INTERFACEBOXES);
95  void saveMaintenance(QSqlDatabase&, DBT_MAINTENANCE);
97  void setGeocoordinates(QSqlDatabase&, DBT_GEOCOORDINATES);
99  void commit();
100 
101  private:
102  bool m_in_transaction;
103  QTimer *m_timerCommit;
104  QSqlDatabase m_db;
105  QSqlDatabase m_dbc;
106  void create(QSqlDatabase& db);
107  void upgrade(QSqlDatabase& db);
108  QSqlDatabase open(const QString& dbname);
109  QString nulld(const QDateTime& x);
110  QString nulli(const QVariant& x);
111  QString nullf(const QVariant& x);
112  QString nulls(const QString& x);
113  QString nullb(bool x);
114  QMutex m_mutex;
115 
116  QString m_synchronous;
117 };
118 
119 #endif
QList< DBT_USERS > users(const QString &user=QString())
Returs list of users or selected user.
Definition: database.cpp:274
QList< DBT_INTERFACEBOXES > interfaceboxes(int line=0)
Returns list of interfaceboxes filtered by line number.
Definition: database.cpp:524
QString changePassword(QSqlDatabase &, DBT_USERS)
Updates user's info (actually only password is changed)
Definition: database.cpp:308
Class describing database table GEOCOORDINATES.
QString nullb(bool x)
Formats bool for database store.
Definition: database.cpp:1327
Class describing database table MAINTENANCE.
QList< DBT_LINES > lines(int line=0)
Returns list of communications lines.
Definition: database.cpp:380
int saveInvertor(QSqlDatabase &, DBT_INVERTORS)
Insert or update INVERTOR.
Definition: database.cpp:922
void commit()
Commit transactions.
Definition: database.cpp:101
QString nulls(const QString &x)
Formats QString for database store.
Definition: database.cpp:1312
Class describing database table DATA.
QList< DBT_DATA_VW > data(const QDateTime &from=QDateTime(), const QDateTime &to=QDateTime(), bool limit=true)
Returns data for all invertors.
Definition: database.cpp:611
QList< DBT_INVERTORS > invertors(int line=0)
Returns list of invertors filtered by line number.
Definition: database.cpp:411
void execMaintenance()
Database maintenance.
Definition: database.cpp:1158
QString nulli(const QVariant &x)
Formats QVariant - integer for database store.
Definition: database.cpp:1276
int saveInterfacebox(QSqlDatabase &, DBT_INTERFACEBOXES)
Insert or update Interfacebox.
Definition: database.cpp:1038
void deleteLine(QSqlDatabase &, int)
Delete line in database.
Definition: database.cpp:1109
void databaseChanged()
Signals when information about lines or invertors changed.
void saveUser(QSqlDatabase &, DBT_USERS)
Updates user's info.
Definition: database.cpp:332
void create(QSqlDatabase &db)
Creates new database structure in opened file.
Definition: database.cpp:116
QList< DBT_MAINTENANCE > maintenance()
Returns list of DBT_MAINTENANCE.
Definition: database.cpp:1222
void deleteInterfacebox(QSqlDatabase &, int)
Delete interfacebox in database.
Definition: database.cpp:1145
Class for communication with database.
Definition: database.h:47
QString nullf(const QVariant &x)
Formats QVariant - double for database store.
Definition: database.cpp:1294
Class describing database table USERS.
void insertData(DBT_DATA)
Writes data to database table DATA.
Definition: database.cpp:734
int saveLine(QSqlDatabase &, DBT_LINES)
Insert or update LINE.
Definition: database.cpp:857
QMutex m_mutex
Mutex for locking between threads.
Definition: database.h:114
void deleteInvertor(QSqlDatabase &, int)
Delete invertor in database.
Definition: database.cpp:1129
DBT_GEOCOORDINATES geocoordinates()
Returns geocoordinates.
Definition: database.cpp:581
void saveMaintenance(QSqlDatabase &, DBT_MAINTENANCE)
Updates maintenace record in database.
Definition: database.cpp:1246
void setGeocoordinates(QSqlDatabase &, DBT_GEOCOORDINATES)
update geocoordinates
Definition: database.cpp:1077
QList< DBT_LINES_STATUS > linesStatus()
Returns status of lines.
Definition: database.cpp:1186
Class describing database table LINES.
QString nulld(const QDateTime &x)
Formats QDateTime for database store.
Definition: database.cpp:1262
Class describing database table INVERTORS.
QSqlDatabase open(const QString &dbname)
Opens or creates new database file.
Definition: database.cpp:72