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:
fprado
Date:
2016-06-16
Revision:
35:78614a27b9e6
Parent:
26:03c9ca836c79
Child:
29:fec8fdf25d87

File content as of revision 35:78614a27b9e6:

#include "appCommands.h"

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

void executaComando(bool broadcast, unsigned char tamanho, unsigned char sequencia, unsigned char tipo, char * dados){
    ledNetwork = LED_ON;
    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;
#ifndef RAMAL       // só ativa comandos de medidor se o equipamento é um smart breaker
        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;
#endif            
        case CMD_BUSCAR_DENDRION:
            cmdBuscarDendrion(broadcast);
            break;
        case RESP_BUSCAR_CONCENTRADOR:
            respBuscarConcentrador(broadcast, dados, tamanho - TAMANHO_MINIMO_PACOTE);
            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_GRANDEZA_INSTANTANEA:
            cmdGrandezaInstantanea(dados[0]);
            break;
        case CMD_MEMORIA_MASSA:
            cmdMemoriaMassa(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;
        case CMD_TEMPERATURA:
            cmdLerTemperatura();
            break;
    }
}

void atualizaEstadoRele(unsigned char estado){
    APP_PARAMETERS.estadoRele = estado;
    APP_PARAMETERS.contadorCiclos++;
    if(!param.saveParameters()){
        DEBUG(printf("[GGS] Error writing relay state\r\n"));
    }
}

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