Example #1
0
    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);
        }
    }
Example #2
0
    //-------------------------------------

    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
        }
    }