teste de publish
Diff: devices.h
- Revision:
- 0:8c59a494a451
- Child:
- 1:3f9e5b86d9e4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devices.h Fri Mar 24 15:54:14 2017 +0000 @@ -0,0 +1,90 @@ +#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