Help-me with String and Ethernet
hi guys, i'm big problem, make webserve java , arduindo via tcp/ip, needed send standard message via socket, well, can doing in arduino can't capture message, i'm using client.read () this, in output, string showing char char, going paste code can help...sorry english.
code: [select]
#include<ethernet.h>
#include<spi.h>
#include<string.h>
byte mac[] = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed };
ipaddress ip( 10, 1, 1, 18 ) ;
ethernetserver server(90);
int frente = 9;
int meio = 10;
int atras = 11;
void setup()
{
serial.begin(9600);
ethernet.begin(mac, ip);
server.begin();
serial.print("server at\n");
pinmode(frente, output);
pinmode(meio, output);
pinmode(atras, output);
}
void loop()
{
ethernetclient client = server.available();
if (client)
{
int = 0;
while(client.connected())
{
char aux[3] = "";
if (client.available())
{
int = 0;
while(i<1){
char c = client.read();
aux[i] += c;
i++;
}
//int k = atoi(aux);
aux[2] = '\0';
int codigo = atoi(aux);
if (strcmp(aux, "31") == 0){
serial.println("sou 31");
}
int grupo = codigo / 3;
int estado = codigo % 3;
//msg[1] = client.read();
//char grupo = msg[0];
//char estado = msg[1];
serial.println("31");
//if (c == '3')serial.println("sou 3");
switch(grupo){
case 10: //frente
serial.println("entrei no 10");
if (estado == 1)
{
digitalwrite(frente, high);
//serial.println("ligando");
client.println("1");
}
else
{
digitalwrite(frente, low);
//serial.println("apagando");
client.println("0");
}
break;
case 20: //meio
serial.println("entrei no 20");
if (estado == 1)
{
digitalwrite(meio, high);
//serial.println("ligando");
client.println("1");
}
else
{
digitalwrite(meio, low);
//serial.println("apagando");
client.println("0");
}
break;
case 30: //atras
serial.println("entrei no 30");
if (estado == 1)
{
digitalwrite(atras, high);
//serial.println("ligando");
client.println("1");
}
else
{
digitalwrite(atras, low);
//serial.println("apagando");
client.println("0");
}
break;
}
delay(1);
}
}
client.stop();
}
}
code: [select]
while(i<1){
char c = client.read();
aux[i] += c;
i++;
}
why use while loop iterate once? looks clueless, me.
why adding c value in aux[ 0 ]? 0th element can hold 1 character, not appending character there.
code: [select]
if (strcmp(aux, "31") == 0){
since reading 1 character, , mangling array element, there not snowballs chance in hell ever true.
Arduino Forum > Using Arduino > Programming Questions > Help-me with String and Ethernet
arduino
Comments
Post a Comment