teste de publish

devices.h

Committer:
brunofgc
Date:
2017-03-24
Revision:
0:8c59a494a451
Child:
1:3f9e5b86d9e4

File content as of revision 0:8c59a494a451:

#include "mbed.h"
#include "funcoesSDCard.h"
#include "modbusMaster1.h"
#ifndef _devices_h_
#define _devices_h_
#define maxCaractereLeLinha 40
#include <cstdlib>

enum {        
    modBusType_float=1,
    modBusType_bit,
    modBusType_uint8_t,
    modBusType_uint16_t,
    modBusType_uint32_t,
    IrCommandType
};

typedef struct _alarm{
    uint32_t id;
    //Tempos de confirmação
    uint32_t seconds;
    //Var Read block
    uint8_t type;
    uint16_t addrModbusRead;
    uint8_t funcModbusRead;
    uint16_t regModbusRead;             
    uint8_t max; //1 Max; 0 Min
    uint8_t value[4];
    
    //Act block
    uint32_t idAct;    

    //Maquina de estados alarme    
    uint32_t secAlarm;    
    bool alarmFound;
}alarm;

typedef struct _reading{    
    uint8_t type;
    uint8_t addr;
    uint8_t func;
    uint16_t reg;               
    uint8_t numRegs;        
}reading;

typedef struct _schedule{    
    uint32_t id;
    uint8_t weekday;
    uint16_t minute; // Minuto do dia em que será executada a ação programada
    
    //Act block
    uint32_t idAct;
    //Maquina de estados alarme
    bool actSent;
}schedule;

class device{
    private:
        uint8_t execActAlarm(uint32_t);                
        uint8_t execAct(uint32_t);
    public: 
        uint8_t numAlarms;
        uint8_t numSchedules;
        uint16_t numReadings;
        alarm *alarms;
        reading *readings;
        schedule *schedules;
        //uint32_t id;
        
        device();
        
        void floatToBin(uint8_t,float *,uint8_t *);                
        void uint32_t_ToBin(uint8_t,uint32_t *,uint8_t *);
        void uint16_t_ToBin(uint8_t,uint16_t *,uint8_t *);
        void setAlarm(char *);
        void setReading(char *);
        void setSchedule(char *);        
        void verifyAlarms();
        void verifySchedules();        
        void writeReadingsToSD();        
};

int criaDevices(FILE *);
int configuraDevices(FILE *); 
uint8_t resizeArray(uint32_t,uint32_t,char **,uint16_t);
void testaTudoDevices();
void writeReadingsToSD();
void verifyAlarms();
void verifySchedules();
#endif