EZR

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

Fork of smartRamalKW by Equipe Firmware V2COM

Revision:
19:1f623070b9dd
Parent:
13:eed9484a89bc
Child:
21:62316df0c24b
--- a/main.cpp	Fri Oct 02 20:07:02 2015 +0000
+++ b/main.cpp	Thu Oct 08 22:50:07 2015 +0000
@@ -7,10 +7,13 @@
 CommandExecutor exec;
 MemoriaMassa mm;
 Alarm alarm;
+BoxAlarm boxAlarm;
+Pima pima;
 
 int main()
 {
     iniciaWd();
+    blinkLeds();
     
     printf("##### %s #####\r\n", version);
     printSerialNumber();
@@ -18,17 +21,27 @@
     param.loadParameters();
     printParameters();
     
+    boxAlarm.init();
     alarm.loadQueue(APP_PARAMETERS.ALARMS_QUEUE_SIZE, 3);
     mm.iniciaLeituras(APP_PARAMETERS.INTERVALO_MM_S, APP_PARAMETERS.MM_SIZE, 4, 5);
     
-    ggsStream.baud(19200);
+    pima.setExpirationTimeout(APP_PARAMETERS.PIMA_VALIDADE_MEDIDOR_S, APP_PARAMETERS.PIMA_VALIDADE_ENERGIA_ATIVA_S, APP_PARAMETERS.PIMA_VALIDADE_ENERGIA_REATIVA_INDUTIVA_S, APP_PARAMETERS.PIMA_VALIDADE_ENERGIA_REATIVA_CAPACITIVA_S);
+    if(APP_PARAMETERS.PROTOCOLO_MEDIDOR == PROTOCOLO_PIMINHA){
+        pima.iniciaLeituraPiminha(APP_PARAMETERS.PIMA_AUTOBAUD_ENABLE, APP_PARAMETERS.PIMA_AUTOBAUD_TIMEOUT_S, APP_PARAMETERS.INTERVALO_WD_METER_S, APP_PARAMETERS.PIMA_TIMEOUT_PACOTE_S);
+    } else{
+        pima.iniciaLeituraPima(APP_PARAMETERS.PIMA_AUTOBAUD_ENABLE, APP_PARAMETERS.PIMA_AUTOBAUD_TIMEOUT_S, APP_PARAMETERS.INTERVALO_WD_METER_S);
+    }
+    
+    ggsStream.baud(APP_PARAMETERS.RADIO_BAUDRATE_BPS);
     exec.carregaEndereco(sn.get());
     exec.iniciaExecutorComandos(APP_PARAMETERS.INTERVALO_WD_NETWORK_S, APP_PARAMETERS.INTERVALO_SILENCIO_S);
     detectaCargaSemCorte();
     
     while(1){
         exec.trataPacoteGGS();
+        pima.trataPacotePiminha();
         mm.executaLeitura();
+        boxAlarm.checkState();
     }
     
 }
@@ -47,6 +60,31 @@
     tickerWd.detach();
 }
 
+void blinkLeds(){
+    ledON = LED_ON;
+    ledNetwork = LED_OFF;
+    ledMeter = LED_OFF;
+    ledBox = LED_OFF;
+    ledLoad = LED_OFF;
+    
+    wait_ms(200);
+    ledNetwork = LED_ON;
+    wait_ms(200);
+    ledNetwork = LED_OFF;
+    wait_ms(200);
+    ledMeter = LED_ON;
+    wait_ms(200);
+    ledMeter = LED_OFF;
+    wait_ms(200);
+    ledBox = LED_ON;
+    wait_ms(200);
+    ledBox = LED_OFF;
+    wait_ms(200);
+    ledLoad = LED_ON;
+    wait_ms(200);
+    ledLoad = LED_OFF;
+}
+
 void printSerialNumber(){
     printf("[main] SN: ");
     for(int i=0; i < SERIAL_LENGTH; i++){