Import existing sources

This commit is contained in:
feedc0de committed 2022-09-25 01:31:36 +02:00
1 parent 38704e2f03
commit 68a17e2442
26 files changed
+1660

No files matched your search

+67
View File
@@ -0,0 +1,67 @@
#include <QCoreApplication>
#include <QSettings>
#include <QUrl>
#include "espremoteagent.h"
#include "espremoteagentcontainers.h"
#include "webserverutils.h"
int main(int argc, char *argv[])
{
qSetMessagePattern(QStringLiteral("%{time dd.MM.yyyy HH:mm:ss.zzz} "
"["
"%{if-debug}D%{endif}"
"%{if-info}I%{endif}"
"%{if-warning}W%{endif}"
"%{if-critical}C%{endif}"
"%{if-fatal}F%{endif}"
"] "
"%{function}(): "
"%{message}"));
QCoreApplication app{argc, argv};
QSettings settings{"espremoteagent.ini", QSettings::IniFormat};
std::vector<SerialPortConfig> serialPortConfigs;
const auto probePort = [&](auto group){
auto port = settings.value(QStringLiteral("%0/port").arg(group)).toString();
if (port.isEmpty())
return;
QUrl url;
if (auto urlStr = settings.value(QStringLiteral("%0/url").arg(group)).toString(); !urlStr.isEmpty())
url = QUrl{std::move(urlStr)};
int baudrate{};
bool ok{};
baudrate = settings.value(QStringLiteral("%0/baudrate").arg(group)).toInt(&ok);
if (!ok)
qFatal("could not parse baudrate for %s", qPrintable(group));
serialPortConfigs.emplace_back(SerialPortConfig{
.port=std::move(port),
.baudrate=baudrate,
.url=std::move(url)
});
};
probePort("PortA");
probePort("PortB");
QHostAddress webserverListen = parseHostAddress(settings.value("Webserver/listen").toString());
int webserverPort;
{
bool ok{};
webserverPort = settings.value("Webserver/port", 1234).toInt(&ok);
if (!ok)
qFatal("could not parse webserver port");
}
EspRemoteAgent agent{std::move(serialPortConfigs)};
if (!agent.listen(webserverListen, webserverPort))
qFatal("could not start listening %s", qPrintable(agent.errorString()));
return app.exec();
}