Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04
Fork of smartRamalKW by
religar.cpp
00001 #include "appCommands.h" 00002 #include "sensor.h" 00003 #include "alarm.h" 00004 00005 #define RELIGAR_SUCESSO 0 00006 #define RELIGAR_NAO_CONFIRMADO 1 00007 #define RELIGAR_POSSIVEL_RETORNO_POTENCIAL 2 00008 #define RELIGAR_RETORNO_POTENCIAL 3 00009 #define RELIGAR_JA_LIGADO 4 00010 #define RELIGAR_ESTADO_RELE_INCONSISTENTE 5 00011 #define RELIGAR_NAO_CONFIRMADO_JA_FECHADO 6 00012 #define RELIGAR_ESTADO_ILEGAL 7 00013 00014 extern DigitalOut set_relay; 00015 extern Alarm alarm; 00016 00017 void enviaPulso(){ 00018 set_relay = RELE_ON; 00019 wait_ms(APP_PARAMETERS.RELIGAR_LARGURA_PULSO_MS); 00020 set_relay = RELE_OFF; 00021 atualizaEstadoRele(ESTADO_RELE_FECHADO); 00022 wait_ms(APP_PARAMETERS.DELAY_SENSOR_MS); 00023 } 00024 00025 void cmdReligar(){ 00026 #ifdef TEST_MODE 00027 enviaPulso(); 00028 if(getSensorState(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00029 exec.enviaResposta(RESP_RELIGAR, RELIGAR_SUCESSO); 00030 } else{ 00031 exec.enviaResposta(RESP_RELIGAR, RELIGAR_NAO_CONFIRMADO); 00032 } 00033 #else 00034 unsigned char rele = lerEstadoRele(); 00035 char resp = RELIGAR_ESTADO_ILEGAL; 00036 switch(rele){ 00037 case ESTADO_RELE_INDEFINIDO: 00038 if(checkVoltageReturn(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00039 resp = RELIGAR_POSSIVEL_RETORNO_POTENCIAL; 00040 } else{ 00041 enviaPulso(); 00042 if(getSensorState(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00043 resp = RELIGAR_SUCESSO; 00044 } else{ 00045 resp = RELIGAR_NAO_CONFIRMADO; 00046 } 00047 } 00048 break; 00049 00050 case ESTADO_RELE_ABERTO: 00051 if(checkVoltageReturn(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00052 resp = RELIGAR_RETORNO_POTENCIAL; 00053 alarm.writeAlarm(ALARME_RETORNO_POTENCIAL, true, false); 00054 } else{ 00055 enviaPulso(); 00056 if(getSensorState(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00057 resp = RELIGAR_SUCESSO; 00058 } else{ 00059 resp = RELIGAR_NAO_CONFIRMADO; 00060 } 00061 } 00062 break; 00063 00064 case ESTADO_RELE_FECHADO: 00065 if(getSensorState(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00066 resp = RELIGAR_JA_LIGADO; 00067 } else{ 00068 enviaPulso(); 00069 if(getSensorState(APP_PARAMETERS.LOAD_CHANNEL) == SENSOR_COM_FORNECIMENTO){ 00070 resp = RELIGAR_ESTADO_RELE_INCONSISTENTE; 00071 } else{ 00072 resp = RELIGAR_NAO_CONFIRMADO_JA_FECHADO; 00073 } 00074 } 00075 break; 00076 } 00077 exec.enviaResposta(RESP_RELIGAR, resp); 00078 #endif 00079 }
Generated on Thu Jul 14 2022 00:24:57 by
 1.7.2
 1.7.2 
    