EZR
Dependencies: CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04
Fork of smartRamalKW by
appParameters.h@19:1f623070b9dd, 2015-10-08 (annotated)
- Committer:
- tpadovani
- Date:
- Thu Oct 08 22:50:07 2015 +0000
- Revision:
- 19:1f623070b9dd
- Parent:
- 16:cae76dbd681f
- Child:
- 22:b66e36356dd4
Vers?o com comandos de leitura de PIMA ELO e Piminha, alarme de caixa e LEDs (ainda falta implementar LED de REDE e CARGA).
Who changed what in which revision?
User | Revision | Line number | New 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 | 13:eed9484a89bc | 7 | |
tpadovani | 13:eed9484a89bc | 8 | #define ALARME_LINHA_TENSAO_ZERO 0 |
tpadovani | 13:eed9484a89bc | 9 | #define ALARME_LINHA_TENSAO_MINIMA 1 |
tpadovani | 13:eed9484a89bc | 10 | #define ALARME_LINHA_TENSAO_MAXIMA 2 |
tpadovani | 13:eed9484a89bc | 11 | #define ALARME_LINHA_CORRENTE_ZERO 3 |
tpadovani | 13:eed9484a89bc | 12 | #define ALARME_LINHA_CORRENTE_MINIMA 4 |
tpadovani | 13:eed9484a89bc | 13 | #define ALARME_LINHA_CORRENTE_MAXIMA 5 |
tpadovani | 13:eed9484a89bc | 14 | #define ALARME_CARGA_TENSAO_ZERO 6 |
tpadovani | 13:eed9484a89bc | 15 | #define ALARME_CARGA_TENSAO_MINIMA 7 |
tpadovani | 13:eed9484a89bc | 16 | #define ALARME_CARGA_TENSAO_MAXIMA 8 |
tpadovani | 13:eed9484a89bc | 17 | #define ALARME_CARGA_CORRENTE_ZERO 9 |
tpadovani | 13:eed9484a89bc | 18 | #define ALARME_CARGA_CORRENTE_MINIMA 10 |
tpadovani | 13:eed9484a89bc | 19 | #define ALARME_CARGA_CORRENTE_MAXIMA 11 |
tpadovani | 13:eed9484a89bc | 20 | #define ALARME_RETORNO_POTENCIAL 12 |
tpadovani | 19:1f623070b9dd | 21 | #define ALARME_CAIXA 13 |
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 | 9:e501499af4ef | 36 | } SAMPLES_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 | 9:e501499af4ef | 40 | } SAMPLES_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 | 0:999112ad27f0 | 64 | } ParametersBlock; |
tpadovani | 0:999112ad27f0 | 65 | |
tpadovani | 0:999112ad27f0 | 66 | void validateAppParameters(); |
tpadovani | 13:eed9484a89bc | 67 | bool isAlarmEnabled(int alarm); |
tpadovani | 13:eed9484a89bc | 68 | bool getAlarmState(int alarm); |
tpadovani | 13:eed9484a89bc | 69 | void setAlarmState(int alarm, bool state); |
tpadovani | 0:999112ad27f0 | 70 | |
tpadovani | 5:1bc98277c257 | 71 | extern ParametersBlock APP_PARAMETERS; |
tpadovani | 14:4963dc299580 | 72 | extern Parameters param; |
tpadovani | 0:999112ad27f0 | 73 | |
tpadovani | 0:999112ad27f0 | 74 | #endif |