EZR

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

Fork of smartRamalKW by Equipe Firmware V2COM

Files at this revision

API Documentation at this revision

Comitter:
fprado
Date:
Thu Dec 03 19:41:41 2015 +0000
Parent:
25:2c578b923ea9
Child:
27:dd1abde3f620
Commit message:
Adicionado suporte ? placa de RAMAL

Changed in this revision

announce.cpp Show annotated file Show diff for this revision Revisions of this file
announce.h Show annotated file Show diff for this revision Revisions of this file
appCommands.cpp Show annotated file Show diff for this revision Revisions of this file
cmd/buscarDendrion.cpp Show annotated file Show diff for this revision Revisions of this file
cmd/buscarMedidor.cpp Show annotated file Show diff for this revision Revisions of this file
cmd/grandezaInstantanea.cpp Show annotated file Show diff for this revision Revisions of this file
cmd/lerEnergiaAtiva.cpp Show annotated file Show diff for this revision Revisions of this file
cmd/lerEnergiaReativaCapacitiva.cpp Show annotated file Show diff for this revision Revisions of this file
cmd/lerEnergiaReativaIndutiva.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
settings.h Show annotated file Show diff for this revision Revisions of this file
--- a/announce.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/announce.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -60,7 +60,11 @@
     }
     
     announceBuffer[19] = (++announceBuffer[19])%256;
+#ifdef RAMAL    
+    memcpy(announceBuffer+21, MEDIDOR_DEFAULT_SN, MEDIDOR_LENGTH);
+#else
     memcpy(announceBuffer+21, pima.getMeterNumber(), MEDIDOR_LENGTH);
+#endif    
     unsigned short int crc = getCRC(announceBuffer, 2, announceBuffer[2] + 1);
     announceBuffer[28] = crc%256; // CRC1
     announceBuffer[29] = crc/256; // CRC2
--- a/announce.h	Wed Nov 04 21:47:24 2015 +0000
+++ b/announce.h	Thu Dec 03 19:41:41 2015 +0000
@@ -29,7 +29,9 @@
 
 extern SerialNumber sn;
 extern CommandExecutor exec;
+#ifndef RAMAL
 extern Pima pima;
+#endif
 extern void enviaRespostaGGS(char * dados, int tamanho);
 
 #endif
--- a/appCommands.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/appCommands.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -31,6 +31,7 @@
         case CMD_ESTADO_FORNECIMENTO:
             cmdEstadoFornecimento();
             break;
+#ifndef RAMAL       // só ativa comandos de medidor se o equipamento é um smart breaker
         case CMD_LER_ENERGIA_ATIVA:
             cmdLerEnergiaAtiva();
             break;
@@ -43,6 +44,7 @@
         case CMD_BUSCAR_MEDIDOR:
             cmdBuscarMedidor(dados, tamanho - TAMANHO_MINIMO_PACOTE);
             break;
+#endif            
         case CMD_BUSCAR_DENDRION:
             cmdBuscarDendrion(broadcast);
             break;
--- a/cmd/buscarDendrion.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/cmd/buscarDendrion.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -1,6 +1,10 @@
 #include "appCommands.h"
 
+
+#ifndef RAMAL
 extern Pima pima;
+#endif
+
 extern SerialNumber sn;
 extern Announce announce;
 
@@ -8,6 +12,10 @@
     if(broadcast){
         announce.startAnnounceTimer();
     } else{
+#ifdef RAMAL
+        exec.enviaResposta(RESP_BUSCAR_DENDRION, (char *)MEDIDOR_DEFAULT_SN, MEDIDOR_LENGTH);
+#else
         exec.enviaResposta(RESP_BUSCAR_DENDRION, (char *)pima.getMeterNumber(), MEDIDOR_LENGTH);
+#endif        
     }
 }
--- a/cmd/buscarMedidor.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/cmd/buscarMedidor.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -1,5 +1,7 @@
 #include "appCommands.h"
 
+#ifndef RAMAL
+
 extern Pima pima;
 
 void cmdBuscarMedidor(char * dados, unsigned char tamanhoDados){
@@ -11,3 +13,5 @@
     }
     return;
 }
