EZR
Dependencies: CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04
Fork of smartRamalKW by
appCommands.cpp@19:1f623070b9dd, 2015-10-08 (annotated)
- Committer:
- tpadovani
- Date:
- Thu Oct 08 22:50:07 2015 +0000
- Revision:
- 19:1f623070b9dd
- Parent:
- 18:476f5723d860
- Child:
- 20:da03c9e94ad3
Vers?o com comandos de leitura de PIMA ELO e Piminha, alarme de caixa e LEDs (ainda falta implementar LED de REDE e CARGA).
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tpadovani | 4:2d0c2643c641 | 1 | #include "appCommands.h" |
tpadovani | 4:2d0c2643c641 | 2 | |
tpadovani | 10:7a1d1abb5172 | 3 | void enviaRespostaGGS(char * dados, int tamanho){ |
tpadovani | 4:2d0c2643c641 | 4 | for(int i=0; i < tamanho; i++){ |
tpadovani | 4:2d0c2643c641 | 5 | ggsStream.putc(dados[i]); |
tpadovani | 4:2d0c2643c641 | 6 | } |
tpadovani | 4:2d0c2643c641 | 7 | } |
tpadovani | 4:2d0c2643c641 | 8 | |
tpadovani | 10:7a1d1abb5172 | 9 | void executaComando(unsigned char tamanho, unsigned char sequencia, unsigned char tipo, char * dados){ |
tpadovani | 4:2d0c2643c641 | 10 | switch(tipo){ |
tpadovani | 4:2d0c2643c641 | 11 | case CMD_LER_VERSAO: |
tpadovani | 4:2d0c2643c641 | 12 | cmdLerVersao(); |
tpadovani | 4:2d0c2643c641 | 13 | break; |
tpadovani | 5:1bc98277c257 | 14 | case CMD_LER_NUM_SERIE: |
tpadovani | 4:2d0c2643c641 | 15 | cmdLerNumeroSerie(); |
tpadovani | 4:2d0c2643c641 | 16 | break; |
tpadovani | 4:2d0c2643c641 | 17 | case CMD_GRAVAR_NUM_SERIE: |
tpadovani | 5:1bc98277c257 | 18 | cmdGravarNumeroSerie(dados, tamanho - TAMANHO_MINIMO_PACOTE); |
tpadovani | 5:1bc98277c257 | 19 | exec.carregaEndereco(sn.get()); |
tpadovani | 4:2d0c2643c641 | 20 | break; |
tpadovani | 4:2d0c2643c641 | 21 | case CMD_RESET: |
tpadovani | 4:2d0c2643c641 | 22 | cmdReset(); |
tpadovani | 4:2d0c2643c641 | 23 | break; |
tpadovani | 4:2d0c2643c641 | 24 | case CMD_CORTAR: |
tpadovani | 4:2d0c2643c641 | 25 | cmdCortar(); |
tpadovani | 4:2d0c2643c641 | 26 | break; |
tpadovani | 4:2d0c2643c641 | 27 | case CMD_RELIGAR: |
tpadovani | 4:2d0c2643c641 | 28 | cmdReligar(); |
tpadovani | 4:2d0c2643c641 | 29 | break; |
tpadovani | 4:2d0c2643c641 | 30 | case CMD_ESTADO_FORNECIMENTO: |
tpadovani | 4:2d0c2643c641 | 31 | cmdEstadoFornecimento(); |
tpadovani | 4:2d0c2643c641 | 32 | break; |
tpadovani | 19:1f623070b9dd | 33 | case CMD_LER_ENERGIA_ATIVA: |
tpadovani | 19:1f623070b9dd | 34 | cmdLerEnergiaAtiva(); |
tpadovani | 19:1f623070b9dd | 35 | break; |
tpadovani | 19:1f623070b9dd | 36 | case CMD_LER_ENERGIA_REATIVA_INDUTIVA: |
tpadovani | 19:1f623070b9dd | 37 | cmdLerEnergiaReativaIndutiva(); |
tpadovani | 19:1f623070b9dd | 38 | break; |
tpadovani | 19:1f623070b9dd | 39 | case CMD_LER_ENERGIA_REATIVA_CAPACITIVA: |
tpadovani | 19:1f623070b9dd | 40 | cmdLerEnergiaReativaCapacitiva(); |
tpadovani | 19:1f623070b9dd | 41 | break; |
tpadovani | 19:1f623070b9dd | 42 | case CMD_BUSCAR_MEDIDOR: |
tpadovani | 19:1f623070b9dd | 43 | cmdBuscarMedidor(dados, tamanho - TAMANHO_MINIMO_PACOTE); |
tpadovani | 19:1f623070b9dd | 44 | break; |
tpadovani | 19:1f623070b9dd | 45 | case CMD_BUSCAR_DENDRION: |
tpadovani | 19:1f623070b9dd | 46 | cmdBuscarDendrion(); |
tpadovani | 19:1f623070b9dd | 47 | break; |
tpadovani | 19:1f623070b9dd | 48 | case RESP_BUSCAR_CONCENTRADOR: |
tpadovani | 19:1f623070b9dd | 49 | respBuscarConcentrador(); |
tpadovani | 19:1f623070b9dd | 50 | break; |
tpadovani | 4:2d0c2643c641 | 51 | case CMD_LER_PARAMETROS: |
tpadovani | 4:2d0c2643c641 | 52 | cmdLerParametros(); |
tpadovani | 4:2d0c2643c641 | 53 | break; |
tpadovani | 4:2d0c2643c641 | 54 | case CMD_CONFIGURAR_PARAMETROS: |
tpadovani | 5:1bc98277c257 | 55 | cmdConfigurarParametros(dados, tamanho - TAMANHO_MINIMO_PACOTE); |
tpadovani | 5:1bc98277c257 | 56 | break; |
tpadovani | 10:7a1d1abb5172 | 57 | case CMD_LER_RELOGIO: |
tpadovani | 10:7a1d1abb5172 | 58 | cmdLerRelogio(); |
tpadovani | 10:7a1d1abb5172 | 59 | break; |
tpadovani | 8:e8d86c66283c | 60 | case CMD_TENSAO_INSTANTANEA: |
tpadovani | 8:e8d86c66283c | 61 | cmdTensaoInstantanea(dados[0]); |
tpadovani | 8:e8d86c66283c | 62 | break; |
tpadovani | 10:7a1d1abb5172 | 63 | case CMD_MM_TENSAO: |
tpadovani | 11:8c93e0de58cd | 64 | cmdMMTensao(dados[0], dados[1]); |
tpadovani | 10:7a1d1abb5172 | 65 | break; |
tpadovani | 9:e501499af4ef | 66 | case CMD_DETECTA_CARGA: |
tpadovani | 9:e501499af4ef | 67 | cmdDetectaCarga(); |
tpadovani | 9:e501499af4ef | 68 | break; |
tpadovani | 11:8c93e0de58cd | 69 | case CMD_LER_CICLOS_CORTE: |
tpadovani | 11:8c93e0de58cd | 70 | cmdLerCiclosCorte(); |
tpadovani | 11:8c93e0de58cd | 71 | break; |
leomrlima | 18:476f5723d860 | 72 | // case CMD_LER_PARAM_BLUETOOTH: |
leomrlima | 18:476f5723d860 | 73 | // cmdLerParamBluetooth(); |
leomrlima | 18:476f5723d860 | 74 | // break; |
leomrlima | 18:476f5723d860 | 75 | // case CMD_GRAVAR_PARAM_BLUETOOTH: |
leomrlima | 18:476f5723d860 | 76 | // cmdGravarParamBluetooth(dados, tamanho - TAMANHO_MINIMO_PACOTE); |
leomrlima | 18:476f5723d860 | 77 | // break; |
leomrlima | 18:476f5723d860 | 78 | // case CMD_EXEC_CMD_BTM: |
leomrlima | 18:476f5723d860 | 79 | // cmdExecCmdBtm(dados, tamanho - TAMANHO_MINIMO_PACOTE); |
leomrlima | 18:476f5723d860 | 80 | // break; |
tpadovani | 13:eed9484a89bc | 81 | case CMD_LER_ALARMES: |
tpadovani | 14:4963dc299580 | 82 | cmdLerAlarmes(dados[0]); |
tpadovani | 13:eed9484a89bc | 83 | break; |
leomrlima | 18:476f5723d860 | 84 | case CMD_GRAVAR_RELOGIO: |
leomrlima | 18:476f5723d860 | 85 | cmdGravarRelogio(dados, tamanho - TAMANHO_MINIMO_PACOTE); |
leomrlima | 18:476f5723d860 | 86 | break; |
tpadovani | 4:2d0c2643c641 | 87 | } |
tpadovani | 4:2d0c2643c641 | 88 | } |
tpadovani | 5:1bc98277c257 | 89 | |
tpadovani | 5:1bc98277c257 | 90 | void atualizaEstadoRele(unsigned char estado){ |
tpadovani | 5:1bc98277c257 | 91 | APP_PARAMETERS.estadoRele = estado; |
tpadovani | 11:8c93e0de58cd | 92 | APP_PARAMETERS.contadorCiclos++; |
tpadovani | 5:1bc98277c257 | 93 | if(!param.saveParameters()){ |
tpadovani | 5:1bc98277c257 | 94 | printf("[GGS] Erro gravando estado do rele\r\n"); |
tpadovani | 5:1bc98277c257 | 95 | } |
tpadovani | 5:1bc98277c257 | 96 | } |
tpadovani | 5:1bc98277c257 | 97 | |
tpadovani | 5:1bc98277c257 | 98 | unsigned char lerEstadoRele(){ |
tpadovani | 5:1bc98277c257 | 99 | return APP_PARAMETERS.estadoRele; |
tpadovani | 5:1bc98277c257 | 100 | } |
tpadovani | 19:1f623070b9dd | 101 | |
tpadovani | 19:1f623070b9dd | 102 | void respBuscarConcentrador(){ |
tpadovani | 19:1f623070b9dd | 103 | // if(!destBroadcast){ |
tpadovani | 19:1f623070b9dd | 104 | // printf("[GGS] Recebeu ACK do concentrador\r\n"); |
tpadovani | 19:1f623070b9dd | 105 | // if(((unsigned char *)&medidor)[0] != 0xff){ // Ja detectou algum medidor. Pode parar de enviar anuncios. |
tpadovani | 19:1f623070b9dd | 106 | // timeoutAnuncio.detach(); |
tpadovani | 19:1f623070b9dd | 107 | // } |
tpadovani | 19:1f623070b9dd | 108 | // } |
tpadovani | 19:1f623070b9dd | 109 | } |