Go Down

Topic: Compartir Servidor Web para Arduino UNO y Ethernet Shield con SD (Read 2045 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