EZR

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

Fork of smartRamalKW by Equipe Firmware V2COM

appParameters.h

Committer:
tpadovani
Date:
2015-07-30
Revision:
16:cae76dbd681f
Parent:
14:4963dc299580
Child:
19:1f623070b9dd

File content as of revision 16:cae76dbd681f:

#ifndef APPPARAMETERS_H
#define APPPARAMETERS_H

#include "mbed.h"
#include "settings.h"
#include "parameters.h"

#define ALARME_LINHA_TENSAO_ZERO        0
#define ALARME_LINHA_TENSAO_MINIMA      1
#define ALARME_LINHA_TENSAO_MAXIMA      2
#define ALARME_LINHA_CORRENTE_ZERO      3
#define ALARME_LINHA_CORRENTE_MINIMA    4
#define ALARME_LINHA_CORRENTE_MAXIMA    5
#define ALARME_CARGA_TENSAO_ZERO        6
#define ALARME_CARGA_TENSAO_MINIMA      7
#define ALARME_CARGA_TENSAO_MAXIMA      8
#define ALARME_CARGA_CORRENTE_ZERO      9
#define ALARME_CARGA_CORRENTE_MINIMA    10
#define ALARME_CARGA_CORRENTE_MAXIMA    11
#define ALARME_RETORNO_POTENCIAL        12

typedef struct {
    unsigned int estadoRele;
    unsigned int RELIGAR_LARGURA_PULSO_MS;    // Largura do pulso enviado ao rele em milissegundos para religar
    unsigned int CORTAR_LARGURA_PULSO_MS;     // Largura do pulso enviado ao rele em milissegundos para cortar
    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)
    unsigned int INTERVALO_SILENCIO_S;        // intervalo sem receber bytes na rede para considerar que a linha esta livre pra envio do anuncio
    unsigned int INTERVALO_WD_NETWORK_S;      // intervalo de watchdog da comunicacao de rede, em segundos. Se nao receber comandos apos este periodo vai resetar
    unsigned int LIMITE_TENSAO_SENSOR_V;      // Limite de tensao em volts RMS no conversor A/D para considerar que a linha esta energizada
    unsigned int SAMPLES;                     // Numero de amostras para calculo da tensao RMS nos sensores de carga e linha
    unsigned int SAMPLES_DELAY_US;            // Intervalo entre amostras para calculo da tensao RMS (em microssegundos)
    union{
        float floatValue;                     // Coeficiente angular das amostras de tensao do A/D
        char bytes[4];
    } SAMPLES_ANG_COEF;
    union{
        float floatValue;                     // Coeficiente linear das amostras de tensao do A/D
        char bytes[4];
    } SAMPLES_LIN_COEF;
    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
    unsigned int INTERVALO_MM_S;              // Intervalo de leitura de Memoria de Massa em segundos
    unsigned int MM_SIZE;                     // Numero maximo de registros da memoria de massa
    unsigned int contadorCiclos;              // Totalizador de numero de operacoes de corte/religa
    unsigned int ENABLE_ALARMS;               // Bitmask para habilitacao dos alarmes
    unsigned int ALARMS_STATES;               // Estados dos alarmes
    unsigned int ALARMS_QUEUE_SIZE;           // Tamanho maximo da fila de alarmes
    unsigned int LIMITE_TENSAO_ZERO_CH0_V;
    unsigned int LIMITE_TENSAO_MINIMA_LINHA_V;
    unsigned int LIMITE_TENSAO_MAXIMA_LINHA_V;
    unsigned int LIMITE_TENSAO_ZERO_CH1_V;
    unsigned int LIMITE_TENSAO_MINIMA_CARGA_V;
    unsigned int LIMITE_TENSAO_MAXIMA_CARGA_V;
} ParametersBlock;

void validateAppParameters();
bool isAlarmEnabled(int alarm);
bool getAlarmState(int alarm);
void setAlarmState(int alarm, bool state);

extern ParametersBlock APP_PARAMETERS;
extern Parameters param;

#endif