/****************************************************************************************************************/ /********************************************** Microcontrolador R5F21257 *********************************/ /****************************************************************************************************************/ /*****************************************************************************************************************/ /********************************* MFSATHW1 **************************************************************/ /*****************************************************************************************************************/ Firmware 1_10 (29/02/15): Los mensajes de Rotura de cadena no les debe afectar el telemando de "Callate" (son los únicos a los que no debe afectar) No obstante sí tienen la limitación de cantidad de mensajes enviados x día. /*****************************************************************************************************************/ Firmware 1_9 (24/02/15): Hemos eliminado todo lo referente a la interrogación de la hora via IRIDIUM ya que ha dejado de tener sentido. Por otro lado.. hemos cambiado la estrategia de ON/OFF módulo radio Cuando el tiempo ON IRIDIUM y tiempo OFF IRIDIUM sean igual a 0 => Función telemando desactivada. El módulo IRIDIUM se activará durante 20 minutos cada vez que tenga algo que tranmitir.. y se volverá a dormir hasta que vuelva a tener algo que transmitir En el resto de casos, hará los ciclos programados Si el módulo tiene algo que transmitir, permanecerá activado hasta que esta acción se realice (Por ejemplo por falta de cobertura etc) Cada vez que llega una trama con checksum correcto, el tiempo de "encendido" empezará de nuevo /*****************************************************************************************************************/ Firmware 1_8 (17/12/15): El número de ID de los dispositivos se ha aumentado hasta 999 La rotura de alarma, tras activarse, enviará un mensaje cada 30 minutos hasta que se supere el número máximo de mensajes IRIDIUM permitidos. Se identifica bien el firmware en el programa transceiver /*****************************************************************************************************************/ Firmware 1_6 (01/09/15): En los mensajes IRIDIUM, el parámetro de cobertura será la última cobertura obtenida que no sea "SIN COBERTURA" Tras realizar ciertos telemandos (todos aquellos que afectan a los periféricos)el dispositivo realizará la acción y esperará 30 segundos. Al cabo de dicho tiempo realizará una actualización del estado de todo el sistema y enviará la respuesta Se indica por hyperterminal cuando se ha "prohibido" el envio de mensajes SMS Solo cuando no hay MFSINCLOC, antes de montar y enviar un mensaje el dispositivo debe coger la hora IRIDIUM (para evitar mensajes con horas totalmente erroneas). Esta condición solo se realizará cuando venga de un reset /*****************************************************************************************************************/ Firmware 1_5 (01/09/15): Versión fallida /*****************************************************************************************************************/ Firmware 1_4 (27/09/15): IRIDIUM: En marzo del 2015, IRIDIUM cambió de ERA.. con lo que cambió su base de tiempos a la hora de calcular la hora a través del comando AT+CCLK Para solucionar esto, a la hora que te devuelve el módulo hay que sumarle un offset Hemos detectado que cuando el módulo IRIDIUM está desactivado y hemos de enviar un mensaje, intentamos grabar el mensaje antes de inicializar correctamente el módulo. (En esta versión esto se soluciona. Hasta que no está el módulo inicializado no se graba el mensaje a extraer en el buffer) En versiones anteriores esto provocaba entrar en un bucle que solo salíamos a través del vigilante. También se ha cambiado la forma de tratar la cola de mensajes. Aunque hayan varios mensajes pendientes de enviar por activación o desactivación de entradas externas o por la razón que sea, cuando se envía un mensaje, el resto de mensajes pendientes se anulan, ya que la información se actualiza en el mensaje enviado. Sucede lo mismo al enviar un mensaje de estado. Se envía el mensaje de estado y en el mensaje de estado está el "estado" de las entradas externas o incluso el estado de la baliza. Cuando se elimina un mensaje por tmp... (ya que hay otros mensajes esperando a salir), se indica en el hyperterminal Al montar los mensajes IRIDIUM: - El parámetro de cobertura ha cambiado de forma que siempre es la última cobertura conocida que no sea 0 (Sin cobertura) - Si no existe MFSINCLOC, tras un reset, antes de montar un mensaje deberemos preguntar al IRIDIUM por la hora y colocar en el mensaje la fecha y hora correctas Cuando el módulo IRIDIUM tiene un mensaje en cola para leer y no tenemos nada que enviar.. Enviaremos mensajes "vacios" (Antes se enviaba el estado) MF12: Se ha actualizado el protocolo de comunicaciones con el MF12 (24 horas hw3 o hw4.. etc..) Ahora cada vez que se interroga al MF12, aparecerá la información en el hyperterminal MFSINCLOC: Ahora cada vez que se interrogue al MFSINCLOC aparecerá la información en el hyperterminal Nada más empezar el programa, lo primero que debe saber es en que estado está.. por lo que interrogará al MF12 y al MFSINCLOC /*****************************************************************************************************************/ Firmware 1_3 (22/09/15): Versión Beta que arregla la nueva Era de IRIDIUM /*****************************************************************************************************************/ Firmware 1_2 (03/10/14): Al poner el jumper JP1, arrancaba la fuente de IRIDIUM y consumía.. Ahora ya no Cuando no hay comunicación con el GPS, lo reintenta varias veces y si no consigue comunicación, avisa de error y continua con su trabajo Hemos insertado en el ESTADO: - Si el módulo IRIDIUM está registrado - Cuantos minutos hace que se registró por última vez /*****************************************************************************************************************/ Firmware 1_1 (29/09/14): Problema detectado a la hora de resetear el contador de mensajes IRIDIUM en el vigilante. El contador se resetea cada vez que se registra el módulo IRIDIUM. No estabamos reseteándolo siempre /*****************************************************************************************************************/ Firmware 1 (20/09/14): Firmware: Versión inicial del MFSAT. Transceiver: Version 0.8.95 Jumper comunicación (JP1) Se utiliza para configurar el dispositivo con el transceiver. El dispositivo solo atiende a la comunicación que le llega del PC. Jumper modo verboso (JP3) Se utiliza para depurar el firmware y ver que está sucediendo en el dispositivo. A través del hyperterminal con la siguiente configuración, veremos todo lo que está sucediendo en el dispositivo. Envio de mensajes El MFSAT enviará de forma automática un mensaje al producirse alguna alarma o algún evento importante que transmitir. Tras recibir un telemando o una petición de estado, el MFSAT tambien responderá con un mensaje (que denominaremos "ACK") El MFSAT tiene un número máximo de mensajes permitidos al día. Si se supera ese máximo de mensajes dejará de transmitir mensajes, durante ese día, a excepción de los mensajes "ACK". De forma automática el MFSAT enviará mensajes si se producen las siguientes alarmas: * Rotura de cadena * Batería baja * Bajo consumo corona leds * Sobreconsumo panel solar * Sobreconsumo corona leds * Fallo comunicación con MF12 * Entrada externa 1 * Entrada externa 2 * Entrada externa 3 * Entrada externa 4 * Temperatura excesiva * Fallo en la baliza Y los siguientes eventos: * Baliza en noche * Baliza en día Recepción de mensajes A través de telemandos, podremos: * Leer la configuración del dispositivo de forma remota * Escribir la configuración del dispositivo de forma remota * Realizar una petición de estado * Forzar día * Forzar noche * Quitar el forzado día/noche * Resetear el MF12 * Nueva autoposición (Resetear MFSINCLOC04) * Reset completo del sistema Para ahorrar energía en el sistema, el MFSAT se encargará de activar y desactivar el módulo IRIDIUM en función de un ciclo programado, teniendo en cuenta que el inicio del ciclo coincide con las horas en punto Ejemplo: Suponiendo un ciclo de 10 min ON y 20 min OFF Cada hora se repetirá el siguiente ciclo 00 a 10 => IRIDIUM ON 10 a 30 => IRIDIUM OFF 30 a 40 => IRIDIUM ON 40 a 00 => IRIDIUM OFF Si algún evento o alarma se produce mientras en periódos de OFF, el MFSAT automáticamente encenderá el módulo IRIDIUM para transmitir el mensaje correspondiente. Este ciclo solo se realizará mientras no tengamos nada que transmitir (ya sea un mensaje automático o un ACK). Si hay alguna cosa que transmitir, el módulo IRIDIUM permanecerá activo hasta que la transmisión se realice. Cabe la posibilidad de que en el sistema no exista un MFSINCLOC04. Cuando esto ocurre, el MFSAT obtendrá la hora y la fecha de la red IRIDIUM y la actualizará cada x tmp (Minutos off GPS)