EZR

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

Fork of smartRamalKW by Equipe Firmware V2COM

Committer:
tpadovani
Date:
Mon Oct 19 20:34:15 2015 +0000
Revision:
22:b66e36356dd4
Parent:
19:1f623070b9dd
Child:
25:2c578b923ea9
debug condicional

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tpadovani 0:999112ad27f0 1 #ifndef APPPARAMETERS_H
tpadovani 0:999112ad27f0 2 #define APPPARAMETERS_H
tpadovani 0:999112ad27f0 3
tpadovani 4:2d0c2643c641 4 #include "mbed.h"
tpadovani 5:1bc98277c257 5 #include "settings.h"
tpadovani 13:eed9484a89bc 6 #include "parameters.h"
tpadovani 22:b66e36356dd4 7 #include "debug.h"
tpadovani 13:eed9484a89bc 8
tpadovani 13:eed9484a89bc 9 #define ALARME_LINHA_TENSAO_ZERO 0
tpadovani 13:eed9484a89bc 10 #define ALARME_LINHA_TENSAO_MINIMA 1
tpadovani 13:eed9484a89bc 11 #define ALARME_LINHA_TENSAO_MAXIMA 2
tpadovani 22:b66e36356dd4 12 #define ALARME_CORRENTE_ZERO 3
tpadovani 22:b66e36356dd4 13 #define ALARME_CORRENTE_MINIMA 4
tpadovani 22:b66e36356dd4 14 #define ALARME_CORRENTE_MAXIMA 5
tpadovani 13:eed9484a89bc 15 #define ALARME_CARGA_TENSAO_ZERO 6
tpadovani 13:eed9484a89bc 16 #define ALARME_CARGA_TENSAO_MINIMA 7
tpadovani 13:eed9484a89bc 17 #define ALARME_CARGA_TENSAO_MAXIMA 8
tpadovani 22:b66e36356dd4 18 #define ALARME_CAIXA 9
tpadovani 22:b66e36356dd4 19 #define ALARME_RESERVADO1 10
tpadovani 22:b66e36356dd4 20 #define ALARME_RESERVADO2 11
tpadovani 13:eed9484a89bc 21 #define ALARME_RETORNO_POTENCIAL 12
tpadovani 4:2d0c2643c641 22
tpadovani 0:999112ad27f0 23 typedef struct {
tpadovani 9:e501499af4ef 24 unsigned int estadoRele;
tpadovani 9:e501499af4ef 25 unsigned int RELIGAR_LARGURA_PULSO_MS; // Largura do pulso enviado ao rele em milissegundos para religar
tpadovani 9:e501499af4ef 26 unsigned int CORTAR_LARGURA_PULSO_MS; // Largura do pulso enviado ao rele em milissegundos para cortar
tpadovani 9:e501499af4ef 27 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)
tpadovani 9:e501499af4ef 28 unsigned int INTERVALO_SILENCIO_S; // intervalo sem receber bytes na rede para considerar que a linha esta livre pra envio do anuncio
tpadovani 9:e501499af4ef 29 unsigned int INTERVALO_WD_NETWORK_S; // intervalo de watchdog da comunicacao de rede, em segundos. Se nao receber comandos apos este periodo vai resetar
tpadovani 9:e501499af4ef 30 unsigned int LIMITE_TENSAO_SENSOR_V; // Limite de tensao em volts RMS no conversor A/D para considerar que a linha esta energizada
tpadovani 9:e501499af4ef 31 unsigned int SAMPLES; // Numero de amostras para calculo da tensao RMS nos sensores de carga e linha
tpadovani 9:e501499af4ef 32 unsigned int SAMPLES_DELAY_US; // Intervalo entre amostras para calculo da tensao RMS (em microssegundos)
tpadovani 9:e501499af4ef 33 union{
tpadovani 9:e501499af4ef 34 float floatValue; // Coeficiente angular das amostras de tensao do A/D
tpadovani 10:7a1d1abb5172 35 char bytes[4];
tpadovani 22:b66e36356dd4 36 } SAMPLES_VOLTAGE_ANG_COEF;
tpadovani 9:e501499af4ef 37 union{
tpadovani 9:e501499af4ef 38 float floatValue; // Coeficiente linear das amostras de tensao do A/D
tpadovani 10:7a1d1abb5172 39 char bytes[4];
tpadovani 22:b66e36356dd4 40 } SAMPLES_VOLTAGE_LIN_COEF;
tpadovani 11:8c93e0de58cd 41 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
tpadovani 10:7a1d1abb5172 42 unsigned int INTERVALO_MM_S; // Intervalo de leitura de Memoria de Massa em segundos
tpadovani 10:7a1d1abb5172 43 unsigned int MM_SIZE; // Numero maximo de registros da memoria de massa
tpadovani 11:8c93e0de58cd 44 unsigned int contadorCiclos; // Totalizador de numero de operacoes de corte/religa
tpadovani 13:eed9484a89bc 45 unsigned int ENABLE_ALARMS; // Bitmask para habilitacao dos alarmes
tpadovani 13:eed9484a89bc 46 unsigned int ALARMS_STATES; // Estados dos alarmes
tpadovani 13:eed9484a89bc 47 unsigned int ALARMS_QUEUE_SIZE; // Tamanho maximo da fila de alarmes
tpadovani 16:cae76dbd681f 48 unsigned int LIMITE_TENSAO_ZERO_CH0_V;
tpadovani 13:eed9484a89bc 49 unsigned int LIMITE_TENSAO_MINIMA_LINHA_V;
tpadovani 13:eed9484a89bc 50 unsigned int LIMITE_TENSAO_MAXIMA_LINHA_V;
tpadovani 16:cae76dbd681f 51 unsigned int LIMITE_TENSAO_ZERO_CH1_V;
tpadovani 13:eed9484a89bc 52 unsigned int LIMITE_TENSAO_MINIMA_CARGA_V;
tpadovani 13:eed9484a89bc 53 unsigned int LIMITE_TENSAO_MAXIMA_CARGA_V;
tpadovani 19:1f623070b9dd 54 unsigned int PROTOCOLO_MEDIDOR; // Protocolo de comunicacao com medidor: 0 = PIMA ELO, 1 = Piminha Copel, tambem chamado de SER-311
tpadovani 19:1f623070b9dd 55 unsigned int INTERVALO_WD_METER_S; // intervalo de watchdog da comunicacao com medidor, em segundos. Se nao receber dados apos este periodo vai resetar
tpadovani 19:1f623070b9dd 56 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.
tpadovani 19:1f623070b9dd 57 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).
tpadovani 19:1f623070b9dd 58 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.
tpadovani 19:1f623070b9dd 59 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.
tpadovani 19:1f623070b9dd 60 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.
tpadovani 19:1f623070b9dd 61 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)
tpadovani 19:1f623070b9dd 62 unsigned int PIMA_AUTOBAUD_TIMEOUT_S; // Intervalo em segundos para aguardar pacotes do medidor em cada baudrate testado pelo procedimento de autobaud.
tpadovani 19:1f623070b9dd 63 unsigned int RADIO_BAUDRATE_BPS; // Baudrate da comunicacao com o radio via UART.
tpadovani 22:b66e36356dd4 64
tpadovani 22:b66e36356dd4 65 unsigned int LIMITE_CORRENTE_ZERO_A;
tpadovani 22:b66e36356dd4 66 unsigned int LIMITE_CORRENTE_MINIMA_A;
tpadovani 22:b66e36356dd4 67 unsigned int LIMITE_CORRENTE_MAXIMA_A;
tpadovani 22:b66e36356dd4 68 union{
tpadovani 22:b66e36356dd4 69 float floatValue; // Coeficiente angular das amostras de corrente do A/D
tpadovani 22:b66e36356dd4 70 char bytes[4];
tpadovani 22:b66e36356dd4 71 } SAMPLES_CURRENT_ANG_COEF;
tpadovani 22:b66e36356dd4 72 union{
tpadovani 22:b66e36356dd4 73 float floatValue; // Coeficiente linear das amostras de tensao do A/D
tpadovani 22:b66e36356dd4 74 char bytes[4];
tpadovani 22:b66e36356dd4 75 } SAMPLES_CURRENT_LIN_COEF;
tpadovani 22:b66e36356dd4 76 unsigned int ENABLE_LOAD_PROFILE;
tpadovani 22:b66e36356dd4 77
tpadovani 0:999112ad27f0 78 } ParametersBlock;
tpadovani 0:999112ad27f0 79
tpadovani 0:999112ad27f0 80 void validateAppParameters();
tpadovani 13:eed9484a89bc 81 bool isAlarmEnabled(int alarm);
tpadovani 13:eed9484a89bc 82 bool getAlarmState(int alarm);
tpadovani 13:eed9484a89bc 83 void setAlarmState(int alarm, bool state);
tpadovani 0:999112ad27f0 84
tpadovani 5:1bc98277c257 85 extern ParametersBlock APP_PARAMETERS;
tpadovani 14:4963dc299580 86 extern Parameters param;
tpadovani 0:999112ad27f0 87
tpadovani 0:999112ad27f0 88 #endif