collapse

* Links de Robótica

* Posts Recentes

Ontem pequei... por senso
[Hoje às 01:31]


Tipo de conectores são ou onde arranjá-los? por Hugu
[Hoje às 00:34]


Wamp Server por beirao
[Ontem às 21:23]


Carro telecomandado atraves do PC por artur36
[Ontem às 20:10]


Escolher Multimetro por filjoa
[Ontem às 14:46]


Qual a melhor técnica? por dropes
[Ontem às 14:30]


TV Avariou - Sanyo por almamater
[26 de Setembro de 2016, 13:54]


Ligar telefone fixo a arduino por helderjsd
[26 de Setembro de 2016, 11:07]


Procuro cristal de 30.875 Mhz? por Hugu
[25 de Setembro de 2016, 17:20]


Encomenda Colectiva N2-2016[@Mouser - Aberta a pedidos!] por Hugu
[25 de Setembro de 2016, 16:42]

Autor Tópico: Duvida sobre ciclo  (Lida 850 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Duvida sobre ciclo
« em: 01 de Agosto de 2012, 17:07 »
Boas pessoal, estou a elaborar um programa para o arduino, porem esse programa é "muito grande" pois eu utilizo varias vezes uma determinada parte do código.

Primeiro pensei em fazer uma espécie de ciclo onde o chamava cada vez que quisesse executar aquela parte do código, o meu problema é que preciso de enviar enviar informação pela Ethernet logo preciso de "abrir a porta" em todos os ciclos o que acabava por não diminuir o código.

Depois pensei em criar uma variável do tipo String onde lhe atribua "a parte do código" que preciso, mas também não funciona.

Alguma diga?

Cumprimentos,
Wolfz

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.944
  • Helpdesk do sitio
Re: Duvida sobre ciclo
« Responder #1 em: 01 de Agosto de 2012, 17:12 »
Usar funções, é para isso que as funções existem, para chamar pedaços de código repetitivo ao longo de um programa.
Avr fanboy

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Duvida sobre ciclo
« Responder #2 em: 01 de Agosto de 2012, 17:42 »
Devo estar a perceber mal. Qual a função que devo usar?

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: Duvida sobre ciclo
« Responder #3 em: 01 de Agosto de 2012, 17:45 »
Deves de criar a tua propria função a qual irás chamar ao longo do codigo, para não repetires constantemente todas as instruções que tens de fazer.
Dronetech BlogThe Scientist and the Geek

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.944
  • Helpdesk do sitio
Re: Duvida sobre ciclo
« Responder #4 em: 01 de Agosto de 2012, 17:45 »
Crias uma função com o teu código, presumo que não tenhas qualquer experiencia de programação, certo?
Avr fanboy

Offline Wolfz

  • Mini Robot
  • *
  • Mensagens: 59
Re: Duvida sobre ciclo
« Responder #5 em: 01 de Agosto de 2012, 18:13 »
Ahhh!!! Lol, já percebi. Eu é que me expliquei mal xD
O que eu criei não foi ciclos xD foi mesmo função. Confundi-me.

O problema é que em todas as funções tenho que colocar esta linha de código e isso faz com não poupe espaço nenhum:
Código: [Seleccione]
EthernetClient client = server.available();

  if (client) {

    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    String vars;
    boolean sentHeader = false;

    while (client.connected()) {
      if (client.available()) {

        if(!sentHeader){
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          sentHeader = true;
        }

        char c = client.read();
        vars.concat(c);
        Serial.println(vars);

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.944
  • Helpdesk do sitio
Re: Duvida sobre ciclo
« Responder #6 em: 01 de Agosto de 2012, 18:16 »
Mete esse código dentro de uma função então.
Avr fanboy

Offline Kcidade

  • Mini Robot
  • *
  • Mensagens: 70
Re: Duvida sobre ciclo
« Responder #7 em: 14 de Agosto de 2012, 18:27 »
Boas, eu ando com uma duvida do genero. eu queria fazer uma funçao do genero:


Código: [Seleccione]
void checkForClient(){
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        if(!sentHeader){
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          sentHeader = true;
        }
        char c = client.read();
        vars.concat(c);
           
            //  Login 
            if(vars.endsWith("\n")){
              client.println();
              client.println("<img src='http://alojaimagens.com/images/f7sb151hmcjjahyupaz0.jpg' style=\"position:fixed;left:3px;top:3px;width:397px;height:361px;z-index:1;padding:0;\">");
              client.println("<form method=get name=LED>");
              client.println("<input type=text name=C  style=\"position:fixed;left:39px;top:170px;width:313px;height:28px;z-index:1;padding:0;\">");
              client.println("<input type=""password"" name=C  style=\"position:fixed;left:39px;top:231px;width:313px;height:28px;z-index:1;padding:0;\">");
              client.println("<input type=submit value=submit style=\"position:fixed;left:250px;top:300px;width:118px;height:29px;z-index:1;padding:0;\"></form>");
              delay(1);
              client.stop();}
      }
    }
  }
}

Basicamente queria em vez de por a parte do login dentro de um ciclo mas para isso preciso do codigo anterior.

Alguma sugestão?