collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Conversor de código HTML para Arduino  (Lida 9616 vezes)

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

Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Conversor de código HTML para Arduino
« em: 19 de Fevereiro de 2014, 17:12 »
Boas,

Tenho andado a brincar com um módulo ethernet para arduino e estava sempre com muito trabalho a fazer o código html pois temos sempre de inserir o client.println(".... etc etc...

Sendo assim, fiz uma simples folha excel para ajudar na conversão, que disponibilizo cá para a malta.

Está sujeito a alterações que queiram sugerir ;)

Abraço

http://ricardogomes.eu/html_ard.xlsx


Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Conversor de código HTML para Arduino
« Responder #1 em: 19 de Fevereiro de 2014, 18:20 »
porque é que não colocas o html todo dentro de uma string e fazes print dessa string? é muito mais simples...

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Conversor de código HTML para Arduino
« Responder #2 em: 19 de Fevereiro de 2014, 19:21 »
e poupas alguma memória penso eu de que...

Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #3 em: 19 de Fevereiro de 2014, 19:30 »
porque nem sempre escrevo o mesmo.
por vezes tenho necessidade de imprimir algumas linhas dependentes de variaveis, ou algo do genero.

a mim... isto dá bastante jeito... pode ser que dê a mais alguém ;)

Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #4 em: 19 de Fevereiro de 2014, 19:31 »
além disso... isto já altera os " para '

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Conversor de código HTML para Arduino
« Responder #5 em: 19 de Fevereiro de 2014, 20:01 »
Já agora, esse client.println usa progmem ou isso é tudo enfiado na ram?
Avr fanboy

Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #6 em: 19 de Fevereiro de 2014, 23:48 »
acho que nao entenderam bem para que serve este ficheiro...
é simplesmente para adicionar o client.println(" no inicio, o "); no final e alterar as " para '
assim, podem fazer a vossa pagina em qualquer editor html, testar o aspecto da pagina em qualquer explorador e depois, é só escrever directo no arduino.


Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Conversor de código HTML para Arduino
« Responder #7 em: 20 de Fevereiro de 2014, 00:35 »
Eu tenho um programazinho que faz uma coisa parecida, mas é para criar variáveis em progmem.
Como o senso já tinha referido (ou melhor questionado), se não metes as coisas em progmem vais ter os programas a rebentar não tarda nada... Por exemplo o código que tens o teu exemplo no XLS ocupa praí 1.2k de RAM no arduino... Junta-lhe mais umas centenas de Kb para os buffers de serial e de ethernet, e ficas perigosamente perto dos 2k (que é a memoria total do arduino).

Outro detalhe é que tambem seria fixe usares escape characters em vez de substituires os " por ', porque às vezes dá jeito usar ambos no html (se tiveres certas cenas de Javascript, por exemplo).

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Conversor de código HTML para Arduino
« Responder #8 em: 20 de Fevereiro de 2014, 01:24 »
Deixo aqui o meu programazito se alguem quiser usar já agora...
No caso do teu input ricard0g0mes ele pega num txt e cria outro txt com o seguinte:
Código: [Seleccione]
P(htmlFullPageBegin) =
"<html>\n"
"<head>\n"
"<meta content=\"text/html; charset=ISO-8859-1\"\n"
"http-equiv=\"content-type\">\n"
"<title>Missao Suicida</title>\n"
"</head>\n"
"<style type=\"text/css\">\n"
"body {\n"
"background-repeat: no-repeat;}\n"
"</style>\n"
"<body background=\"http://ricardogomes.eu/geocaching/background.jpg\">\n"
"<span font-weight: bold;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><big><big><big><big><big><span style=\"color: rgb(249, 65, 24); font-weight: bold;\">Missao Suicida</span></big></big></big></big></big>\n"
"<br></br>\n"
"<br></br>\n"
"<br></br>\n"
"<form name=\"myform\" action=\"http://missao.ricardogomes.eu:155\" method=\"get\">\n"
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input size=\"5\" name= \"codigo\" value=\"\" type=\"text\">\n"
"<input value=\"Enviar\" type=\"submit\">\n"
"</form>\n"
"<span font-weight: bold;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"color: rgb(255, 204, 0); font-weight: bold;\">Temperatura: 22.70 C</span>\n"
"<br></br>\n"
"<span font-weight: bold;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></BODY>\n"
"</HTML>\n" ;

Tem algumas vantagens que às vezes dão jeito:
Mantem a identação com tabs, se ela existir.
Mantem as quebras de linha originais na mesma
Mantem todos os caracteres (" e ') iguais
Poupa MUITA memória ;)

Para imprimir uso uma coisa deste tipo:
Código: [Seleccione]
void printProgmem(const char *data)
{
int length = strlen_P(data);
uint8_t buffer[32];
size_t bufferEnd = 0;

while (length--)
{
if (bufferEnd == 32)
{
client.write(buffer, 32);
bufferEnd = 0;
}
buffer[bufferEnd++] = pgm_read_byte(data++);
}
if (bufferEnd > 0)
client.write(buffer, bufferEnd);
}

