Hi guys!
I make a code to read a string in arduino Serial monitor.
The strings is for example: $cr$1,0,12,0,21,30,0,0,13,30,22,0,1,0,12,30,22,30,0,0,2,30,23,0,1,0,22,0,12,0,2,0,8,0,21,0,0,0,12,30,21,0,2,0,16,0,0,1,2,0,16,0,0,3#
and the # its the final string.
I make a code to read this string and work fine. It is the code.
int bluetooth =1;
char cadenaentrada [500]; // a string to hold incoming data
boolean cadenacompleta = false; // whether the string is complete
int contleeblue=0;
void setup() {
// initialize serial:
Serial.begin(9600);
// reserve 200 bytes for the inputString:
//cadenaentrada.reserve(200);
}
void loop() {
// print the string when a newline arrives:
limpiacadenablue();
}
void serialEvent() {
if (bluetooth==1)
{
while (Serial.available()) {
char letra = (char)Serial.read();
Serial.flush();
cadenaentrada[contleeblue]= letra;
contleeblue++;
if (letra == '#')
{
tratacadena(cadenaentrada,contleeblue);
cadenacompleta = true;
}
}
}
}
void limpiacadenablue ()
{
if (cadenacompleta) {
Serial.println("");
Serial.print("Cadena rebida por bluetooth:");
Serial.print(cadenaentrada);
// clear the string:
//cadenaentrada = "";
cadenacompleta = false;
for (int cl=0; cl<=contleeblue; cl++)
{
cadenaentrada[cl]=0;
}
contleeblue=0;
}
}
void tratacadena( char cadenarecibida [], int contcadenare)
{
int i=0;
int x=0;
char cadenabuena[500];
while( i<contcadenare)
{
while ((cadenarecibida[i] != '
I like to put my code in the main where the arduino monitors various functions but if I put not read the complete 64 -character string losing itself on. If I put a shorter chain is working perfectly.
If I put a shorter chain works perfectly .
Thank You
)&& (i<contcadenare))
{
i++;
}
while ((cadenarecibida[i] != '#')&& (i<contcadenare))
{
cadenabuena[x]=cadenarecibida[i];
x++;
i++;
}
cadenabuena[x]=cadenarecibida[i]; // para recoger #
x++;
i++;
switch (cadenabuena[1])
{
case('e'):// cadena solicita envio de cadena
{
switch (cadenabuena[2])
{
case ('r'):
{
// intro();
//cadenamuestra="se ha solicitado el envio de relojes";
//imprimemonitor(cadenamuestra);
Serial.println("");
Serial.print("Recibida cadena de solicitud de relojes: ");
Serial.print(cadenabuena);
//mandarelojes();
}break;
case('s'):
{
Serial.println("");
Serial.print("Recibida cadena de solicitud de sondas: ");
Serial.print(cadenabuena);
//mandasondas();
}break;
default:
{
Serial.println("");
Serial.print("Recibida cadena de solicitud de erronea ");
Serial.print(cadenabuena);
}break;
}
}break;
case ('c'): // recibida cadena cambios relojes
{
switch (cadenabuena[2])
{
case ('r'):
{
//cadenamuestra="Se ha recibido la cadena de cambios de relojes";
//imprimemonitor(cadenamuestra);
Serial.println("");
Serial.print("Recibida cadena de cambio de relojes: ");
Serial.print(cadenabuena);
//enviabluestring("$l$ Recibidos cambios en relojes del servidor web#");
//reciberelojes(cadena);
}break;
case ('3'):
{
//cadenamuestra="Se ha recibido la cadena de cambios de boton 3";
//imprimemonitor(cadenamuestra);
Serial.println("");
Serial.print("Recibida cadena de cambios de boton 3: ");
Serial.print(cadenabuena);
//enviabluestring("$l$ Recibidos cambios en boton 3 del servidor web #");
//recibeboton3(cadena);
//mandaboton3();
}break;
case ('g'):
{
//cadenamuestra="Se ha recibido la cadena de cambios de sondas";
//imprimemonitor(cadenamuestra);
Serial.println("");
Serial.print("Recibida cadena de cambios de sondas: ");
Serial.print(cadenabuena);
//enviabluestring("$l$ Recibidos cambios en sondas del servidor web #");
//recibetemp(cadena);
//mandatemp();
}break;
case ('p'):
{
Serial.println("");
Serial.print("Recibida cadena de cambios principales: ");
Serial.print(cadenabuena);
//enviabluestring("$l$ Recibidos cambios principales del servidor web#");
//cadenamuestra="Se ha recibido la cadena de cambios de principal";
//imprimemonitor(cadenamuestra);
//recibeprincipal(cadena);
}break;
}
}break;
default:
{
//enviabluestring("$l$ Cadena erronea general#");
Serial.println("");
Serial.print("Recibida cadena erronea: ");
Serial.print(cadenabuena[1]);
}break;
}
for (int cl=0; cl<=x; cl++)
{
cadenabuena[cl]=0;
}
x=0;
}
}
I like to put my code in the main where the arduino monitors various functions but if I put not read the complete 64 -character string losing itself on. If I put a shorter chain is working perfectly.
If I put a shorter chain works perfectly .
Thank You