-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathByteConvert.hpp
More file actions
36 lines (33 loc) · 916 Bytes
/
ByteConvert.hpp
File metadata and controls
36 lines (33 loc) · 916 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef _ByteConvert_hpp_
#define _ByteConvert_hpp_
#include <string>
#include <cstdint>
namespace ByteConvert {
template<class T>
T arrayToVar(uint8_t *array) {
size_t size = sizeof(T)/sizeof(uint8_t);
T var = 0x00;
for (size_t i = 0;i < (size);i++) {
if (i != 0) var <<= 8;
var |= array[i];
}
return var;
}
template<class T>
uint8_t *varToArray(size_t &size,T var) {
size = sizeof(T)/sizeof(uint8_t);
uint8_t *array = new uint8_t[size]; // Alocate memory
for (size_t i = 0;i < size;i++) {
if (i != 0) var >>= 8;
array[size-1-i] = (uint8_t)(var&0xff);
}
return array;
}
char valToHex(uint8_t val);
uint8_t hexToVal(char c);
std::string byteToHexString(uint8_t b);
uint8_t hexStringToByte(std::string block);
std::string arrayToString(size_t size,uint8_t *src);
uint8_t* stringToArray(size_t &size,std::string src);
}
#endif