Hello everyone ! I am programming an api and I have come across the following scenario:
I have data received by the serial port ->
byte read_buffer[40];
if(Serial.available()){
for(int i = 0; i < sizeof(read_buffer); i++){
delay(5);
read_buffer[i] = Serial.read();
}
}
Up to this point everything works and I still haven't figured out how to convert those received bytes to char* type variables, the data would be converted to enter the SSID and Password of the function Wifi.begin("SSID","PASSWORD"), could someone give me a hand ! thank you so much !
Copy a number of elements to a new array and append the value 0 (zero. (Final de cadena, creo que entiendes el español). Same for the second string.
However you must know the number of bytes for each of both fields: the SSID and the password. Maybe the original string contains a way that let's you split it in two strings.
o por supuesto ya tengo separados los datos seriales recibidos, así que puedo manipularlos, con lo que no he podido es que la función WiFi.begin("SSID","PASSWORD") solo admite datos tipo char*, con los arrays de bytes decimales tambien se como pasarlos a un nuevo array, lo que no he podido hacer es convertir ese nuevo byte decimal array a una variable tipo char* ... si puedes darme una mano con ello estare muy agradecido !
Ak ok, entonces lo que debes hacer es agregar el valor 0 (final de cadena) a cada una de tus cadenas, con eso cualquier función de cadena de C entenderá que se trata de una cadena válida:
char read_buffer[7]; // uno más de lo que necesitas
read_buffer[0] = 86;
read_buffer[1] = 73;
read_buffer[2] = 76;
read_buffer[3] = 76;
read_buffer[4] = 65;
read_buffer[5] = 32;
read_buffer[6] = 0; // Agrega este elemento (también funciona '\0')
Serial.print( read_buffer ); // debería imprimir VILLA en la terminal
WiFi.begin( read_buffer, "PASSWORD");
Ok efectivamente al agregar el 0 al final de la cadena y al imprimir se ve VILLA en el puerto serial, al parecer la funcion WiFi.begin(), solo acepta variables del tipo const char*, sigo buscando documentación ... gracias por responder !
Moderador:
Como un tema empieza en inglés y termina con respuestas en español.
@ bsarevalo si empiezas hablando en inglés terminas haciendolo en ese idioma. no mezcles idiomas por favor.
Ahora el tema no pertenece ni al foro en inglés ni a este.
Lee las normas @bsarevalo