Skip to content

Commit e513b83

Browse files
committed
Improvements for v0.1
1 parent 18bdd03 commit e513b83

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

examples/SimpleTest/SimpleTest.ino

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ void setup() {
1313
Serial.println("byteToHexString: fa->"+String(ByteConvert::byteToHexString(0xfa)));
1414

1515
uint8_t array1[] = {0xfa,0xca,0xde,0xda};
16-
Serial.println("facadeda -> "+ByteConvert::arrayToString(array1,4));
16+
Serial.println("facadeda -> "+ByteConvert::arrayToString(4,array1));
1717

1818
size_t s2 = 0;
1919
uint8_t *array2 = ByteConvert::stringToArray(s2,"bedababa");
2020
Serial.println("Size(bedababba): "+String(s2));
21-
Serial.println("bedababba -> "+ ByteConvert::arrayToString(array2,s2));
21+
Serial.println("bedababba -> "+ ByteConvert::arrayToString(s2,array2));
2222

2323
delete array2;
2424

2525
int in = 5;
2626
Serial.println("Orig: 5 -> "+String(in));
2727
size_t s3 = 0;
2828
uint8_t *array3 = ByteConvert::varToArray<int>(s3,in);
29-
Serial.println("? -> "+ ByteConvert::arrayToString(array3,s3));
29+
Serial.println("0005 -> "+ ByteConvert::arrayToString(s3,array3));
3030
Serial.println("5 -> "+ String(ByteConvert::arrayToVar<int>(array3)));
3131

3232
delete array3;

src/ByteConvert.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,20 @@ namespace ByteConvert {
2525
return 16*hexToVal(block.charAt(0))+hexToVal(block.charAt(1));
2626
}
2727

28-
String arrayToString(uint8_t *src,size_t size) {
28+
String arrayToString(size_t size,uint8_t *src) {
2929
String buffer = "";
3030
for (size_t i = 0;i < (size);i++)
3131
buffer += byteToHexString(src[i]);
3232
return buffer;
3333
}
3434
uint8_t* stringToArray(size_t &size,String src) {
35+
// Length of src must be odd !!
36+
if (src.length() % 2 == 1)
37+
src = "0" + src;
3538
size = src.length()/2;
3639
uint8_t *dst = new uint8_t[size]; // Allocate memory space
3740
for (size_t i = 0;i < (size);i++)
3841
dst[i] = hexStringToByte(String(src.charAt(i*2))+String(src.charAt(i*2+1)));
39-
Serial.println(arrayToString(dst,size));
4042
return dst;
4143
}
4244
}

src/ByteConvert.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace ByteConvert {
1717
template<class T>
1818
uint8_t *varToArray(size_t &size,T var) {
1919
size = sizeof(T)/sizeof(uint8_t);
20-
uint8_t *array = new uint8_t[size];
20+
uint8_t *array = new uint8_t[size]; // Alocate memory
2121
for (size_t i = 0;i < size;i++) {
2222
if (i != 0) var >>= 8;
2323
array[size-1-i] = (uint8_t)(var&0xff);
@@ -28,7 +28,7 @@ namespace ByteConvert {
2828
uint8_t hexToVal(char c);
2929
String byteToHexString(uint8_t b);
3030
uint8_t hexStringToByte(String block);
31-
String arrayToString(uint8_t *src,size_t size);
31+
String arrayToString(size_t size,uint8_t *src);
3232
uint8_t* stringToArray(size_t &size,String src);
3333
}
3434

0 commit comments

Comments
 (0)