DataFrame  1.0.0
dataframe.h
Go to the documentation of this file.
1 /*
2  * @file dataframe.h
3  * @brief DataFrame interface
4  *
5  * @date: 31. 12. 2022
6  * @author: juraj
7  */
8 
9 #ifndef __DATAFRAME_H__
10 #define __DATAFRAME_H__
11 
12 #include "stdint.h"
13 
15 #define HEADER_CHAR1 0xCC
16 
17 #define HEADER_CHAR2 0xDD
18 
23 typedef enum {
31 
35 typedef enum {
41 
45 typedef enum {
51 
55 class DataFrame {
56 
57 private:
58  uint8_t *_frame;
59  uint8_t _length;
60  uint8_t _capacity;
61  DataframeType_t _type;
62  DataframeCrc_t _crcUse;
63  DataframeError_t _error;
64 
65 public:
71  DataFrame(uint8_t *frame, uint8_t size, DataframeType_t type, DataframeCrc_t);
77  void Init(void);
78 
83  bool AddUint8(uint8_t d);
84 
90  bool AddUint16(uint16_t d);
91 
97  bool AddUint32(uint32_t);
98 
104  bool AddInt8(int8_t d);
105 
111  bool AddInt16(int16_t);
112 
118  bool AddInt32(int32_t);
119 
126  bool AddFloat(float);
127 
134  uint8_t Commit(void);
135 
140  uint8_t *GetFrame(void);
141 
148 };
149 
150 #ifdef __cplusplus
151 extern "C" {
152 #endif
153 
154 uint8_t crc8(uint8_t crc, uint8_t Size, uint8_t *Buffer);
155 
156 #ifdef __cplusplus
157 }
158 #endif
159 
160 #endif /* DATAFRAME_H_ */
CRC_OFF
@ CRC_OFF
Definition: dataframe.h:37
DataFrame::AddUint16
bool AddUint16(uint16_t d)
add 2 Bytes length variable to dataframe
Definition: dataframe.cpp:149
DataframeType_t
DataframeType_t
Definition: dataframe.h:23
DataFrame
Class for representing data frame.
Definition: dataframe.h:55
DataFrame::AddFloat
bool AddFloat(float)
add float value to data frame. Float value is encoded to 4 bytes according IEEE 754
Definition: dataframe.cpp:181
DataFrame::AddUint32
bool AddUint32(uint32_t)
add 4 Bytes long variable to dataframe
Definition: dataframe.cpp:161
DataFrame::AddUint8
bool AddUint8(uint8_t d)
Add one byte to data frame.
Definition: dataframe.cpp:138
TYPE_PLAIN
@ TYPE_PLAIN
Definition: dataframe.h:25
DataFrame::getError
DataframeError_t getError(void)
Return error status from data processing.
Definition: dataframe.cpp:225
DataFrame::Init
void Init(void)
Initialize packet.
Definition: dataframe.cpp:116
TYPE_HEADER_1B
@ TYPE_HEADER_1B
Definition: dataframe.h:27
DataframeError_t
DataframeError_t
Definition: dataframe.h:45
ERROR_NONE
@ ERROR_NONE
Definition: dataframe.h:47
ERROR_OVERFLOW
@ ERROR_OVERFLOW
Definition: dataframe.h:49
crc8
uint8_t crc8(uint8_t crc, uint8_t Size, uint8_t *Buffer)
Helper function to compute CRC.
Definition: dataframe.cpp:68
DataFrame::AddInt8
bool AddInt8(int8_t d)
add one byte signed variable to data frame
Definition: dataframe.cpp:175
DataframeCrc_t
DataframeCrc_t
Definition: dataframe.h:35
DataFrame::GetFrame
uint8_t * GetFrame(void)
Return pointer to data frame.
Definition: dataframe.cpp:227
CRC_ON
@ CRC_ON
Definition: dataframe.h:39
DataFrame::DataFrame
DataFrame(uint8_t *frame, uint8_t size, DataframeType_t type, DataframeCrc_t)
Definition: dataframe.cpp:107
TYPE_HEADER_2B
@ TYPE_HEADER_2B
Definition: dataframe.h:29
DataFrame::AddInt16
bool AddInt16(int16_t)
add 2 bytes length signed variable to data frame
Definition: dataframe.cpp:177
DataFrame::Commit
uint8_t Commit(void)
Commit the creation of the packet.
Definition: dataframe.cpp:198
DataFrame::AddInt32
bool AddInt32(int32_t)
add 4 bytes length signed variable to data frame
Definition: dataframe.cpp:179