+
+#endif  // ndef(RAMAL)
\ No newline at end of file
--- a/cmd/grandezaInstantanea.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/cmd/grandezaInstantanea.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -9,10 +9,12 @@
     
     switch(channel){
         case 0: // Tensao de Carga
+        {
             int lineChannel = APP_PARAMETERS.LOAD_CHANNEL == 0 ? 1 : 0;
             float line = getInstVoltage(lineChannel);
             resp.measure = line - getInstVoltage(APP_PARAMETERS.LOAD_CHANNEL);
             break;
+        }
         case 1: // Tensao de Linha
             resp.measure = getInstVoltage(APP_PARAMETERS.LOAD_CHANNEL == 0 ? 1 : 0);
             break;
--- a/cmd/lerEnergiaAtiva.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/cmd/lerEnergiaAtiva.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -1,5 +1,7 @@
 #include "appCommands.h"
 
+#ifndef RAMAL
+
 extern Pima pima;
 
 #define SUCESSO                     0x00
@@ -24,3 +26,5 @@
     }
     exec.enviaResposta(RESP_LER_ENERGIA_ATIVA, resp, 15);
 }
+
+#endif  // ndef(RAMAL)
\ No newline at end of file
--- a/cmd/lerEnergiaReativaCapacitiva.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/cmd/lerEnergiaReativaCapacitiva.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -1,5 +1,7 @@
 #include "appCommands.h"
 
+#ifndef RAMAL
+
 extern Pima pima;
 
 #define SUCESSO                     0x00
@@ -24,3 +26,5 @@
     }
     exec.enviaResposta(RESP_LER_ENERGIA_REATIVA_CAPACITIVA, resp, 15);
 }
+
+#endif  // ndef(RAMAL)
\ No newline at end of file
--- a/cmd/lerEnergiaReativaIndutiva.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/cmd/lerEnergiaReativaIndutiva.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -1,5 +1,7 @@
 #include "appCommands.h"
 
+#ifndef RAMAL
+
 extern Pima pima;
 
 #define SUCESSO                     0x00
@@ -24,3 +26,5 @@
     }
     exec.enviaResposta(RESP_LER_ENERGIA_REATIVA_INDUTIVA, resp, 15);
 }
+
+#endif  // ndef(RAMAL)
\ No newline at end of file
--- a/main.cpp	Wed Nov 04 21:47:24 2015 +0000
+++ b/main.cpp	Thu Dec 03 19:41:41 2015 +0000
@@ -7,8 +7,10 @@
 CommandExecutor exec;
 MemoriaMassa mm;
 Alarm alarm;
+#ifndef RAMAL        // objetos só existem se o equipamento é um smart breaker
 BoxAlarm boxAlarm;
 Pima pima;
+#endif
 Announce announce;
 
 int main()
@@ -24,16 +26,20 @@
     
     isopowerDisable = 0;    // Habilita regulador (PIMA + Alarme Caixa)
     
+#ifndef RAMAL
     boxAlarm.init();
+#endif    
     alarm.loadQueue(APP_PARAMETERS.ALARMS_QUEUE_SIZE, 3);
     mm.iniciaLeituras(APP_PARAMETERS.INTERVALO_MM_S, APP_PARAMETERS.MM_SIZE, 4, 5, 6);
     
+#ifndef RAMAL
     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);
     }
+#endif    
     
     ggsStream.baud(APP_PARAMETERS.RADIO_BAUDRATE_BPS);
     exec.carregaEndereco(sn.get());
@@ -43,12 +49,16 @@
     
     while(1){
         exec.trataPacoteGGS();
+#ifndef RAMAL
         pima.trataPacotePiminha();
         if(pima.hasMeterChanged()){
             announce.startAnnounceTimer();
         }
+#endif        
         mm.executaLeitura();
+#ifndef RAMAL
         boxAlarm.checkState();
+#endif        
         announce.handleAnnounceSending();
     }
     
--- a/settings.h	Wed Nov 04 21:47:24 2015 +0000
+++ b/settings.h	Thu Dec 03 19:41:41 2015 +0000
@@ -1,8 +1,11 @@
 #ifndef SETTINGS_H
 #define SETTINGS_H
 
-//#define TEST_MODE 1    // Usado para testar na placa de desenvolvimento
-//#define DEBUG_ENABLED 1 // Habilita log na USB UART
+//#define TEST_MODE 1       // Usado para testar na placa de desenvolvimento
+//#define DEBUG_ENABLED 1   // Habilita log na USB UART
+//#define RAMAL 1           // configura a aplicação para modo ramal (o normal é smart breaker)
+
+#define MEDIDOR_DEFAULT_SN "\0\0\0\0\0\0\0"        // para uso com equipamentos sem medidor
 
 #define LED_ON 1
 #define LED_OFF 0