MatrixMiniR4 1.1.5
Matrix Mini R4 Arduino Library API Documentation
Loading...
Searching...
No Matches
BitConverter.cpp
Go to the documentation of this file.
1
6#include "BitConverter.h"
7
8uint32_t BitConverter::ToUInt32(uint8_t* value, int startIdx)
9{
10 uint32_t data = value[startIdx++];
11 data |= value[startIdx++] << 8;
12 data |= value[startIdx++] << 16;
13 data |= value[startIdx] << 24;
14 return data;
15}
16
17uint16_t BitConverter::ToUInt16(uint8_t* value, int startIdx)
18{
19 uint16_t data = value[startIdx++];
20 data |= value[startIdx] << 8;
21 return data;
22}
23
24int32_t BitConverter::ToInt32(uint8_t* value, int startIdx)
25{
26 int32_t data = value[startIdx++];
27 data |= value[startIdx++] << 8;
28 data |= value[startIdx++] << 16;
29 data |= value[startIdx] << 24;
30 return data;
31}
32
33int16_t BitConverter::ToInt16(uint8_t* value, int startIdx)
34{
35 int16_t data = value[startIdx++];
36 data |= value[startIdx] << 8;
37 return data;
38}
39
40void BitConverter::GetBytes(uint8_t* buff, uint32_t value)
41{
42 buff[0] = (uint8_t)(value & 0xFF);
43 buff[1] = (uint8_t)((value >> 8) & 0xFF);
44 buff[2] = (uint8_t)((value >> 16) & 0xFF);
45 buff[3] = (uint8_t)((value >> 24) & 0xFF);
46}
47
48void BitConverter::GetBytes(uint8_t* buff, int32_t value)
49{
50 GetBytes(buff, static_cast<uint32_t>(value));
51}
52
53void BitConverter::GetBytes(uint8_t* buff, uint16_t value)
54{
55 buff[0] = (uint8_t)(value & 0xFF);
56 buff[1] = (uint8_t)((value >> 8) & 0xFF);
57}
58
59void BitConverter::GetBytes(uint8_t* buff, int16_t value)
60{
61 GetBytes(buff, static_cast<uint16_t>(value));
62}
MiniR4 low level functions.
static uint32_t ToUInt32(uint8_t *value, int startIdx)
static int16_t ToInt16(uint8_t *value, int startIdx)
static void GetBytes(uint8_t *buff, uint32_t value)
static int32_t ToInt32(uint8_t *value, int startIdx)
static uint16_t ToUInt16(uint8_t *value, int startIdx)