Go Down

Topic: Compartir Servidor Web para Arduino UNO y Ethernet Shield con SD (Read 2151 times) previous topic - next topic

asevafol

Apr 27, 2012, 08:28 pm Last Edit: Apr 29, 2012, 09:02 pm by asevafol Reason: 1
/*
* Alberto Seva WebServerSD.015t
*
* http://dfists.ua.es/~alberto/arduino/arduino.htm
*
*
* Mi proyecto es crear un servidor Web con el "Arduino UNO" (RS  715-4081[1]) y
* el "ETHernet shield with SD card" (RS 715-4072[2]).
*
* [1] http://es.rs-online.com/web/p/products/715-4081/
* [2] http://es.rs-online.com/web/p/microcontrolador-procesador/7154072/
*
* A partir del sketch 'SDWebBrowse.ino', las mejoras de mi código suponen
* lo siguiente:
*
*  * Los nombres de fichero 8.3 que el sistema SdFat es capaz de encontrar,
*    se guardan en el formato correspondiente a la página de códigos de
*    MSDOS cp850. Se debe especificar esa página de códigos para que los
*    enlaces se puedan reconstruir.
*  * Los nombres 8.3 normalmente no deberían tener caracteres por encima
*    del 0x7F, pero en algunas de mis tarjetas he descubierto que no es así.
*    Surge el problema de que los enlaces con caracteres por encima del 0x7F
*    enviados en los enlaces con formato cp850, regresan con el formto UTF-8
*    expresado como %C2 ó %C3 y a continuación otro código con el formato
*    %XX. Esos códigos hay que convertirlos primero a un carácter
*    equivalente, y luego mediante una tabla totalmente arbitraria, al
*    carácter correcto en cp850 que sirva en el proceso de búsqueda del
*    nombre del fichero.
*  * En el listado de directorio, la rutina es capaz de detectar las entradas
*    de nombre largo y escribirlas como información aunque sin ninguna opción
*    de búsqueda real.
*  * En la petición de ficheros, se intenta mandar información del
*    content-type de manera correcta. El HTML supone programar muchas cadenas
*    constantes que hay que almacenar en la zona de programa para que el
*    programa no se quede sin memoria.
*  * La transmisión de ficheros usando un buffer, mejora muchísimo el
*    rendimiento del servidor web.
*
* Se ha probado con el Arduino UNO y con el MEGA 2560 (RS 715-4084 [3].
* Como intento que funcione en el primero, hay unos trucos de ahorro de
* memoria compartiendo el buffer de entrada.
*
* Dos notas adicionales:
*  * La comunicación serie está definida a 115200 bps.
*  * Para que funcione y busque los caracteres acentuados, debe modificarse la librería.
*    SdBaseFile.cpp como se indica en la cabecera del sketch.
*
* [3] http://es.rs-online.com/web/p/microcontrolador-procesador/7154084/
*/

riscking

En cuanto me llegue la ethernet shield lo pruebo a ver como va.
Muchas gracias

asevafol


En cuanto me llegue la ethernet shield lo pruebo a ver como va.
Muchas gracias


Gracias por tu interés. En la versión 15t faltaba un unsigned en un sitio, así que la he vuelto a subir. También dejo la 15m que usa algo mas de SRAM pero ocupa almo menos de memoria flash (programa).

ionhs

gracias por compartir, me lo apunto para cuando tenga tiempo.  :smiley-yell:

wdvalenz

Estoy tratando de mejorar la velocidad de transferencia para un servidor sobre Arduino UNO, por ahora va a 330 bytes/segundo...
si gusta puedo enviar mi código para que me de sugerencias

Saludos,

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy