Dear Forum
I’m being problem with my TCP/IP connect, I don’t know why I the program working by UART command but when I connect by TCP/IP doesn’t work, Here I put my code:
char datos[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
int count;
TCPServer server = TCPServer(23);
TCPClient client;
void setup() {
// start listening for clients
server.begin();
//initialize serial camera
Serial1.begin(57600);
Serial.begin(57600);
Serial.println(WiFi.localIP());
Serial.println(WiFi.subnetMask());
Serial.println(WiFi.gatewayIP());
Serial.println(WiFi.SSID());
count = 0;
}
void loop() {
//control cameral
while (Serial.available()) {
//Serial1.write(Serial.read());
if(((char)Serial.read()) == 0xFF){
//Serial.write("stop");
stopFrame();
}
}
if (client.connected()) {
// echo all available bytes back to the client
while (client.available()) {
Serial.write(client.read());
server.write("Recibiendo datos desde el servidor TCP/IP");
}
stopFrame();
} else {
// if no client is yet connected, check for a new connection
client = server.available();
}
while (Serial1.available() > 0){
char sd = (char)Serial1.read();
Serial.write(sd);
//llenamos array char
if(count < 16){
datos[count] = sd;
++count;
}
}
if(datos[0] == 0x76 && datos[2] == 0x36){
clearBuffer();
getBuffer();
}
if(datos[0] == 0x76 && datos[2] == 0x34){
clearBuffer();
readFBUF();
}
}
void clearBuffer(){
count = 0;
datos[0] = 0x00;
datos[1] = 0x00;
datos[2] = 0x00;
datos[3] = 0x00;
datos[4] = 0x00;
}
void stopFrame(){
Serial1.write(0x56);
Serial1.write(0x00);
Serial1.write(0x36);
Serial1.write(0x01);
Serial1.write(0x00);
}
void getBuffer(){
Serial1.write(0x56);
Serial1.write(0x00);
Serial1.write(0x34);
Serial1.write(0x01);
Serial1.write(0x00);
}
void readFBUF(){
Serial1.write(0x56);
Serial1.write(0x00);
Serial1.write(0x32);
Serial1.write(0x0C);
Serial1.write(0x00);
Serial1.write(0x0A);
Serial1.write(0x00);
Serial1.write(0x00);
Serial1.write(0x00);
Serial1.write(0x00);
Serial1.write(datos[5]);
Serial1.write(datos[6]);
Serial1.write(datos[7]);
Serial1.write(datos[8]);
Serial1.write(0x10);
Serial1.write(0x00);
}
void setImagenSize(){
Serial1.write(0x56);
Serial1.write(0x00);
Serial1.write(0x53);
Serial1.write(0x01);
Serial1.write(0x22);
}
I am very grateful for any hint!
Carlos