Hi,
how can I convert from a string to a uint8_t vector in Arduino ?
Thx
Rita
Hi,
how can I convert from a string to a uint8_t vector in Arduino ?
Thx
Rita
Hello Rita,
you can convert using the String object: If I am not wrong, the uint8_t corresponds to 8 bits. First create a buffer of the desired size then as one char is equivalent to one byte, try the following:
byte buffer[<my string length>]; myString = "String example 30 characters"; myString.StringToCharArray(buffer,<my string length>);
Enrico
be sure to include an extra character / space at the end of the string for a null terminator, so for example if you want to have 30 characters for the actual string, assign 31 characters to the array
Hi Peter ,
Thanks for reply , I have this function :
string2vector(text, aux)
in RFID/NFC 13.5 MHz Example http://www.libelium.com/development/waspmote/examples/rfid1356-03-bus-ticketing/ i still don't know how to write this in Arduion ?
Thx
Rita
this is the function you need
//! Convert from a string to a pointer to uint8_t's /*! \param char inp: the string we want to convert \param uint8_t outp: the transformed pointer to unit8_t's \return int : returns 0 on success, -1 on failure. */ int WaspRFID::string2vector(char *inp, uint8_t *outp) { for (int i=0; i<16; i++) { outp[i] = '\0'; // write 0's first } if (sizeof(inp) > 16) { return -1; // this is an error } else { for (int i=0; i<16; i++) { outp[i] = inp[i]; // write the content of inp if (inp[i] == '\0') break; } return 0; } }
but it is already part of the library along with all the other functions the ticketing example uses, it would be simpler to use the library
you can find it here https://github.com/Libelium/waspmoteapi/tree/master/libraries/RFID1356
hope this helps
Peter
this is the function you need
//! Convert from a string to a pointer to uint8_t's /*! \param char inp: the string we want to convert \param uint8_t outp: the transformed pointer to unit8_t's \return int : returns 0 on success, -1 on failure. */ int WaspRFID::string2vector(char *inp, uint8_t *outp) { for (int i=0; i<16; i++) { outp[i] = '\0'; // write 0's first } if (sizeof(inp) > 16) { return -1; // this is an error } else { for (int i=0; i<16; i++) { outp[i] = inp[i]; // write the content of inp if (inp[i] == '\0') break; } return 0; } }
but it is already part of the library along with all the other functions the ticketing example uses, it would be simpler to use the library
you can find it here https://github.com/Libelium/waspmoteapi/tree/master/libraries/RFID1356
hope this helps
Peter