/*
- 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/
*/
sketch_mar21c004WebServerSD_015m.ino (32.2 KB)