Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
structs.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_COMMS_CAN_STRUCTS_HPP_
2#define IV_SRC_COMMS_CAN_STRUCTS_HPP_
3
4#include "comms/can/enums.hpp"
5#include "core/defines.hpp"
6
7#include <cstdint>
8#include <cstring>
9
10namespace iv::comms::can
11{
12
14{
16 : m_msgId(0), m_bytes {0}, m_timestamp(0), m_lengthData(0), m_isRtr(false), m_idSubnetwork(0),
18 {
19 }
20
21 CanDataMessage(const uint32_t msgId, uint8_t bytes[8], const uint32_t lengthData, const bool isRtr,
22 const iv::types::subnetwork idSubnetwork, const uint32_t dataExtraLength,
23 const uint8_t *dataExtraBytes, const uint32_t timestamp)
24 : m_msgId(msgId), m_bytes {0}, m_timestamp(timestamp), m_lengthData(lengthData), m_isRtr(isRtr),
25 m_idSubnetwork(idSubnetwork), m_dataExtraLength(dataExtraLength), m_dataExtraBytes(nullptr),
26 m_isExtended(false)
27 {
28 std::memcpy(m_bytes, bytes, 8);
29
30 if (dataExtraLength > 0)
31 {
32 m_dataExtraBytes = new uint8_t[dataExtraLength];
33 std::memcpy(m_dataExtraBytes, dataExtraBytes, dataExtraLength);
34 }
35 }
36
37 CanDataMessage(const CanDataMessage &other) = delete;
38 CanDataMessage(CanDataMessage &&other) = delete;
39
41 {
42 delete[] m_dataExtraBytes;
43 }
44
45 uint32_t m_msgId;
46 uint8_t m_bytes[8];
47 uint32_t m_timestamp;
48 uint32_t m_lengthData;
49 bool m_isRtr;
54};
55
56}// namespace iv::comms::can
57
58#endif//IV_SRC_COMMS_CAN_STRUCTS_HPP_
Definition AbstractMessageProcessor.hpp:12
uint16_t subnetwork
Definition types.hpp:76
Definition structs.hpp:14
~CanDataMessage()
Definition structs.hpp:40
iv::types::subnetwork m_idSubnetwork
Definition structs.hpp:50
CanDataMessage(const uint32_t msgId, uint8_t bytes[8], const uint32_t lengthData, const bool isRtr, const iv::types::subnetwork idSubnetwork, const uint32_t dataExtraLength, const uint8_t *dataExtraBytes, const uint32_t timestamp)
Definition structs.hpp:21
CanDataMessage(CanDataMessage &&other)=delete
uint32_t m_msgId
Definition structs.hpp:45
bool m_isRtr
Definition structs.hpp:49
uint8_t m_bytes[8]
Definition structs.hpp:46
uint32_t m_lengthData
Definition structs.hpp:48
uint32_t m_dataExtraLength
Definition structs.hpp:51
uint8_t * m_dataExtraBytes
Definition structs.hpp:52
bool m_isExtended
Definition structs.hpp:53
CanDataMessage(const CanDataMessage &other)=delete
CanDataMessage()
Definition structs.hpp:15
uint32_t m_timestamp
Definition structs.hpp:47