EZR

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

Fork of smartRamalKW by Equipe Firmware V2COM

appCommands.cpp

Committer:
tpadovani
Date:
2015-10-08
Revision:
19:1f623070b9dd
Parent:
18:476f5723d860
Child:
20:da03c9e94ad3

File content as of revision 19:1f623070b9dd:

#include "appCommands.h"

void enviaRespostaGGS(char * dados, int tamanho){
    for(int i=0; i < tamanho; i++){
        ggsStream.putc(dados[i]);
    }
}

void executaComando(unsigned char tamanho, unsigned char sequencia, unsigned char tipo, char * dados){
    switch(tipo){
        case CMD_LER_VERSAO:
            cmdLerVersao();
            break;
        case CMD_LER_NUM_SERIE:
            cmdLerNumeroSerie();
            break;
        case CMD_GRAVAR_NUM_SERIE:
            cmdGravarNumeroSerie(dados, tamanho - TAMANHO_MINIMO_PACOTE);
            exec.carregaEndereco(sn.get());
            break;
        case CMD_RESET:
            cmdReset();
            break;
        case CMD_CORTAR:
            cmdCortar();
            break;
        case CMD_RELIGAR:
            cmdReligar();
            break;
        case CMD_ESTADO_FORNECIMENTO:
            cmdEstadoFornecimento();
            break;
        case CMD_LER_ENERGIA_ATIVA:
            cmdLerEnergiaAtiva();
            break;
        case CMD_LER_ENERGIA_REATIVA_INDUTIVA:
            cmdLerEnergiaReativaIndutiva();
            break;
        case CMD_LER_ENERGIA_REATIVA_CAPACITIVA:
            cmdLerEnergiaReativaCapacitiva();
            break;
        case CMD_BUSCAR_MEDIDOR:
            cmdBuscarMedidor(dados, tamanho - TAMANHO_MINIMO_PACOTE);
            break;
        case CMD_BUSCAR_DENDRION:
            cmdBuscarDendrion();
            break;
        case RESP_BUSCAR_CONCENTRADOR:
            respBuscarConcentrador();
            break;
        case CMD_LER_PARAMETROS:
            cmdLerParametros();
            break;
        case CMD_CONFIGURAR_PARAMETROS:
            cmdConfigurarParametros(dados, tamanho - TAMANHO_MINIMO_PACOTE);
            break;
        case CMD_LER_RELOGIO:
            cmdLerRelogio();
            break;
        case CMD_TENSAO_INSTANTANEA:
            cmdTensaoInstantanea(dados[0]);
            break;
        case CMD_MM_TENSAO:
            cmdMMTensao(dados[0], dados[1]);
            break;
        case CMD_DETECTA_CARGA:
            cmdDetectaCarga();
            break;
        case CMD_LER_CICLOS_CORTE:
            cmdLerCiclosCorte();
            break;
//      case CMD_LER_PARAM_BLUETOOTH:
//            cmdLerParamBluetooth();
//            break;
//      case CMD_GRAVAR_PARAM_BLUETOOTH:
//            cmdGravarParamBluetooth(dados, tamanho - TAMANHO_MINIMO_PACOTE);
//            break;
//      case CMD_EXEC_CMD_BTM:
//            cmdExecCmdBtm(dados, tamanho - TAMANHO_MINIMO_PACOTE);
//            break;
        case CMD_LER_ALARMES:
            cmdLerAlarmes(dados[0]);
            break;
        case CMD_GRAVAR_RELOGIO:
            cmdGravarRelogio(dados, tamanho - TAMANHO_MINIMO_PACOTE);
            break;
    }
}

void atualizaEstadoRele(unsigned char estado){
    APP_PARAMETERS.estadoRele = estado;
    APP_PARAMETERS.contadorCiclos++;
    if(!param.saveParameters()){
        printf("[GGS] Erro gravando estado do rele\r\n");
    }
}

unsigned char lerEstadoRele(){
    return APP_PARAMETERS.estadoRele;
}

void respBuscarConcentrador(){
//    if(!destBroadcast){
//        printf("[GGS] Recebeu ACK do concentrador\r\n");
//        if(((unsigned char *)&medidor)[0] != 0xff){ // Ja detectou algum medidor. Pode parar de enviar anuncios.
//            timeoutAnuncio.detach();
//        }
//    }
}