teste de publish

Revision:
4:3f92979d1ffb
Parent:
3:75223647cf3d
Child:
5:8efd609dea7d
--- a/devices.cpp	Fri Jun 02 13:22:07 2017 +0000
+++ b/devices.cpp	Wed Jun 07 19:38:14 2017 +0000
@@ -5,7 +5,8 @@
     estadoConfiguracao_creatingDevice,
     estadoConfiguracao_alarmSet,
     estadoConfiguracao_readingsSet,
-    estadoConfiguracao_scheduleSet
+    estadoConfiguracao_scheduleSet,
+    estadoConfiguracao_scheduleExceptionSet
 };
 
 /*
@@ -911,6 +912,31 @@
     }  
 }
 
+void device::setScheduleException(char *linha)
+{    
+    //float floatVar;
+    //uint32_t aux32_t;
+    //uint16_t aux16_t;
+    char *pChar;    
+
+    if(strstr(linha,"scheduleExceptionSet")) {        
+            //Inicialização de contadores de schedulesExceptions
+            this->numScheduleExceptions++;
+    }
+
+    if(strstr(linha,"id_schedule:")) {
+        strtok(linha,":");
+        this->scheduleExceptions[this->numScheduleExceptions-1].id_schedule = atoi(strtok(NULL,"\r\n"));
+    }
+
+    
+    if(strstr(linha,"timestamp:")) {        
+        strtok(linha,":");
+        pChar = strtok(NULL,",");
+        this->scheduleExceptions[this->numScheduleExceptions-1].timestamp = atoi(pChar);        
+    }    
+}
+
 /*void device::writeReadingsToSD(){    
     //Esta função faz a inserção de todos os dados no arquivo armazenamento.            
     uint16_t readingIndex=0;    
@@ -1396,6 +1422,12 @@
             qtdSchedules++;
             estadoConfiguracao = estadoConfiguracao_scheduleSet;
         }
+        
+        if(strstr(linha,"scheduleExceptionsEnd")) {
+            //printf("Criando leituras no dispositivo de indice %u.\n",dispositivoEmConfiguracao);
+            qtdSchedules++;
+            estadoConfiguracao = estadoConfiguracao_scheduleSet;
+        }
 
         linhas++;
     }
@@ -1430,6 +1462,12 @@
             estadoConfiguracao = estadoConfiguracao_readingsSet;
         }
 
+        if(strstr(linha,"scheduleExceptionSet")) {
+            //printf("Criando leituras no dispositivo de indice %u.\n",dispositivoEmConfiguracao);
+            qtdScheduleExceptions++;
+            estadoConfiguracao = estadoConfiguracao_scheduleExceptionSet;
+        }
+
         if(strstr(linha,"readingsEnd")) {
             //printf("Criando leituras no dispositivo de indice %u.\n",dispositivoEmConfiguracao);
             estadoConfiguracao = estadoConfiguracao_idle;
@@ -1466,8 +1504,12 @@
                 dispositivos[dispositivoEmConfiguracao]->setReading(linha);
                 break;
             case estadoConfiguracao_scheduleSet:
-                //Inclue linha nas leituras do dispositivo em configuração
+                //Inclue linha nos agendamentos do dispositivo em configuração
                 dispositivos[dispositivoEmConfiguracao]->setSchedule(linha);
+                break;
+            case estadoConfiguracao_scheduleExceptionSet:
+                //Inclue linha nas excessões dos agendamentos do dispositivo em configuração
+                dispositivos[dispositivoEmConfiguracao]->setScheduleException(linha);
                 break;                
         }
     }
@@ -1529,8 +1571,7 @@
             printf("\tact:%lu\n",dispositivos[i]->alarms[j].idAct);
         }
         
-        printf("Dispositivo %u tem %u schedules sendo eles:\n",i,dispositivos[i]->numSchedules);
-        
+        printf("Dispositivo %u tem %u schedules sendo eles:\n",i,dispositivos[i]->numSchedules);        
         for(j=0; j<dispositivos[i]->numSchedules; j++) {
             printf("Schedule %u:\n",j);
             printf("\tId <%lu>.\n",dispositivos[i]->schedules[j].id);
@@ -1538,9 +1579,15 @@
             printf("\tminute <%lu>.\n",dispositivos[i]->schedules[j].minute);
             printf("\tidAct <%lu>.\n",dispositivos[i]->schedules[j].idAct);
         }
+        
+        printf("Dispositivo %u tem %u scheduleExceptions sendo eles:\n",i,dispositivos[i]->numScheduleExceptions);        
+        for(j=0; j<dispositivos[i]->numScheduleExceptions; j++) {
+            printf("scheduleException %u:\n",j);
+            printf("\tid_schedule <%lu>.\n",dispositivos[i]->scheduleExceptions[j].id_schedule);
+            printf("\ttimestamp <%lu>.\n",dispositivos[i]->scheduleExceptions[j].timestamp);            
+        }
 
         printf("Dispositivo %u tem %u leituras sendo elas:\n",i,dispositivos[i]->numReadings);
-
         for(j=0; j<dispositivos[i]->numReadings; j++) {
             printf("Leitura %u:",j);
             switch(dispositivos[i]->readings[j].type) {