#include <log_field.h>
|
template<typename TValue , int TMult, int TDiv> |
constexpr | LogField (const scaled_channel< TValue, TMult, TDiv > &toRead, const char *name, const char *units, int8_t digits, const char *category="none") |
|
template<typename TValue , typename = typename std::enable_if<std::is_arithmetic_v<TValue>>::type> |
constexpr | LogField (TValue &toRead, const char *name, const char *units, int8_t digits, const char *category="none") |
|
template<typename TValue > |
constexpr | LogField (TValue &toRead, const uint32_t bitsBlockOffset, const uint8_t bitNumber, const char *name, const char *units, const char *category="none") |
|
constexpr size_t | getSize () const |
|
size_t | writeHeader (Writer &outBuffer) const |
|
size_t | writeData (char *buffer, void *offset) const |
|
bool | needsEngineOffsetHack (size_t size) const |
|
Definition at line 9 of file log_field.h.
◆ Type
Enumerator |
---|
U08 | |
S08 | |
U16 | |
S16 | |
U32 | |
S32 | |
S64 | |
F32 | |
Definition at line 69 of file log_field.h.
69 : uint8_t {
70
71
80 };
◆ LogField() [1/3]
template<typename TValue , int TMult, int TDiv>
constexpr LogField::LogField |
( |
const scaled_channel< TValue, TMult, TDiv > & |
toRead, |
|
|
const char * |
name, |
|
|
const char * |
units, |
|
|
int8_t |
digits, |
|
|
const char * |
category = "none" |
|
) |
| |
|
inlineconstexpr |
Definition at line 13 of file log_field.h.
16 ,
m_addr(toRead.getFirstByteAddr())
17 ,
m_type(resolveType<TValue>())
26 {
27 }
static constexpr size_t sizeForType(Type t)
const uint8_t m_bitNumber
const char *const m_category
const char *const m_units
const uint32_t m_bitsBlockOffset
◆ LogField() [2/3]
template<typename TValue , typename = typename std::enable_if<std::is_arithmetic_v<TValue>>::type>
constexpr LogField::LogField |
( |
TValue & |
toRead, |
|
|
const char * |
name, |
|
|
const char * |
units, |
|
|
int8_t |
digits, |
|
|
const char * |
category = "none" |
|
) |
| |
|
inlineconstexpr |
◆ LogField() [3/3]
template<typename TValue >
constexpr LogField::LogField |
( |
TValue & |
toRead, |
|
|
const uint32_t |
bitsBlockOffset, |
|
|
const uint8_t |
bitNumber, |
|
|
const char * |
name, |
|
|
const char * |
units, |
|
|
const char * |
category = "none" |
|
) |
| |
|
inlineconstexpr |
◆ getSize()
constexpr size_t LogField::getSize |
( |
| ) |
const |
|
inlineconstexpr |
◆ needsEngineOffsetHack()
bool LogField::needsEngineOffsetHack |
( |
size_t |
size | ) |
const |
|
inline |
◆ resolveType() [1/13]
template<typename T >
static constexpr Type LogField::resolveType |
( |
| ) |
|
|
staticconstexprprivate |
◆ resolveType() [2/13]
◆ resolveType() [3/13]
◆ resolveType() [4/13]
◆ resolveType() [5/13]
◆ resolveType() [6/13]
◆ resolveType() [7/13]
◆ resolveType() [8/13]
◆ resolveType() [9/13]
◆ resolveType() [10/13]
◆ resolveType() [11/13]
◆ resolveType() [12/13]
◆ resolveType() [13/13]
◆ sizeForType()
static constexpr size_t LogField::sizeForType |
( |
Type |
t | ) |
|
|
inlinestaticconstexprprivate |
Definition at line 105 of file log_field.h.
105 {
106 switch (t) {
109 return 1;
112 return 2;
113 default:
114
115 return 4;
116 }
117 }
◆ writeData()
size_t LogField::writeData |
( |
char * |
buffer, |
|
|
void * |
offset |
|
) |
| const |
Definition at line 61 of file log_field.cpp.
61 {
64 const char*
const byteWithBitAddr = bitsBlockAddr +
m_bitNumber / 8;
65 unsigned char byteWithBit = 0;
68 buffer[0] =
static_cast<char>(
static_cast<bool>(byteWithBit & (1 << bitNumberInByte)));
69 } else {
71 }
72
74}
static void memcpy_swapend(void *dest, const void *src, size_t num, void *offset)
static BigBufferHandle buffer
Referenced by writeSdBlock().
◆ writeHeader()
Definition at line 20 of file log_field.cpp.
20 {
21 char buffer[MLQ_FIELD_HEADER_SIZE];
22
23
25
26
28
29
31
32
33
35
36
38
39
41
42
44
45
48 size_t lengthAfterCategory = 34 - categoryLength;
50 memset(&
buffer[55] + categoryLength, 0, lengthAfterCategory);
51 } else {
52 memset(&
buffer[55], 0, 34);
53 }
54
55
57
58 return MLQ_FIELD_HEADER_SIZE;
59}
static void copyFloat(char *buffer, float value)
virtual size_t write(const char *buffer, size_t count)=0
Referenced by writeFileHeader().
◆ m_addr
const void* const LogField::m_addr |
|
private |
◆ m_bitNumber
const uint8_t LogField::m_bitNumber |
|
private |
◆ m_bitsBlockOffset
const uint32_t LogField::m_bitsBlockOffset |
|
private |
◆ m_category
const char* const LogField::m_category |
|
private |
◆ m_digits
const int8_t LogField::m_digits |
|
private |
◆ m_isBitField
const bool LogField::m_isBitField |
|
private |
◆ m_multiplier
const float LogField::m_multiplier |
|
private |
◆ m_name
const char* const LogField::m_name |
|
private |
◆ m_size
const uint8_t LogField::m_size |
|
private |
◆ m_type
const Type LogField::m_type |
|
private |
◆ m_units
const char* const LogField::m_units |
|
private |
The documentation for this class was generated from the following files: