EZR

Dependencies:   CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04

Fork of smartRamalKW by Equipe Firmware V2COM

Committer:
tpadovani
Date:
Thu Jul 23 22:46:18 2015 +0000
Revision:
10:7a1d1abb5172
Parent:
9:e501499af4ef
Child:
12:0f549dfba86c
Mem?ria de massa de tens?o e comando para ler o rel?gio atual.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tpadovani 0:999112ad27f0 1 #include "main.h"
tpadovani 0:999112ad27f0 2
tpadovani 1:6ac7168763b6 3 static Watchdog wd;
tpadovani 1:6ac7168763b6 4 static Ticker tickerWd;
tpadovani 5:1bc98277c257 5 SerialNumber sn;
tpadovani 10:7a1d1abb5172 6 Parameters param ((char *)&APP_PARAMETERS, sizeof(APP_PARAMETERS));
tpadovani 10:7a1d1abb5172 7 CommandExecutor exec;
tpadovani 10:7a1d1abb5172 8 MemoriaMassa mm;
tpadovani 0:999112ad27f0 9
tpadovani 0:999112ad27f0 10 int main()
tpadovani 0:999112ad27f0 11 {
tpadovani 1:6ac7168763b6 12 iniciaWd();
tpadovani 0:999112ad27f0 13
tpadovani 0:999112ad27f0 14 printf("##### %s #####\r\n", version);
tpadovani 3:21598044a47f 15 printSerialNumber();
tpadovani 1:6ac7168763b6 16
tpadovani 3:21598044a47f 17 param.loadParameters();
tpadovani 9:e501499af4ef 18 printParameters();
tpadovani 10:7a1d1abb5172 19
tpadovani 10:7a1d1abb5172 20 mm.iniciaLeituras(APP_PARAMETERS.INTERVALO_MM_S, APP_PARAMETERS.MM_SIZE);
tpadovani 10:7a1d1abb5172 21
tpadovani 3:21598044a47f 22 ggsStream.baud(19200);
tpadovani 3:21598044a47f 23 exec.carregaEndereco(sn.get());
tpadovani 10:7a1d1abb5172 24 exec.iniciaExecutorComandos(APP_PARAMETERS.INTERVALO_WD_NETWORK_S, APP_PARAMETERS.INTERVALO_SILENCIO_S);
tpadovani 9:e501499af4ef 25 detectaCargaSemCorte();
tpadovani 10:7a1d1abb5172 26
tpadovani 3:21598044a47f 27 while(1){
tpadovani 3:21598044a47f 28 exec.trataPacoteGGS();
tpadovani 10:7a1d1abb5172 29 mm.executaLeitura();
tpadovani 3:21598044a47f 30 }
tpadovani 0:999112ad27f0 31
tpadovani 0:999112ad27f0 32 }
tpadovani 0:999112ad27f0 33
tpadovani 1:6ac7168763b6 34 void iniciaWd(){
tpadovani 1:6ac7168763b6 35 wd.Configure();
tpadovani 1:6ac7168763b6 36 tickerWd.attach(&feedWd, WATCHDOG_INTERVAL);
tpadovani 1:6ac7168763b6 37 }
tpadovani 1:6ac7168763b6 38
tpadovani 1:6ac7168763b6 39 void feedWd(){
tpadovani 1:6ac7168763b6 40 wd.Service();
tpadovani 1:6ac7168763b6 41 }
tpadovani 1:6ac7168763b6 42
tpadovani 3:21598044a47f 43 void softReset(){
tpadovani 3:21598044a47f 44 printf("SoftReset\r\n");
tpadovani 3:21598044a47f 45 tickerWd.detach();
tpadovani 3:21598044a47f 46 }
tpadovani 3:21598044a47f 47
tpadovani 3:21598044a47f 48 void printSerialNumber(){
tpadovani 3:21598044a47f 49 printf("SN: ");
tpadovani 3:21598044a47f 50 for(int i=0; i < SERIAL_LENGTH; i++){
tpadovani 3:21598044a47f 51 printf("%c", sn.get()[i]);
tpadovani 3:21598044a47f 52 }
tpadovani 3:21598044a47f 53 printf("\r\n");
tpadovani 3:21598044a47f 54 }
tpadovani 9:e501499af4ef 55
tpadovani 9:e501499af4ef 56 void printParameters(){
tpadovani 9:e501499af4ef 57 printf("Parameters:");
tpadovani 9:e501499af4ef 58 for(int i=0; i < sizeof(APP_PARAMETERS); i++){
tpadovani 10:7a1d1abb5172 59 printf(" %02x", ((char *)&APP_PARAMETERS)[i]);
tpadovani 9:e501499af4ef 60 }
tpadovani 9:e501499af4ef 61 printf("\r\n");
tpadovani 9:e501499af4ef 62 }
tpadovani 9:e501499af4ef 63
tpadovani 9:e501499af4ef 64 void detectaCargaSemCorte(){
tpadovani 9:e501499af4ef 65 bool ch0Status = getEstadoSensor(0);
tpadovani 9:e501499af4ef 66 bool ch1Status = getEstadoSensor(1);
tpadovani 9:e501499af4ef 67
tpadovani 9:e501499af4ef 68 if(!ch0Status && ch1Status){ // Canal 0 nao esta alimentado e Canal 1 esta: entao a carga certamente e o canal 0
tpadovani 9:e501499af4ef 69 if(APP_PARAMETERS.LOAD_CHANNEL != 0){
tpadovani 9:e501499af4ef 70 APP_PARAMETERS.LOAD_CHANNEL = 0;
tpadovani 9:e501499af4ef 71 param.saveParameters();
tpadovani 9:e501499af4ef 72 }
tpadovani 9:e501499af4ef 73 } else if(ch0Status && !ch1Status){ // Canal 1 nao esta alimentado e Canal 0 esta: entao a carga certamente e o canal 1
tpadovani 9:e501499af4ef 74 if(APP_PARAMETERS.LOAD_CHANNEL != 1){
tpadovani 9:e501499af4ef 75 APP_PARAMETERS.LOAD_CHANNEL = 1;
tpadovani 9:e501499af4ef 76 param.saveParameters();
tpadovani 9:e501499af4ef 77 }
tpadovani 9:e501499af4ef 78 }
tpadovani 9:e501499af4ef 79 }