File tree Expand file tree Collapse file tree 3 files changed +9
-7
lines changed Expand file tree Collapse file tree 3 files changed +9
-7
lines changed Original file line number Diff line number Diff line change @@ -13,20 +13,20 @@ void setup() {
13
13
Serial.println (" byteToHexString: fa->" +String (ByteConvert::byteToHexString (0xfa )));
14
14
15
15
uint8_t array1[] = {0xfa ,0xca ,0xde ,0xda };
16
- Serial.println (" facadeda -> " +ByteConvert::arrayToString (array1, 4 ));
16
+ Serial.println (" facadeda -> " +ByteConvert::arrayToString (4 ,array1 ));
17
17
18
18
size_t s2 = 0 ;
19
19
uint8_t *array2 = ByteConvert::stringToArray (s2," bedababa" );
20
20
Serial.println (" Size(bedababba): " +String (s2));
21
- Serial.println (" bedababba -> " + ByteConvert::arrayToString (array2,s2 ));
21
+ Serial.println (" bedababba -> " + ByteConvert::arrayToString (s2,array2 ));
22
22
23
23
delete array2;
24
24
25
25
int in = 5 ;
26
26
Serial.println (" Orig: 5 -> " +String (in));
27
27
size_t s3 = 0 ;
28
28
uint8_t *array3 = ByteConvert::varToArray<int >(s3,in);
29
- Serial.println (" ? -> " + ByteConvert::arrayToString (array3,s3 ));
29
+ Serial.println (" 0005 -> " + ByteConvert::arrayToString (s3,array3 ));
30
30
Serial.println (" 5 -> " + String (ByteConvert::arrayToVar<int >(array3)));
31
31
32
32
delete array3;
Original file line number Diff line number Diff line change @@ -25,18 +25,20 @@ namespace ByteConvert {
25
25
return 16 *hexToVal (block.charAt (0 ))+hexToVal (block.charAt (1 ));
26
26
}
27
27
28
- String arrayToString (uint8_t *src, size_t size ) {
28
+ String arrayToString (size_t size, uint8_t *src) {
29
29
String buffer = " " ;
30
30
for (size_t i = 0 ;i < (size);i++)
31
31
buffer += byteToHexString (src[i]);
32
32
return buffer;
33
33
}
34
34
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;
35
38
size = src.length ()/2 ;
36
39
uint8_t *dst = new uint8_t [size]; // Allocate memory space
37
40
for (size_t i = 0 ;i < (size);i++)
38
41
dst[i] = hexStringToByte (String (src.charAt (i*2 ))+String (src.charAt (i*2 +1 )));
39
- Serial.println (arrayToString (dst,size));
40
42
return dst;
41
43
}
42
44
}
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ namespace ByteConvert {
17
17
template <class T >
18
18
uint8_t *varToArray (size_t &size,T var) {
19
19
size = sizeof (T)/sizeof (uint8_t );
20
- uint8_t *array = new uint8_t [size];
20
+ uint8_t *array = new uint8_t [size]; // Alocate memory
21
21
for (size_t i = 0 ;i < size;i++) {
22
22
if (i != 0 ) var >>= 8 ;
23
23
array[size-1 -i] = (uint8_t )(var&0xff );
@@ -28,7 +28,7 @@ namespace ByteConvert {
28
28
uint8_t hexToVal (char c);
29
29
String byteToHexString (uint8_t b);
30
30
uint8_t hexStringToByte (String block);
31
- String arrayToString (uint8_t *src, size_t size );
31
+ String arrayToString (size_t size, uint8_t *src);
32
32
uint8_t * stringToArray (size_t &size,String src);
33
33
}
34
34
You can’t perform that action at this time.
0 commit comments