Este define é usado só para conveniencia, para tornar o codigo mais curto:
Código: [Seleccione]
#define P(name)   static const prog_uchar name[] PROGMEM


Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #9 em: 20 de Fevereiro de 2014, 08:54 »
Deixo aqui o meu programazito se alguem quiser usar já agora...
No caso do teu input ricard0g0mes ele pega num txt e cria outro txt com o seguinte:
Código: [Seleccione]
P(htmlFullPageBegin) =
"<html>\n"
"<head>\n"
"<meta content=\"text/html; charset=ISO-8859-1\"\n"
"http-equiv=\"content-type\">\n"
"<title>Missao Suicida</title>\n"
"</head>\n"
"<style type=\"text/css\">\n"
"body {\n"
"background-repeat: no-repeat;}\n"
"</style>\n"
"<body background=\"http://ricardogomes.eu/geocaching/background.jpg\">\n"
"<span font-weight: bold;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><big><big><big><big><big><span style=\"color: rgb(249, 65, 24); font-weight: bold;\">Missao Suicida</span></big></big></big></big></big>\n"
"<br></br>\n"
"<br></br>\n"
"<br></br>\n"
"<form name=\"myform\" action=\"http://missao.ricardogomes.eu:155\" method=\"get\">\n"
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input size=\"5\" name= \"codigo\" value=\"\" type=\"text\">\n"
"<input value=\"Enviar\" type=\"submit\">\n"
"</form>\n"
"<span font-weight: bold;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=\"color: rgb(255, 204, 0); font-weight: bold;\">Temperatura: 22.70 C</span>\n"
"<br></br>\n"
"<span font-weight: bold;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></BODY>\n"
"</HTML>\n" ;

Tem algumas vantagens que às vezes dão jeito:
Mantem a identação com tabs, se ela existir.
Mantem as quebras de linha originais na mesma
Mantem todos os caracteres (" e ') iguais
Poupa MUITA memória ;)

Para imprimir uso uma coisa deste tipo:
Código: [Seleccione]
void printProgmem(const char *data)
{
int length = strlen_P(data);
uint8_t buffer[32];
size_t bufferEnd = 0;

while (length--)
{
if (bufferEnd == 32)
{
client.write(buffer, 32);
bufferEnd = 0;
}
buffer[bufferEnd++] = pgm_read_byte(data++);
}
if (bufferEnd > 0)
client.write(buffer, bufferEnd);
}

Este define é usado só para conveniencia, para tornar o codigo mais curto:
Código: [Seleccione]
#define P(name)   static const prog_uchar name[] PROGMEM

thanks!!!!

vou experimentar! ;)

Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #10 em: 21 de Fevereiro de 2014, 13:36 »
Já funciona!!!
Excelente!!!

Não está a página toda assim, pois algumas linhas são só disponibilizadas conforme o estado de algumas variáveis do programa... mas a maior parte está, e realmente diminuiu bastante o espaço ocupado ;)

Thanks

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Conversor de código HTML para Arduino
« Responder #11 em: 21 de Fevereiro de 2014, 13:42 »
No problem.
Já agora, se não sabias, podes tambem usar a macro F(), que ja vem com o arduino.

Em vez de:
Código: [Seleccione]
Serial.print("ola");

podes usar:
Código: [Seleccione]
Serial.print(F("ola"));


Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #12 em: 21 de Fevereiro de 2014, 13:52 »
No problem.
Já agora, se não sabias, podes tambem usar a macro F(), que ja vem com o arduino.

Em vez de:
Código: [Seleccione]
Serial.print("ola");

podes usar:
Código: [Seleccione]
Serial.print(F("ola"));

e usa também o PROGMEM, é isso?
isso ainda era melhor então :D

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Conversor de código HTML para Arduino
« Responder #13 em: 21 de Fevereiro de 2014, 14:36 »
Sim é a mesma coisa. A desvantagem do F() é que só usas a variável naquele sitio. É fixe para coisas que não se repetem. Mas quando queres guardar uma string para depois poderes usar em vários sitios diferentes, ou se quiseres ter o html e o código do arduino separados, a 1a maneira é melhor.

Offline ricard0g0mes

  • Mini Robot
  • *
  • Mensagens: 146
Re: Conversor de código HTML para Arduino
« Responder #14 em: 21 de Fevereiro de 2014, 15:10 »
Sim é a mesma coisa. A desvantagem do F() é que só usas a variável naquele sitio. É fixe para coisas que não se repetem. Mas quando queres guardar uma string para depois poderes usar em vários sitios diferentes, ou se quiseres ter o html e o código do arduino separados, a 1a maneira é melhor.

hmmm... sendo assim, tenho de usar a primeira hipótese na maior parte das vezes...

thanks!!