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:
fprado
Date:
Thu Jun 16 18:55:57 2016 +0000
Revision:
35:78614a27b9e6
Parent:
25:2c578b923ea9
temporary snapshot

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 25:2c578b923ea9 64 union{
tpadovani 25:2c578b923ea9 65 float floatValue;
tpadovani 25:2c578b923ea9 66 char bytes[4];
tpadovani 25:2c578b923ea9 67 } LIMITE_CORRENTE_ZERO_A;
tpadovani 25:2c578b923ea9 68 union{
tpadovani 25:2c578b923ea9 69 float floatValue;
tpadovani 25:2c578b923ea9 70 char bytes[4];
tpadovani 25:2c578b923ea9 71 } LIMITE_CORRENTE_MINIMA_A;
tpadovani 25:2c578b923ea9 72 union{
tpadovani 25:2c578b923ea9 73 float floatValue;
tpadovani 25:2c578b923ea9 74 char bytes[4];
tpadovani 25:2c578b923ea9 75 } LIMITE_CORRENTE_MAXIMA_A;
tpadovani 22:b66e36356dd4 76 union{
tpadovani 22:b66e36356dd4 77 float floatValue; // Coeficiente angular das amostras de corrente do A/D
tpadovani 22:b66e36356dd4 78 char bytes[4];
tpadovani 22:b66e36356dd4 79 } SAMPLES_CURRENT_ANG_COEF;
tpadovani 22:b66e36356dd4 80 union{
tpadovani 22:b66e36356dd4 81 float floatValue; // Coeficiente linear das amostras de tensao do A/D
tpadovani 22:b66e36356dd4 82 char bytes[4];
tpadovani 22:b66e36356dd4 83 } SAMPLES_CURRENT_LIN_COEF;
tpadovani 25:2c578b923ea9 84 unsigned int ENABLE_LOAD_PROFILE; // Habilita gravacao da memoria de massa
tpadovani 25:2c578b923ea9 85 unsigned int DISCOVERY_DELAY_ANG_COEF_MS;
tpadovani 25:2c578b923ea9 86 unsigned int DISCOVERY_DELAY_LIN_COEF_MS;
tpadovani 25:2c578b923ea9 87 unsigned int ANNOUNCE_INTERVAL_S;
tpadovani 25:2c578b923ea9 88 unsigned int DUMMY;
tpadovani 22:b66e36356dd4 89
tpadovani 0:999112ad27f0 90 } ParametersBlock;
tpadovani 0:999112ad27f0 91
tpadovani 0:999112ad27f0 92 void validateAppParameters();
tpadovani 13:eed9484a89bc 93 bool isAlarmEnabled(int alarm);
tpadovani 13:eed9484a89bc 94 bool getAlarmState(int alarm);
tpadovani 13:eed9484a89bc 95 void setAlarmState(int alarm, bool state);
tpadovani 0:999112ad27f0 96
tpadovani 5:1bc98277c257 97 extern ParametersBlock APP_PARAMETERS;
tpadovani 14:4963dc299580 98 extern Parameters param;
tpadovani 0:999112ad27f0 99
tpadovani 0:999112ad27f0 100 #endif