Paso 1: Una página sobre el fracaso
Aquí hay algunas cosas que he probado... que no funcionaba. Estos son los agujeros de conejo que metió y casi me llevó a renunciar.
-En primer lugar trató de cargar todas las páginas de js de francobordo y todas sus dependencias normalmente y sólo alimentan directamente al cliente mediante la reutilización de wifiwebserver y código de un miembro del Foro arduino conocido, zoomkat. Esto me llevó a inventar algo como lo que usted ve aquí:
Lo que sucede aquí es que el archivo corriente viene del espacio de memoria en el linkit uno consigue poner en un búfer de la secuencia en la memoria RAM y luego de eso almacenador intermediario de vertido en las colas de pila de red saliente. Esto presenta dos problemas:
Eso almacenador intermediario de primera es realmente bastante pequeña y leer un archivo de la ROM no es particularmente rápido. Por lo tanto, lo que termina con son páginas de carga muy lento. A veces, que tiempo de espera o hacer otras cosas raras. Me wiresharked (https://www.wireshark.org/) la conexión y parece solo escupe paquetes pequeños de alrededor de 50 bytes (más adelante esto comenzó a hacer sentido me como el buffer cuando leer archivos en es probable sobre ese tamaño). Francobordo tiene en realidad un montón de dependencias que necesita para cargar. Algunas de estas cosas simultáneas y dinámicamente cargan cosas. Esto no funciona en un programa lineal simple. Es probable que haya maneras de hacer este trabajo en un arduino pero no fácilmente (un comienzo sería mirar aquí: https://learn.adafruit.com/multi-tasking-the-ardu... .
He probado usando varios métodos de lectura del archivo en y asegurándose de que el búfer era casi completo antes de enviar más datos al cliente. pero no muy lejos. También traté de readUntil y sus variantes. Ninguno de ellos hizo el truco
Algunos clasificados enlaces que examinar durante esta exploración de agujero de conejo:
http://Forum.Arduino.CC/index.php?topic=279849.msg...
http://Playground.Arduino.CC/Code/WebServerST
http://Forum.Arduino.CC/index.php?topic=279849.msg...
https://www.Arduino.CC/en/Reference/StreamReadStr...
Finalmente se rompió y buscó algo muy ligero para satisfacer mi deseo de una representación gráfica de datos junto con la exposición de los datos de json. Lo que me ocurrió con rellies en los elementos html 5 "metro" o "progreso". Estas son esencialmente pequeños gráficos de barras que hacen sin página de .js externo o estilo de peso pesado. Estos son los huesos desnudos.
El código de la página que se me ocurrió parecía algo como esto (y fue leído por algo similar a la lista anterior, pero con una adición al presente las lecturas de batería como json en /bat):
Sin embargo, me encontré con otro problema con mi código...
Si tuviera que cargar una página html y la página html intentaría hacer un HTTP GET algo en linkit uno entonces nada pasaría. Estaba perplejo hasta que me di cuenta. El código es solo rosca y bloqueo. Por lo tanto, esperaba hasta que la página inicial se hizo carga para cargar la página siguiente. Esto nunca sucedió y así se quedó atascado.