Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CanSettings.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MODEL_COMMS_CANSETTINGS_HPP_
2#define IV_SRC_MODEL_COMMS_CANSETTINGS_HPP_
3
4#include "core/enums.hpp"
5#include "core/types.hpp"
7
8#include <cstdint>
9
11{
12
13// Structure to represent a filter for message acceptance
14struct Filter
15{
16 Filter();
17 Filter(uint32_t id, uint32_t mask);
18 Filter(const Filter &other);
19 Filter(Filter &&other) noexcept;
21
22 Filter &operator=(const Filter &other);
23 Filter &operator=(Filter &&other) noexcept;
24
25 bool load(const iv::file::xml::node &node);
26 bool save(iv::file::xml::node &node) const;
27
28 // Function to check if a message matches the filter
29 [[nodiscard]] bool matches(uint32_t messageId) const;
30
31 uint32_t _id; // Filter ID
32 uint32_t _mask;// Acceptance mask
33};
34
35// Structure to represent the configuration of a CAN device
37{
38 Settings();
39 Settings(iv::comms::eLomLine lomLine, bool highSpeed, iv::model::comms::can::Filter filter,
40 iv::types::pollTime timeoutWait, iv::types::pollTime timeoutRetry);
41 Settings(const Settings &other);
42 Settings(Settings &&other) noexcept;
44
45 Settings &operator=(const Settings &other);
46 Settings &operator=(Settings &&other) noexcept;
47
48 bool load(const iv::file::xml::node &node);
49 bool save(iv::file::xml::node &node) const;
50
52 bool _highSpeed; // High-speed mode indicator
55
56private:
57 struct Keys
58 {
59 static constexpr std::string_view lomLine {"LomLine"};
60 static constexpr std::string_view canHighSpeed {"HighSpeed"};
61 static constexpr std::string_view canFilterId {"FilterId"};
62 static constexpr std::string_view canFilterMask {"FilterMask"};
63 };
64
66 {
67 static constexpr std::string string {};
68 };
69};
70
71}// namespace iv::model::comms::can
72
73#endif//IV_SRC_MODEL_COMMS_CANSETTINGS_HPP_
Definition xmlFile.hpp:15
eLomLine
Definition enums.hpp:231
Definition CanSettings.cpp:8
std::chrono::milliseconds pollTime
Definition types.hpp:44
Definition CanSettings.hpp:15
bool matches(uint32_t messageId) const
Definition CanSettings.cpp:60
uint32_t _id
Definition CanSettings.hpp:31
uint32_t _mask
Definition CanSettings.hpp:32
Filter & operator=(const Filter &other)
Definition CanSettings.cpp:26
Filter()
Definition CanSettings.cpp:10
bool load(const iv::file::xml::node &node)
Definition CanSettings.cpp:48
Filter(const Filter &other)
bool save(iv::file::xml::node &node) const
Definition CanSettings.cpp:54
Definition CanSettings.hpp:58
static constexpr std::string_view canHighSpeed
Definition CanSettings.hpp:60
static constexpr std::string_view canFilterId
Definition CanSettings.hpp:61
static constexpr std::string_view canFilterMask
Definition CanSettings.hpp:62
static constexpr std::string_view lomLine
Definition CanSettings.hpp:59
Definition CanSettings.hpp:37
Settings & operator=(const Settings &other)
Definition CanSettings.cpp:85
iv::types::pollTime _timeoutWait
Definition CanSettings.hpp:54
bool _highSpeed
Definition CanSettings.hpp:52
bool save(iv::file::xml::node &node) const
Definition CanSettings.cpp:122
iv::comms::eLomLine _lomLine
Definition CanSettings.hpp:51
bool load(const iv::file::xml::node &node)
Definition CanSettings.cpp:111
Settings()
Definition CanSettings.cpp:65
Settings(const Settings &other)
iv::model::comms::can::Filter _filter
Definition CanSettings.hpp:53