9 #include "dualfilelogger.h"
10 #include "httplistener.h"
12 #include "staticfilecontroller.h"
15 #include <QLibraryInfo>
16 #include <QTranslator>
21 #define APPNAME "fotobot"
24 #define ORGANISATION "Hobrasoft"
27 #define DESCRIPTION "Applications gets data from fronius invertors"
32 QCoreApplication* app = application();
33 app->setApplicationName(
APPNAME);
38 QSettings* mainLogSettings=
new QSettings(configFileName,QSettings::IniFormat,app);
39 mainLogSettings->beginGroup(
"mainLogFile");
40 QSettings* debugLogSettings=
new QSettings(configFileName,QSettings::IniFormat,app);
41 debugLogSettings->beginGroup(
"debugLogFile");
42 Logger* logger=
new DualFileLogger(mainLogSettings,debugLogSettings,10000,app);
47 QSettings localeSettings(configFileName, QSettings::IniFormat, app);
48 localeSettings.beginGroup(
"locale");
49 QString locale = localeSettings.value(
"locale", QLocale::system().name()).toString();
50 QTextCodec::setCodecForTr(QTextCodec::codecForName(
"utf8"));
51 QTranslator *translator =
new QTranslator;
52 QString an = app->applicationName();
53 QString lp = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
54 QString tf = an +
"_" + locale;
55 QString l1 =
"/usr/share/locale/";
56 QString l2 =
"/usr/local/share/locale/";
57 QString l3 = QString(
"/usr/share/") + an;
58 QString tx = locale +
"/LC_MESSAGES/" + an;
60 if (translator->load (tf, lp ) )
break;
61 if (translator->load (tf,
".") )
break;
62 if (translator->load (tf, an ) )
break;
63 if (translator->load (tx, l1 ) )
break;
64 if (translator->load (tx, l2 ) )
break;
65 if (translator->load (tf, l3 ) )
break;
66 qWarning() <<
"Translations not loaded";
69 app->installTranslator(translator);
72 QSettings* databaseSettings =
new QSettings(configFileName,QSettings::IniFormat,app);
73 databaseSettings->beginGroup(
"database");
74 Static::db =
new DATABASE(databaseSettings, app);
83 Static::interfacebox->setDatabase(Static::db);
84 Static::interfacebox->
start();
87 Static::slunce =
new SLUNCE(app);
90 Static::slunce->
setObserver(geo.latitude.toDouble(), geo.longitude.toDouble());
91 Static::slunce->start();
94 QSettings* templateSettings=
new QSettings(configFileName,QSettings::IniFormat,app);
95 templateSettings->beginGroup(
"templates");
99 QSettings* sessionSettings=
new QSettings(configFileName,QSettings::IniFormat,app);
100 sessionSettings->beginGroup(
"sessions");
104 QSettings* fileSettings=
new QSettings(configFileName,QSettings::IniFormat,app);
105 fileSettings->beginGroup(
"docroot");
109 QSettings* listenerSettings=
new QSettings(configFileName,QSettings::IniFormat,app);
110 listenerSettings->beginGroup(
"listener");
111 new HttpListener (listenerSettings,
new RequestMapper(app), app);
113 qWarning(
"Service has started");
118 qWarning(
"Service has been stopped");
124 : QtService<QCoreApplication>(argc, argv,
APPNAME) {
Startup(int argc, char *argv[])
Manages list of invertors and their threads.
Class describing database table GEOCOORDINATES.
Astronomické výpočty polohy slunce.
static StaticFileController * staticFileController
static HttpSessionStore * sessionStore
Virtual class for invertor communication.
static TemplateLoader * templateLoader
void setObserver(double lat, double lng)
void start(Priority priority=InheritPriority)
Starts the thread.
void openLines()
Opens all configured invertors.
Class for communication with database.
static QString getConfigFileName()
DBT_GEOCOORDINATES geocoordinates()
Returns geocoordinates.
Simple database maintenance made every 24 hours.