1#ifndef APIDATALOGGERPROTOCOL_HPP
2#define APIDATALOGGERPROTOCOL_HPP
10#include <unordered_map>
28 const std::shared_ptr<iv::comms::ICommunicationDriver> &driver,
29 const std::shared_ptr<iv::model::comms::NetworkData> &networkData,
30 const std::weak_ptr<iv::channels::AbstractChannel> &heartbeatChannel,
31 const std::weak_ptr<iv::diamar::AppFailuresLoggerManager> &appFailuresLoggerManager,
bool sendToCloud);
34 void registerValue(
const std::shared_ptr<iv::comms::api::ILoggerMessage> &message)
override;
41 bool sendUnitFile(
const std::string &unitFileContent)
const;
56 std::map<iv::types::channelId, iv::comms::api::dataLogger::DataLoggerMessage>
m_channelsValues;
60 static constexpr std::string_view
route {
"/data"};
64 static constexpr std::string_view
timestamp {
"timestamp"};
65 static constexpr std::string_view
value {
"value"};
67 static constexpr std::string_view
alarmState {
"alarmState"};
68 static constexpr std::string_view
alarmType {
"alarmType"};
69 static constexpr std::string_view
cloud {
"cloud"};
74 static constexpr std::string_view
route {
"/project/unit"};
77 static constexpr std::string_view
project {
"unit"};
Definition ICommunicationProtocol.hpp:12
std::shared_ptr< iv::comms::ICommunicationDriver > m_driver
Definition ICommunicationProtocol.hpp:29
Definition IApiCommunicationProtocol.hpp:16
Definition IApiQueryParamsBuilder.hpp:13
Definition ApiDataLoggerCommunicationProtocol.hpp:24
void registerValue(const std::shared_ptr< iv::comms::api::ILoggerMessage > &message) override
Registers an API message without blocking the thread.
Definition ApiDataLoggerCommunicationProtocol.cpp:26
~ApiDataLoggerCommunicationProtocol() override=default
iv::comms::api::ApiResponse getValues(const IApiQueryParamsBuilder &queryParams) const override
Get values from the API.
Definition ApiDataLoggerCommunicationProtocol.cpp:151
bool sendValues() override
Send all registered messages to the API.
Definition ApiDataLoggerCommunicationProtocol.cpp:49
bool isOnline() override
Definition ApiDataLoggerCommunicationProtocol.hpp:44
std::mutex m_channelsValuesMutex
Definition ApiDataLoggerCommunicationProtocol.hpp:52
iv::comms::api::ApiDeleteResponse deleteValues(const IApiQueryParamsBuilder &queryParams) const override
Delete values from the API.
Definition ApiDataLoggerCommunicationProtocol.cpp:202
bool sendUnitFile(const std::string &unitFileContent) const
Definition ApiDataLoggerCommunicationProtocol.cpp:249
std::map< iv::types::channelId, iv::comms::api::dataLogger::DataLoggerMessage > m_channelsValues
Definition ApiDataLoggerCommunicationProtocol.hpp:56
std::mutex m_httpRequestMutex
Definition ApiDataLoggerCommunicationProtocol.hpp:53
std::map< iv::types::channelId, LoggerChannelInfo > m_lastSentChannelsValues
Definition ApiDataLoggerCommunicationProtocol.hpp:54
ApiDataLoggerCommunicationProtocol()=delete
bool shouldSendValue(const std::string &channelId, const iv::comms::api::dataLogger::DataLoggerMessage &channelValue) const
Definition ApiDataLoggerCommunicationProtocol.cpp:269
Definition ApiDataLoggerCommunicationProtocol.cpp:9
uint64_t timestamp
Definition types.hpp:21
double channelValue
Definition types.hpp:67
std::string channelId
Definition types.hpp:66
Definition structs.hpp:69
Definition structs.hpp:63
Definition ApiDataLoggerCommunicationProtocol.hpp:76
static constexpr std::string_view project
Definition ApiDataLoggerCommunicationProtocol.hpp:77
Definition ApiDataLoggerCommunicationProtocol.hpp:73
static constexpr std::string_view route
Definition ApiDataLoggerCommunicationProtocol.hpp:74
Definition ApiDataLoggerCommunicationProtocol.hpp:63
static constexpr std::string_view cloud
Definition ApiDataLoggerCommunicationProtocol.hpp:69
static constexpr std::string_view alarmType
Definition ApiDataLoggerCommunicationProtocol.hpp:68
static constexpr std::string_view alarmState
Definition ApiDataLoggerCommunicationProtocol.hpp:67
static constexpr std::string_view value
Definition ApiDataLoggerCommunicationProtocol.hpp:65
static constexpr std::string_view alarmPriority
Definition ApiDataLoggerCommunicationProtocol.hpp:66
static constexpr std::string_view timestamp
Definition ApiDataLoggerCommunicationProtocol.hpp:64
Definition ApiDataLoggerCommunicationProtocol.hpp:59
static constexpr std::string_view route
Definition ApiDataLoggerCommunicationProtocol.hpp:60
Definition structs.hpp:95
Definition ApiDataLoggerCommunicationProtocol.hpp:16
iv::types::timestamp timestamp
Definition ApiDataLoggerCommunicationProtocol.hpp:19
iv::types::channelId channelId
Definition ApiDataLoggerCommunicationProtocol.hpp:17
iv::types::channelValue value
Definition ApiDataLoggerCommunicationProtocol.hpp:18