19 #include "DpaHandler.h" 26 #include "IqrfLogging.h" 116 void run(
const std::string& cfgFileName);
119 void executeDpaTransaction(DpaTransaction& dpaTransaction)
override;
121 void unregisterAsyncMessageHandler(
const std::string& serviceId)
override;
123 std::string doCommand(
const std::string&
cmd)
override;
126 const std::string&
getTrType()
override {
return m_trType; }
127 const std::string&
getMcuType()
override {
return m_mcuType; }
128 const std::string&
getOsBuild()
override {
return m_osBuild; }
142 void setMode(
Mode mode);
145 std::mutex m_modeMtx;
148 std::map<std::string, AsyncMessageHandlerFunc> m_asyncMessageHandlers;
149 std::mutex m_asyncMessageHandlersMutex;
150 void asyncDpaMessageHandler(
const DpaMessage& dpaMessage);
158 void startServices();
159 void startScheduler();
169 void * getFunction(
const std::string& methodName,
bool mandatory)
const;
170 void * getCreateFunction(
const std::string& componentName,
bool mandatory)
const;
172 IChannel* m_iqrfInterface;
173 DpaHandler* m_dpaHandler;
175 void executeDpaTransactionFunc(DpaTransaction* dpaTransaction);
179 std::map<std::string, std::unique_ptr<ISerializer>> m_serializers;
180 std::map<std::string, std::unique_ptr<IService>> m_services;
181 std::map<std::string, std::unique_ptr<IMessaging>> m_messagings;
190 bool m_running =
false;
191 std::mutex m_stopConditionMutex;
192 std::condition_variable m_stopConditionVariable;
193 std::chrono::system_clock::time_point m_lastRefreshTime;
194 std::chrono::milliseconds m_timeout;
198 rapidjson::Document m_configuration;
199 std::string m_cfgFileName;
200 const std::string m_cfgVersion =
"v1.0";
201 std::string m_traceFileName;
202 int m_traceFileSize = 0;
204 std::string m_iqrfInterfaceName;
205 int m_dpaHandlerTimeout = 400;
206 IqrfRfCommunicationMode m_communicationMode = IqrfRfCommunicationMode::kStd;
208 std::string m_configurationDir;
209 std::string m_modeStr;
210 int m_watchDogTimeoutMilis = 0;
211 std::map<std::string, ComponentDescriptor> m_componentMap;
218 std::string m_moduleId;
219 std::string m_osVersion;
220 std::string m_trType;
222 std::string m_mcuType;
223 std::string m_osBuild;
225 std::string m_version;
226 std::string m_versionBuild;
Create component instances.
Definition: DaemonController.h:97
Definition: UdpMessage.h:52
Mode
operational mode
Definition: DaemonController.h:105
std::string m_interfaceName
Definition: DaemonController.h:68
IDaemon interface.
Definition: IDaemon.h:31
IScheduler * getScheduler() override
Get IScheduler implementation.
Definition: DaemonController.h:122
rapidjson::Value & getConfiguration()
get JSON configuration
Definition: DaemonController.h:63
const std::string & getOsVersion() override
Get IQRF coordination OS version.
Definition: DaemonController.h:125
IScheduler interface.
Definition: IScheduler.h:28
IDpaExclusiveAccess interface.
Definition: IDpaExclusiveAccess.h:26
const std::string & getMcuType() override
Get IQRF coordination MCU type.
Definition: DaemonController.h:127
const std::string & getTrType() override
Get IQRF coordination TR type.
Definition: DaemonController.h:126
const std::string & getDaemonVersionBuild() override
Get iqrf-daemon build Timestamp.
Definition: DaemonController.h:130
const std::string & getModuleId() override
Get IQRF coordination identification.
Definition: DaemonController.h:124
const std::string & getOsBuild() override
Get IQRF coordination OS build.
Definition: DaemonController.h:128
Auxiliar class for component initialization.
Definition: DaemonController.h:40
rapidjson::Document m_doc
Definition: DaemonController.h:70
IDpaMessageForwarding interface.
Definition: IDpaMessageForwarding.h:28
std::string m_componentName
Definition: DaemonController.h:67
ComponentDescriptor(const std::string &componentName, bool enabled)
parametric constructor
Definition: DaemonController.h:48
std::function< void(const DpaMessage &dpaMessage)> AsyncMessageHandlerFunc
Asynchronous DPA message handler functional type.
Definition: IDaemon.h:24
const std::string & getDaemonVersion() override
Get iqrf-daemon Version.
Definition: DaemonController.h:129
Maintain queue of tasks and invoke sequential processing.
Definition: TaskQueue.h:32
bool m_enabled
Definition: DaemonController.h:69
void loadConfiguration(const std::string configurationDir)
load JSON configuration file
Definition: DaemonController.cpp:870