Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
LomMessageProcessor.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_COMMS_CAN_LOMMESSAGEPROCESSOR_HPP
2#define IV_SRC_COMMS_CAN_LOMMESSAGEPROCESSOR_HPP
3
6
7#include <threads/Thread.hpp>
8
9namespace iv::comms::can
10{
11
12class LomCommunicationController;
13
15 public std::enable_shared_from_this<LomMessageProcessor>
16{
18
19public:
20 explicit LomMessageProcessor(const std::shared_ptr<iv::comms::can::LomCommunicationController> &controller,
24 ~LomMessageProcessor() override;
25
28
29 void initialize();
30
36 void processDigitalInput(const std::shared_ptr<CMessageCan> &message, uint16_t offset) const;
37 void processAlarm(const std::shared_ptr<CMessageCan> &message) const;
38 void processAnalogInput(const std::shared_ptr<CMessageCan> &message) const;
39 void proccessHeartbeat(const std::shared_ptr<CMessageCan> &message) const;
40 void processCommand(const std::shared_ptr<CMessageCan> &message) const;
41 void processAlarmTimestamp(const std::shared_ptr<CMessageCan> &message) const;
42 static void processAlarmGroupsStatus(const std::shared_ptr<CMessageCan> &message);
43
44private:
45 [[nodiscard]] bool frameProcess() const;
46 std::shared_ptr<iv::comms::can::LomCommunicationController> m_controller;
47 std::unique_ptr<iv::threads::Thread> m_thread;
49};
50
51}// namespace iv::comms::can
52
53#endif//IV_SRC_COMMS_CAN_LOMMESSAGEPROCESSOR_HPP
Definition AbstractMessageProcessor.hpp:14
Definition LomMessageProcessor.cpp:16
Definition LomMessageProcessor.hpp:16
~LomMessageProcessor() override
Definition LomMessageProcessor.cpp:42
LomMessageProcessor(LomMessageProcessor &&other)=delete
static void processAlarmGroupsStatus(const std::shared_ptr< CMessageCan > &message)
Definition LomMessageProcessor.cpp:270
LomMessageProcessor(const std::shared_ptr< iv::comms::can::LomCommunicationController > &controller, iv::comms::eLomLine line)
Definition LomMessageProcessor.cpp:36
bool frameProcess() const
Definition LomMessageProcessor.cpp:275
std::shared_ptr< iv::comms::can::LomCommunicationController > m_controller
Definition LomMessageProcessor.hpp:46
void processCommand(const std::shared_ptr< CMessageCan > &message) const
Definition LomMessageProcessor.cpp:210
void processAnalogInput(const std::shared_ptr< CMessageCan > &message) const
Definition LomMessageProcessor.cpp:117
LomMessageProcessor & operator=(LomMessageProcessor &&other)=delete
std::unique_ptr< iv::threads::Thread > m_thread
Definition LomMessageProcessor.hpp:47
void processAlarm(const std::shared_ptr< CMessageCan > &message) const
Definition LomMessageProcessor.cpp:88
void initialize()
Definition LomMessageProcessor.cpp:50
void processAlarmTimestamp(const std::shared_ptr< CMessageCan > &message) const
Definition LomMessageProcessor.cpp:251
iv::comms::eLomLine m_line
Definition LomMessageProcessor.hpp:48
void proccessHeartbeat(const std::shared_ptr< CMessageCan > &message) const
Definition LomMessageProcessor.cpp:155
void processDigitalInput(const std::shared_ptr< CMessageCan > &message, uint16_t offset) const
Manages digital inputs packages from loms.
Definition LomMessageProcessor.cpp:57
LomMessageProcessor(const LomMessageProcessor &other)=delete
LomMessageProcessor & operator=(const LomMessageProcessor &other)=delete
Definition AbstractMessageProcessor.hpp:12
eLomLine
Definition enums.hpp:231