void Update() { int tamanho = 0; //tamanho da mensagem recebida if (server.Pending()) { cliente = server.AcceptSocket(); //aceita conexao cliente.Blocking = false; byte[] mensagem = new byte[1024]; string strMessage = ""; while (!strMessage.Contains(";")) { try{ tamanho = cliente.Receive(mensagem); strMessage = strMessage + System.Text.Encoding.UTF8.GetString(mensagem); }catch (System.Exception e) {} } string comando = strMessage.Split(';')[0]; byte[] envioBuffer = new byte[4]; envioBuffer[0] = (byte)'a'; envioBuffer[1] = (byte)'c'; // mensagem a ser enviada ao cliente envioBuffer[2] = (byte)'k'; envioBuffer[3] = 10; Servo_Motor_Rotacao [] servos = GameObject.FindObjectsOfType <Servo_Motor_Rotacao>(); if (strMessage.Contains("distancia")) { Sensor_Infra_Vermelho sensorIV = GameObject.FindObjectOfType <Sensor_Infra_Vermelho>(); float distancia = sensorIV.GetDistancia(); envioBuffer[0] = (byte)distancia; envioBuffer[1] = 10; } else { for (int i = 0; i < servos.Length; i++) { if (strMessage.Contains("frente")) { servos[i].velocidade = 150; servos[i].direcao_rotacao = 1 - i; } else if (strMessage.Contains("tras")) { servos[i].velocidade = 150; servos[i].direcao_rotacao = i; } else if (strMessage.Contains("direita")) { servos[i].velocidade = 150; servos[i].direcao_rotacao = 0; } else if (strMessage.Contains("esquerda")) { servos[i].velocidade = 150; servos[i].direcao_rotacao = 1; } else if (strMessage.Contains("parar")) { servos[i].velocidade = 0; } } } cliente.Send(envioBuffer); } }
//------------------------------------- void Update() { int tamanho = 0; //tamanho da mensagem recebida if (server.Pending()) { cliente = server.AcceptSocket(); //aceita conexao cliente.Blocking = false; byte[] mensagem = new byte[1024]; string strMessage = ""; while (!strMessage.Contains(";")) { try{ tamanho = cliente.Receive(mensagem); //recebe a mensagem strMessage = strMessage + System.Text.Encoding.UTF8.GetString(mensagem); }catch (System.Exception e) {} } string comando = strMessage.Split(';')[0]; byte[] envioBuffer = new byte[4]; envioBuffer[0] = (byte)'a'; envioBuffer[1] = (byte)'c'; // mensagem a ser enviada ao cliente envioBuffer[2] = (byte)'k'; envioBuffer[3] = 10; //decodifica a mensagem if (strMessage.Contains("cor")) { int cor = sensorRGB.getCor(); envioBuffer[0] = (byte)((cor >> 16) & 255); // R envioBuffer[1] = (byte)((cor >> 8) & 255); // G envioBuffer[2] = (byte)(cor & 255); // B } else if (strMessage.Contains("distanciaE")) { float distancia = sensorIVEsquerdo.GetDistancia(); envioBuffer[0] = (byte)distancia; envioBuffer[1] = 10; } else if (strMessage.Contains("distanciaC")) { float distancia = sensorIVCentral.GetDistancia(); envioBuffer[0] = (byte)distancia; envioBuffer[1] = 10; } else if (strMessage.Contains("distanciaD")) { float distancia = sensorIVDireito.GetDistancia(); envioBuffer[0] = (byte)distancia; envioBuffer[1] = 10; } else if (strMessage.Contains("frente")) { frente(); } else if (strMessage.Contains("tras")) { tras(); } else if (strMessage.Contains("direita")) { direita(); } else if (strMessage.Contains("esquerda")) { esquerda(); } else if (strMessage.Contains("parar")) { parar(); } cliente.Send(envioBuffer); //responde ao cliente } }