Paso 7: Compilación y carga, bibliotecas
Como las cadenas de menú residen en memoria de la EEPROM del procesador, tienen que cargarse allí primero. Esto se hace por un pequeño programa (streeng.ino) que debe ser cargado y lanzado antes de compilar e instalar el programa principal (steuerung.ino). El programa streeng así como el controlador hacer uso de la biblioteca de clase streeng, que permite guardar y acceder a cadenas de caracteres en la EEPROM.
Unas palabras sobre las bibliotecas:
Sistema de menús
La funcionalidad del dispositivo requiere una interfaz de usuario estructurados. Desarrollé el sistema de menús con tres objetivos: simplicidad, flexibilidad y consumo de memoria baja. Los menús son jerárquicos hasta 4 niveles. Las entradas de menú se pueden modificar en tiempo de ejecución y el sistema también proporciona funcionalidad para la entrada de datos alfanuméricos y el tiempo. Para los entrada solo tres botones (arriba/entrar/abajo) son necesarios. Tiempo de empuje del botón también se utiliza para funciones adicionales.
La pantalla LCD muestra una línea de panel de cabecera (información de estado, tiempo, temperatura, funcionamiento modo y caldera del estado) así como 3 líneas de menú. Dependiendo del tamaño de la pantalla, esto puede ser más o menos (por ejemplo encabezado más 1 línea para una pequeña 16 x 2 pantalla). Navegación del menú no afecta al panel de encabezado. Puede verse la actual posición del menú de la izquierda más de lado y es indicado por un ' >'. El texto de la entrada del menú se ve en el centro de la pantalla. En caso de que existen submenús para una entrada de menú, un ' >' se muestra en el lado de la derecha. Elementos del menú se seleccionan pulsando la tecla enter, arriba y abajo se desplaza proporcionalmente dentro del árbol de menú. Presionar entrar para vueltas más a la raíz del menú, presionando hacia 'arriba' ya navega por un menú nivel.
Cadenas se editan cambiando el valor bajo el cursor resaltado mediante las teclas up/down. Haciéndoles más se moverá el cursor. La tecla enter termina una edición con el nuevo valor asumido el control, manteniendo más tiempo también terminará, pero restaura el valor original de la cadena.
La biblioteca de clases de menú proporciona tres formas de almacenar el texto del elemento de menú: memoria de programa 1), 2) EEPROM, 3) tanto para el cálculo dinámico anterior por una función proporcionada. En el inicio del programa el árbol de menús debe construirse utilizando la función de entrada. En este ejemplo debido a las limitaciones de la memoria EEPROM se utiliza principalmente para el almacenamiento (teléfono libros son dinámicos y así utilizan la creación de menús dinámicos de entrada). Las entradas de menú se identifican por un número de índice (índice en la posición de la EEPROM, o argumento de la función) y un número de codificación de su posición en el árbol de menús (4 dígitos hexadecimales que indica un nivel cada). Así que 0x1000 significaría la primera entrada de menú en el nivel superior, 0x2000 el segundo menú de nivel superior, mientras que 0x1400 denotan el submenú cuarta a la primera entrada de menú de nivel superior. El número de índice permite un cambio de texto del menú en tiempo de ejecución por repetidas llamadas a la función de entrada (por ejemplo, activar/desactivar conmutar).
La función principal del programa de usuario es un controlador de eventos, que devuelve los elementos de menú seleccionados y se encarga de navegación menú todos, actualización y desplazamiento. Espera de eventos de menú, el controlador de eventos permite al programa llamando al utilizar tiempo del procesador a través de una rutina de servicio personalizado, que tiene que ser suministrado.
Interfaz de línea de comandos
Una de las características esencial de la interfaz de usuario es la interfaz de línea de comando, que permite la entrada de comandos de texto. Mientras que se utiliza para la entrada de SMS, puede también ser utilizado y adaptado para otros fines (e.g. entradas vía IP) y la sintaxis del comando.
Esencialmente la línea de comandos se analiza para las palabras clave (que reside en el espacio de programa), que luego se traducen a un código intermedio compacto, que luego se comprueba fácilmente para la sintaxis. Argumentos como la hora y la temperatura se espera que en una forma particular (HH: mm por vez, tt.t para la temperatura). En caso que se detecte un error de sintaxis, se produce un mensaje de error.
Libreta de teléfonos
La agenda gestiona la agenda y los almacena en la EEPROM del controlador. La biblioteca depende fuertemente en la biblioteca del menú, que fuentes edición funciones, así como la columna vertebral de la estructura del menú agenda.
La biblioteca de la guía telefónica crea una estructura de menú con entradas de menú dinámico, que tienen submenús para editar y eliminar. Rutinas para la edición y eliminación son proporcionadas por la biblioteca del menú. Por lo general, números de teléfono pueden tener 16 dígitos y se almacenan en formato internacional, comenzando con el inicio de un '+' y el código de país.
Controler
La caldera on/off contacto es controlada por el software de controlador. La biblioteca cambia la calefacción según el punto de referencia relevante, que sea valores predeterminados de sistema manualmente (a través de la entrada del menú temperatura), uso (confort, economía o anticongelante, que a su vez son fijados por el elemento de menú de configuración) o es determinada por los horarios programados por el usuario. Los horarios se pueden programar con una resolución de tiempo de un minuto. Hasta cinco intervalos de tiempo con temperatura individual pueden programarse ajustes.
Mientras que el control de la caldera, la biblioteca se encarga no para el calentador inferior pre había establecido mínimo tiempo de ejecución y también busca posibles fallos de funcionamiento, es decir, cuando la temperatura no aumenta durante la operación del calentador. En caso de que se detecta un mal funcionamiento o la temperatura cae por debajo de (alerta 0) o superior (alerta 1) programa puntos de referencia, alerta de los mensajes se envían por SMS. Finalmente el controlador intenta asegurar en todos tiempos en que la temperatura nunca cae por debajo del nivel de anticongelante definido.
GSM
La biblioteca GSM realiza la comunicación entre Freeduino y módem. La biblioteca realiza básico IO con el módem, proporciona un método para enviar comandos al módem y proporciona funcionalidad básica para controlar las llamadas entrantes y administrar entrantes mensajes SMS así como iniciar los mensajes SMS salientes.