#pragma once #include #include #include "JDefines.h" #include "JTerminal.h" #include "JConfig.h" #include "JMessageHandler.h" #include "WebApiServer.h" #include "FlashDataWebSocketServer.h" #include "exeGetError.h" #include "exePostError.h" #include "StartReceiveFileWebApiCommand.h" #include "StopReceiveFileWebApiCommand.h" namespace Incart::FileSystemProxyServer { class LinkConfiguration : public QObject { Q_OBJECT private: const bool MYDEBUG = false; Net::WebSockets::WebSocketServer* m_dataListener; public: explicit LinkConfiguration(QString appPath, bool isLocalNetwork) : QObject() { Common::JT() << __PRETTY_FUNCTION__; QString defaultExamDataFolder = "C:/KTWin/Data"; // загрузка файла конфигурации сети QString networkSettingsPath = appPath + "/NetworkSettings.json"; if (!Common::JFile::isFile(networkSettingsPath)) { Common::JTerminal(JCL_RED) << __PRETTY_FUNCTION__ << "no file" << networkSettingsPath; Common::JSys::abort(); } QByteArray& data = Common::JFile::readFile(networkSettingsPath); QJsonDocument networkSettingsDocument = QJsonDocument::fromJson(data); QVariantMap networkSettingsMap; if (networkSettingsDocument.isObject()) { networkSettingsMap = networkSettingsDocument.object().toVariantMap(); std::cout << __PRETTY_FUNCTION__ << " isLocalNetwork=" << isLocalNetwork << std::endl; if (isLocalNetwork) { networkSettingsMap["WebApiServerIP"] = "127.0.0.1"; } Common::JConfig::addRgs(networkSettingsMap); } else { Common::JTerminal(JCL_YELLOW) << __PRETTY_FUNCTION__ << "json object interpretation error"; } // запуск WebSocketServer - для получения данных с SD карты quint16 dataListenerPort = static_cast(Common::JConfig::getRg("WebSocketPort").toUInt()); static FlashDataWebSocketServer dataListener(dataListenerPort); m_dataListener = &dataListener; // конфигуратор команд для WebTcpIpServer static Net::WebApi::QMapWebApiGet m_exeGet; //{ static Net::WebApi::exeGetError errorExeGet; m_exeGet["__err"] = &errorExeGet; // по умолчанию static StartReceiveFileWebApiCommand startReceiveFileWebApiCommand(&dataListener, defaultExamDataFolder); m_exeGet["startReceiveFile"] = &startReceiveFileWebApiCommand; static StopReceiveFileWebApiCommand stopReceiveFileWebApiCommand(&dataListener); m_exeGet["stopReceiveFile"] = &stopReceiveFileWebApiCommand; //} static Net::WebApi::QMapWebApiPost m_exePost; { static Net::WebApi::exePostError errorExePost; m_exePost["__err"] = &errorExePost; // по умолчанию } // запуск WebTcpIpServer - локального командного интерфейса quint16 webip_server_ports = static_cast(Common::JConfig::getRg("WebApiServerPort").toUInt()); static Net::WebApi::WebApiServer m_wip(webip_server_ports,m_exeGet,m_exePost); } }; } // namespace Incart::FileSystemProxyServer