Skip to content

Commit 6807ec7

Browse files
committed
First version
1 parent f4ab485 commit 6807ec7

File tree

5 files changed

+124
-0
lines changed

5 files changed

+124
-0
lines changed

examples/SimpleTest/SimpleTest.ino

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include <ByteConvert.hpp>
2+
3+
void setup() {
4+
Serial.begin(9600);
5+
Serial.println("Simple test");
6+
Serial.println("size(short): "+String(sizeof(short)));
7+
Serial.println("size(int): "+String(sizeof(int)));
8+
Serial.println("size(float): "+String(sizeof(float)));
9+
Serial.println("size(char): "+String(sizeof(char)));
10+
Serial.println("size(uint8_t): "+String(sizeof(uint8_t)));
11+
Serial.println("valToHex: 9->"+String(ByteConvert::valToHex(0x09)));
12+
Serial.println("valToHex: b->"+String(ByteConvert::valToHex(0x0b)));
13+
Serial.println("byteToHexString: fa->"+String(ByteConvert::byteToHexString(0xfa)));
14+
15+
uint8_t array1[] = {0xfa,0xca,0xde,0xda};
16+
Serial.println("facadeda -> "+ByteConvert::arrayToString(array1,4));
17+
18+
size_t s2 = 0;
19+
uint8_t *array2 = ByteConvert::stringToArray(s2,"bedababa");
20+
Serial.println("Size(bedababba): "+String(s2));
21+
Serial.println("bedababba -> "+ ByteConvert::arrayToString(array2,s2));
22+
23+
delete array2;
24+
25+
int in = 5;
26+
Serial.println("Orig: 5 -> "+String(in));
27+
size_t s3 = 0;
28+
uint8_t *array3 = ByteConvert::varToArray<int>(s3,in);
29+
Serial.println("? -> "+ ByteConvert::arrayToString(array3,s3));
30+
Serial.println("5 -> "+ String(ByteConvert::arrayToVar<int>(array3)));
31+
32+
delete array3;
33+
}
34+
35+
void loop() {
36+
37+
}

keywords.txt

Whitespace-only changes.

library.properties

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name=ByteConvert
2+
version=0.0.1
3+
author=SloCompTech
4+
maintainer=SloCompTech <SloCompTech@gmail.com>
5+
sentence=Library for converting variables to bytes and reverse
6+
paragraph=Library for converting variables to bytes so they are easyer to transmit via I2C,SPI ...
7+
category=Communication
8+
url=None
9+
architectures=*
10+
includes=ByteConvert.hpp

src/ByteConvert.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include "ByteConvert.hpp"
2+
namespace ByteConvert {
3+
char valToHex(uint8_t val) {
4+
if ((val & 0x0f) < 10)
5+
return ('0' + val);
6+
else
7+
return ('a' + (val - 10));
8+
}
9+
uint8_t hexToVal(char c) {
10+
if (c >= 'a')
11+
return (15 - ('f' - c));
12+
else
13+
return (9 - ('9' - c));
14+
}
15+
String byteToHexString(uint8_t b) {
16+
String buffer = "";
17+
buffer += valToHex(b & 0x0f);
18+
b >>= 4;
19+
buffer = valToHex(b & 0x0f) + buffer;
20+
return buffer;
21+
}
22+
uint8_t hexStringToByte(String block) {
23+
if (block.length() != 2)
24+
return 0x00;
25+
return 16*hexToVal(block.charAt(0))+hexToVal(block.charAt(1));
26+
}
27+
28+
String arrayToString(uint8_t *src,size_t size) {
29+
String buffer = "";
30+
for (size_t i = 0;i < (size);i++)
31+
buffer += byteToHexString(src[i]);
32+
return buffer;
33+
}
34+
uint8_t* stringToArray(size_t &size,String src) {
35+
size = src.length()/2;
36+
uint8_t *dst = new uint8_t[size]; // Allocate memory space
37+
for (size_t i = 0;i < (size);i++)
38+
dst[i] = hexStringToByte(String(src.charAt(i*2))+String(src.charAt(i*2+1)));
39+
Serial.println(arrayToString(dst,size));
40+
return dst;
41+
}
42+
}

src/ByteConvert.hpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#ifndef _ByteConvert_hpp_
2+
#define _ByteConvert_hpp_
3+
4+
#include "Arduino.h"
5+
6+
namespace ByteConvert {
7+
template<class T>
8+
T arrayToVar(uint8_t *array) {
9+
size_t size = sizeof(T)/sizeof(uint8_t);
10+
T var = 0x00;
11+
for (size_t i = 0;i < (size);i++) {
12+
if (i != 0) var <<= 8;
13+
var |= array[i];
14+
}
15+
return var;
16+
}
17+
template<class T>
18+
uint8_t *varToArray(size_t &size,T var) {
19+
size = sizeof(T)/sizeof(uint8_t);
20+
uint8_t *array = new uint8_t[size];
21+
for (size_t i = 0;i < size;i++) {
22+
if (i != 0) var >>= 8;
23+
array[size-1-i] = (uint8_t)(var&0xff);
24+
}
25+
return array;
26+
}
27+
char valToHex(uint8_t val);
28+
uint8_t hexToVal(char c);
29+
String byteToHexString(uint8_t b);
30+
uint8_t hexStringToByte(String block);
31+
String arrayToString(uint8_t *src,size_t size);
32+
uint8_t* stringToArray(size_t &size,String src);
33+
}
34+
35+
#endif

0 commit comments

Comments
 (0)