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
appParameters.h
00001 #ifndef APPPARAMETERS_H 00002 #define APPPARAMETERS_H 00003 00004 #include "mbed.h" 00005 #include "settings.h" 00006 #include "parameters.h" 00007 #include "debug.h" 00008 00009 #define ALARME_LINHA_TENSAO_ZERO 0 00010 #define ALARME_LINHA_TENSAO_MINIMA 1 00011 #define ALARME_LINHA_TENSAO_MAXIMA 2 00012 #define ALARME_CORRENTE_ZERO 3 00013 #define ALARME_CORRENTE_MINIMA 4 00014 #define ALARME_CORRENTE_MAXIMA 5 00015 #define ALARME_CARGA_TENSAO_ZERO 6 00016 #define ALARME_CARGA_TENSAO_MINIMA 7 00017 #define ALARME_CARGA_TENSAO_MAXIMA 8 00018 #define ALARME_CAIXA 9 00019 #define ALARME_RESERVADO1 10 00020 #define ALARME_RESERVADO2 11 00021 #define ALARME_RETORNO_POTENCIAL 12 00022 00023 typedef struct { 00024 unsigned int estadoRele; 00025 unsigned int RELIGAR_LARGURA_PULSO_MS; // Largura do pulso enviado ao rele em milissegundos para religar 00026 unsigned int CORTAR_LARGURA_PULSO_MS; // Largura do pulso enviado ao rele em milissegundos para cortar 00027 unsigned int DELAY_SENSOR_MS; // Tempo esperado apos enviar um pulso para o rele e antes de verificar o estado do sensor de fornecimento (em milissegundos) 00028 unsigned int INTERVALO_SILENCIO_S; // intervalo sem receber bytes na rede para considerar que a linha esta livre pra envio do anuncio 00029 unsigned int INTERVALO_WD_NETWORK_S; // intervalo de watchdog da comunicacao de rede, em segundos. Se nao receber comandos apos este periodo vai resetar 00030 unsigned int LIMITE_TENSAO_SENSOR_V; // Limite de tensao em volts RMS no conversor A/D para considerar que a linha esta energizada 00031 unsigned int SAMPLES; // Numero de amostras para calculo da tensao RMS nos sensores de carga e linha 00032 unsigned int SAMPLES_DELAY_US; // Intervalo entre amostras para calculo da tensao RMS (em microssegundos) 00033 union{ 00034 float floatValue; // Coeficiente angular das amostras de tensao do A/D 00035 char bytes[4]; 00036 } SAMPLES_VOLTAGE_ANG_COEF; 00037 union{ 00038 float floatValue; // Coeficiente linear das amostras de tensao do A/D 00039 char bytes[4]; 00040 } SAMPLES_VOLTAGE_LIN_COEF; 00041 unsigned int LOAD_CHANNEL; // Indica o canal (0 ou 1) onde esta ligada a carga, para que as rotinas de corte e religa verifiquem a alimentacao corretamente 00042 unsigned int INTERVALO_MM_S; // Intervalo de leitura de Memoria de Massa em segundos 00043 unsigned int MM_SIZE; // Numero maximo de registros da memoria de massa 00044 unsigned int contadorCiclos; // Totalizador de numero de operacoes de corte/religa 00045 unsigned int ENABLE_ALARMS; // Bitmask para habilitacao dos alarmes 00046 unsigned int ALARMS_STATES; // Estados dos alarmes 00047 unsigned int ALARMS_QUEUE_SIZE; // Tamanho maximo da fila de alarmes 00048 unsigned int LIMITE_TENSAO_ZERO_CH0_V; 00049 unsigned int LIMITE_TENSAO_MINIMA_LINHA_V; 00050 unsigned int LIMITE_TENSAO_MAXIMA_LINHA_V; 00051 unsigned int LIMITE_TENSAO_ZERO_CH1_V; 00052 unsigned int LIMITE_TENSAO_MINIMA_CARGA_V; 00053 unsigned int LIMITE_TENSAO_MAXIMA_CARGA_V; 00054 unsigned int PROTOCOLO_MEDIDOR; // Protocolo de comunicacao com medidor: 0 = PIMA ELO, 1 = Piminha Copel, tambem chamado de SER-311 00055 unsigned int INTERVALO_WD_METER_S; // intervalo de watchdog da comunicacao com medidor, em segundos. Se nao receber dados apos este periodo vai resetar 00056 unsigned int PIMA_TIMEOUT_PACOTE_S; // Intervalo em segundos para aguardar os 3 pacotes piminha (as 3 energias) logo apos receber o primeiro byte de um pacote. Eh necessario aguardar pois caso contrario, ao interpretar cada pacote que chega separadamente acontece de perder o pacote que vem logo em seguida, entao precisamos juntar todos os pacotes para depois tratar. 00057 unsigned int PIMA_VALIDADE_MEDIDOR_S; // Validade em segundos da informacao de numero do medidor. Se ficar este periodo sem receber pacote do medidor considera medidor invalido (ou seja, medidor fica com valor 0xFFFFFFFFFFFFFF no anuncio). 00058 unsigned int PIMA_VALIDADE_ENERGIA_ATIVA_S; // Validade em segundos da informacao de energia ativa. Apos este periodo sem receber nova informacao de energia ativa, conisidera a informacao inexistente. 00059 unsigned int PIMA_VALIDADE_ENERGIA_REATIVA_INDUTIVA_S; // Validade em segundos da informacao de energia reativa indutiva. Apos este periodo sem receber nova informacao de energia reativa indutiva, conisidera a informacao inexistente. 00060 unsigned int PIMA_VALIDADE_ENERGIA_REATIVA_CAPACITIVA_S; // Validade em segundos da informacao de energia reativa capacitiva. Apos este periodo sem receber nova informacao de energia reativa capacitiva, conisidera a informacao inexistente. 00061 unsigned int PIMA_AUTOBAUD_ENABLE; // Habilita (1) ou desabilita (0) o autobaud, que eh a tentativa de comunicacao com o medidor em varios baudrates (300, 600, 1200, 1800, 2400 e 4800 bps) 00062 unsigned int PIMA_AUTOBAUD_TIMEOUT_S; // Intervalo em segundos para aguardar pacotes do medidor em cada baudrate testado pelo procedimento de autobaud. 00063 unsigned int RADIO_BAUDRATE_BPS; // Baudrate da comunicacao com o radio via UART. 00064 union{ 00065 float floatValue; 00066 char bytes[4]; 00067 } LIMITE_CORRENTE_ZERO_A; 00068 union{ 00069 float floatValue; 00070 char bytes[4]; 00071 } LIMITE_CORRENTE_MINIMA_A; 00072 union{ 00073 float floatValue; 00074 char bytes[4]; 00075 } LIMITE_CORRENTE_MAXIMA_A; 00076 union{ 00077 float floatValue; // Coeficiente angular das amostras de corrente do A/D 00078 char bytes[4]; 00079 } SAMPLES_CURRENT_ANG_COEF; 00080 union{ 00081 float floatValue; // Coeficiente linear das amostras de tensao do A/D 00082 char bytes[4]; 00083 } SAMPLES_CURRENT_LIN_COEF; 00084 unsigned int ENABLE_LOAD_PROFILE; // Habilita gravacao da memoria de massa 00085 unsigned int DISCOVERY_DELAY_ANG_COEF_MS; 00086 unsigned int DISCOVERY_DELAY_LIN_COEF_MS; 00087 unsigned int ANNOUNCE_INTERVAL_S; 00088 unsigned int DUMMY; 00089 00090 } ParametersBlock; 00091 00092 void validateAppParameters(); 00093 bool isAlarmEnabled(int alarm); 00094 bool getAlarmState(int alarm); 00095 void setAlarmState(int alarm, bool state); 00096 00097 extern ParametersBlock APP_PARAMETERS; 00098 extern Parameters param; 00099 00100 #endif
Generated on Thu Jul 14 2022 00:24:57 by
1.7.2
