src/bmsapp.cpp

Sun, 27 Mar 2022 20:38:25 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 27 Mar 2022 20:38:25 +0200
changeset 89
231a0b1292f3
parent 85
34ca34ed81df
permissions
-rw-r--r--

Added MQTT settings.

/**
 * bmsapp.cpp is part of bmsapp.
 *
 * bmsapp is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * bmsapp is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include "bmsapp.h"
#include "database/database.h"
#include "config.h"
#include "MainWindow.h"


bool Bmsapp::initialize(bool useDevelop)
{
    readsettings();

    // QLocale german(QLocale::German,QLocale::Germany);
    // QLocale::setDefault(german);

    qDebug() << "Loading Database...";

    db = new DataBase();
    return db->openDataBase(useDevelop);
}


void Bmsapp::cleanup()
{
    qDebug() << "BMSapp is cleaning up.";

    writesettings();
    db->closeDataBase();
}


void Bmsapp::readsettings()
{
    QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp");
    
    settings.beginGroup("dbprod");
    dbProd.host = settings.value("host").toString();
    if (dbProd.host.isEmpty()) {
	dbProd.host = "localhost";
	dbProd.port = "3306";
	dbProd.name = "bms_prod";
	dbProd.user = "nobody";
	dbProd.pass = "secret";
	dbProd.charset = "utf8";
	settings.setValue("host", dbProd.host);
	settings.setValue("port", dbProd.port);
	settings.setValue("name", dbProd.name);
	settings.setValue("user", dbProd.user);
	settings.setValue("pass", dbProd.pass);
	settings.setValue("charset", dbProd.charset);
    } else {
    	dbProd.port = settings.value("port").toString();
   	dbProd.name = settings.value("name").toString();
	dbProd.user = settings.value("user").toString();
    	dbProd.pass = settings.value("pass").toString();
	dbProd.charset = settings.value("charset").toString();
    }
    settings.endGroup();
    qDebug() << "MySQL prod" << dbProd.host << dbProd.port << dbProd.name << dbProd.pass;

    settings.beginGroup("dbdev");
    dbDev.host = settings.value("host").toString();
    if (dbDev.host.isEmpty()) {
        dbDev.host = "localhost";
        dbDev.port = "3306";
        dbDev.name = "bms_dev";
	dbDev.user = "nobody";
        dbDev.pass = "secret";
	dbDev.charset = "utf8";
        settings.setValue("host", dbDev.host);
        settings.setValue("port", dbDev.port);
        settings.setValue("name", dbDev.name);
	settings.setValue("user", dbDev.user);
        settings.setValue("pass", dbDev.pass);
	settings.setValue("charset", dbDev.charset);
    } else {
        dbDev.port = settings.value("port").toString();
        dbDev.name = settings.value("name").toString();
	dbDev.user = settings.value("user").toString();
        dbDev.pass = settings.value("pass").toString();
	dbDev.charset = settings.value("charset").toString();
    }
    settings.endGroup();
    qDebug() << "MySQL dev" << dbDev.host << dbDev.port << dbDev.name << dbDev.pass;

    settings.beginGroup("mqttprod");
    mqttProd.host = settings.value("host").toString();
    if (mqttProd.host.isEmpty()) {
        mqttProd.host = "localhost";
        mqttProd.port = "1883";
        mqttProd.user = "nobody";
        mqttProd.pass = "secret";
        settings.setValue("host", mqttProd.host);
        settings.setValue("port", mqttProd.port);
        settings.setValue("user", mqttProd.user);
        settings.setValue("pass", mqttProd.pass);
    } else {
        mqttProd.port = settings.value("port").toString();
        mqttProd.user = settings.value("user").toString();
        mqttProd.pass = settings.value("pass").toString();
    }
    settings.endGroup();
    qDebug() << "MQTT prod" << mqttProd.host << mqttProd.port << mqttProd.user << mqttProd.pass;

    settings.beginGroup("mqttdev");
    mqttDev.host = settings.value("host").toString();
    if (mqttDev.host.isEmpty()) {
        mqttDev.host = "localhost";
        mqttDev.port = "1883";
        mqttDev.user = "nobody";
        mqttDev.pass = "secret";
        settings.setValue("host", mqttDev.host);
        settings.setValue("port", mqttDev.port);
        settings.setValue("user", mqttDev.user);
        settings.setValue("pass", mqttDev.pass);
    } else {
        mqttDev.port = settings.value("port").toString();
        mqttDev.user = settings.value("user").toString();
        mqttDev.pass = settings.value("pass").toString();
    }
    settings.endGroup();
    qDebug() << "MQTT dev" << mqttDev.host << mqttDev.port << mqttDev.user << mqttDev.pass;
}


void Bmsapp::writesettings()
{
    QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp");

    settings.beginGroup("dbprod");
    settings.setValue("host", dbProd.host);
    settings.setValue("port", dbProd.port);
    settings.setValue("name", dbProd.name);
    settings.setValue("user", dbProd.user);
    settings.setValue("pass", dbProd.pass);
    settings.setValue("charset", dbProd.charset);
    settings.endGroup();

    settings.beginGroup("dbdev");
    settings.setValue("host", dbDev.host);
    settings.setValue("port", dbDev.port);
    settings.setValue("name", dbDev.name);
    settings.setValue("user", dbDev.user);
    settings.setValue("pass", dbDev.pass);
    settings.setValue("charset", dbDev.charset);
    settings.endGroup();

    settings.beginGroup("mqttprod");
    settings.setValue("host", mqttProd.host);
    settings.setValue("port", mqttProd.port);
    settings.setValue("user", mqttProd.user);
    settings.setValue("pass", mqttProd.pass);
    settings.endGroup();

    settings.beginGroup("mqttdev");
    settings.setValue("host", mqttDev.host);
    settings.setValue("port", mqttDev.port);
    settings.setValue("user", mqttDev.user);
    settings.setValue("pass", mqttDev.pass);
    settings.endGroup();

    qDebug() << "writesettings() done.";
}


int Bmsapp::run(bool useDevelop, bool startConfig) {

    int rc = 0;

    qDebug() << Q_FUNC_INFO;
    if (! initialize(useDevelop)) {
	cleanup();
	return 1;
    }

    MainWindow w;
    w.show();
    rc = qApp->exec();

    cleanup();

    qDebug() << Q_FUNC_INFO << "Cleaned up.  Returning " << rc;
    return rc;
}

mercurial