EZR
Dependencies: CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04
Fork of smartRamalKW by
Diff: main.cpp
- 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++){