vibratime

Committer:
carlotara
Date:
Wed Dec 02 15:09:51 2020 +0000
Revision:
9:a3c4335a1e09
Parent:
8:281ad9672a53
prova

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 2:c8b4159048f0 1 /* mbed Example Program
mbedAustin 2:c8b4159048f0 2 * Copyright (c) 2006-2014 ARM Limited
mbedAustin 2:c8b4159048f0 3 *
mbedAustin 2:c8b4159048f0 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbedAustin 2:c8b4159048f0 5 * you may not use this file except in compliance with the License.
mbedAustin 2:c8b4159048f0 6 * You may obtain a copy of the License at
mbedAustin 2:c8b4159048f0 7 *
mbedAustin 2:c8b4159048f0 8 * http://www.apache.org/licenses/LICENSE-2.0
mbedAustin 2:c8b4159048f0 9 *
mbedAustin 2:c8b4159048f0 10 * Unless required by applicable law or agreed to in writing, software
mbedAustin 2:c8b4159048f0 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbedAustin 2:c8b4159048f0 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbedAustin 2:c8b4159048f0 13 * See the License for the specific language governing permissions and
mbedAustin 2:c8b4159048f0 14 * limitations under the License.
mbedAustin 2:c8b4159048f0 15 */
mbed_official 0:b3b93997a0a6 16 #include "mbed.h"
mbed_official 0:b3b93997a0a6 17
carlotara 7:c336250d2897 18 long dataUnix = 0;
carlotara 7:c336250d2897 19 int settore = 0;
carlotara 8:281ad9672a53 20 int ore = 0;
carlotara 8:281ad9672a53 21 int minuti = 0;
carlotara 8:281ad9672a53 22
carlotara 8:281ad9672a53 23 char mon[30]="Mon";
carlotara 8:281ad9672a53 24 char tue[30]="Tue";
carlotara 8:281ad9672a53 25 char wed[30]="Wed";
carlotara 8:281ad9672a53 26 char thu[30]="Thu";
carlotara 8:281ad9672a53 27 char fri[30]="Fri";
carlotara 8:281ad9672a53 28 char sat[30]="Sat";
carlotara 8:281ad9672a53 29 char sun[30]="Sun";
carlotara 9:a3c4335a1e09 30 /*
carlotara 9:a3c4335a1e09 31 Il Software a seconda se è Lunedì, Martedì ecc leggerà
carlotara 9:a3c4335a1e09 32 dalla schedina microSD il file relativo
carlotara 9:a3c4335a1e09 33
carlotara 9:a3c4335a1e09 34 File EventiRilascioLu.txt
carlotara 9:a3c4335a1e09 35 I campi separati da virgola sono :
carlotara 9:a3c4335a1e09 36 Ora :
carlotara 9:a3c4335a1e09 37 Settore _n :
carlotara 9:a3c4335a1e09 38 Settore _n :
carlotara 9:a3c4335a1e09 39 Settore _n :
carlotara 9:a3c4335a1e09 40 Settore _n :
carlotara 9:a3c4335a1e09 41 Esempio righe file :
carlotara 9:a3c4335a1e09 42 0815,S04,S05 ( vuol dire che alle 8,15 dovrà cadere nell’imbuto il Cortisone e il Cardura )
carlotara 9:a3c4335a1e09 43 1200,S06,S09,S12
carlotara 9:a3c4335a1e09 44 1800,S03,S05,S10
carlotara 9:a3c4335a1e09 45 2000,S01,S04
carlotara 9:a3c4335a1e09 46
carlotara 9:a3c4335a1e09 47 File EventiRilascioMa.txt
carlotara 9:a3c4335a1e09 48 I campi separati da virgola sono :
carlotara 9:a3c4335a1e09 49 Ora :
carlotara 9:a3c4335a1e09 50 Settore _n :
carlotara 9:a3c4335a1e09 51 Settore _n :
carlotara 9:a3c4335a1e09 52 Settore _n :
carlotara 9:a3c4335a1e09 53 Settore _n :
carlotara 9:a3c4335a1e09 54 Esempio righe file :
carlotara 9:a3c4335a1e09 55 0815,S01,S05
carlotara 9:a3c4335a1e09 56 1200,S06,S09,S12
carlotara 9:a3c4335a1e09 57 1800,S03,S05,S10
carlotara 9:a3c4335a1e09 58
carlotara 9:a3c4335a1e09 59 */
carlotara 9:a3c4335a1e09 60
carlotara 9:a3c4335a1e09 61
carlotara 9:a3c4335a1e09 62 // questi dati li caricherò leggendoli dalla scheda microSD
carlotara 9:a3c4335a1e09 63 // all'inizio del programma
carlotara 9:a3c4335a1e09 64
carlotara 9:a3c4335a1e09 65
carlotara 8:281ad9672a53 66
carlotara 8:281ad9672a53 67 char giorno1[4]="Sun";
carlotara 8:281ad9672a53 68 char ora1[3]="04";
carlotara 8:281ad9672a53 69 char min1[3]="31";
carlotara 8:281ad9672a53 70 char am1[3]="AM";
carlotara 8:281ad9672a53 71 char S1[2]="5";
carlotara 8:281ad9672a53 72 char giorno2[4]="Sun";
carlotara 8:281ad9672a53 73 char ora2[3]="08";
carlotara 8:281ad9672a53 74 char min2[3]="20";
carlotara 8:281ad9672a53 75 char am2[3]="PM";
carlotara 8:281ad9672a53 76 char S2[2]="3";
carlotara 8:281ad9672a53 77 char giorno3[4]="Mon";
carlotara 8:281ad9672a53 78 char ora3[3]="04";
carlotara 8:281ad9672a53 79 char min3[3]="33";
carlotara 8:281ad9672a53 80 char am3[3]="AM";
carlotara 8:281ad9672a53 81 char S3[2]="5";
carlotara 8:281ad9672a53 82 char giorno4[4]="Tue";
carlotara 8:281ad9672a53 83 char ora4[3]="04";
carlotara 8:281ad9672a53 84 char min4[3]="36";
carlotara 8:281ad9672a53 85 char am4[3]="AM";
carlotara 8:281ad9672a53 86 char S4[2]="3";
carlotara 8:281ad9672a53 87 char giorno5[4]="Tue";
carlotara 8:281ad9672a53 88 char ora5[3]="05";
carlotara 8:281ad9672a53 89 char min5[3]="20";
carlotara 8:281ad9672a53 90 char am5[3]="PM";
carlotara 8:281ad9672a53 91 char S5[2]="5";
carlotara 8:281ad9672a53 92 char giorno6[4]="Fri";
carlotara 8:281ad9672a53 93 char ora6[3]="05";
carlotara 8:281ad9672a53 94 char min6[3]="10";
carlotara 8:281ad9672a53 95 char am6[3]="AM";
carlotara 8:281ad9672a53 96 char S6[2]="2";
carlotara 8:281ad9672a53 97 char giorno7[4]="Fri";
carlotara 8:281ad9672a53 98 char ora7[3]="06";
carlotara 8:281ad9672a53 99 char min7[3]="31";
carlotara 8:281ad9672a53 100 char am7[3]="PM";
carlotara 8:281ad9672a53 101 char S7[2]="5";
carlotara 8:281ad9672a53 102
carlotara 8:281ad9672a53 103 char am[3]="AM";
carlotara 8:281ad9672a53 104 char pm[3]="PM";
carlotara 8:281ad9672a53 105 char ampm[3];
carlotara 8:281ad9672a53 106 char ora[3];
carlotara 8:281ad9672a53 107 char minu[3];
carlotara 6:f1b1ceaae23e 108
carlotara 9:a3c4335a1e09 109
carlotara 9:a3c4335a1e09 110 // valori del giorno corrente
carlotara 9:a3c4335a1e09 111 int ora_d=0;
carlotara 9:a3c4335a1e09 112 int min_d=0;
carlotara 9:a3c4335a1e09 113 int sett_d1=0;
carlotara 9:a3c4335a1e09 114 int sett_d2=0;
carlotara 9:a3c4335a1e09 115 int sett_d3=0;
carlotara 9:a3c4335a1e09 116 int sett_d4=0;
carlotara 9:a3c4335a1e09 117 int sett_d5=0;
carlotara 9:a3c4335a1e09 118 int sett_d6=0;
carlotara 9:a3c4335a1e09 119 int sett_d7=0;
carlotara 9:a3c4335a1e09 120
carlotara 9:a3c4335a1e09 121
carlotara 9:a3c4335a1e09 122 // pin a cui è collegato il sensore di vibrazione
carlotara 9:a3c4335a1e09 123 // che segnala la caduta della pillola nell'imbuto
carlotara 6:f1b1ceaae23e 124 DigitalIn vibra(D7);
carlotara 6:f1b1ceaae23e 125 int present_condition = 0;
carlotara 6:f1b1ceaae23e 126 int previous_condition = 0;
carlotara 8:281ad9672a53 127
carlotara 8:281ad9672a53 128 int step_speed = 1200 ; // set default motor speed
carlotara 8:281ad9672a53 129 int numstep = 514 ; // defines full turn of 360 degree
carlotara 8:281ad9672a53 130 //you might want to calibrate this value according to your motor
carlotara 8:281ad9672a53 131 int statomax =7;
carlotara 8:281ad9672a53 132 int kmax = 8;
carlotara 8:281ad9672a53 133 int stato;
carlotara 8:281ad9672a53 134
carlotara 8:281ad9672a53 135
carlotara 9:a3c4335a1e09 136 // pin a cui è collegato il motore passo-passo
carlotara 8:281ad9672a53 137 DigitalOut IN1(D8);
carlotara 8:281ad9672a53 138 DigitalOut IN2(D9);
carlotara 8:281ad9672a53 139 DigitalOut IN3(D10);
carlotara 8:281ad9672a53 140 DigitalOut IN4(D11);
carlotara 8:281ad9672a53 141
carlotara 8:281ad9672a53 142 const int MotoreOFF = 99; // motore spento
carlotara 8:281ad9672a53 143
carlotara 8:281ad9672a53 144
carlotara 9:a3c4335a1e09 145 void leggomicroSD()
carlotara 9:a3c4335a1e09 146 {
carlotara 9:a3c4335a1e09 147
carlotara 9:a3c4335a1e09 148 }
carlotara 9:a3c4335a1e09 149 void leggoSD(int gg)
carlotara 9:a3c4335a1e09 150 {
carlotara 9:a3c4335a1e09 151 // leggo da microSD il file EventiRilascioLu.txt
carlotara 9:a3c4335a1e09 152 // in ragione del parametro del giorno della settimana
carlotara 9:a3c4335a1e09 153 // passato come parametro
carlotara 9:a3c4335a1e09 154 if (gg==1)
carlotara 9:a3c4335a1e09 155 {
carlotara 9:a3c4335a1e09 156 // leggo da SD EventiRilascioLu.txt
carlotara 9:a3c4335a1e09 157 // 0815,S04,S05
carlotara 9:a3c4335a1e09 158 // 1200,S06,S09,S12
carlotara 9:a3c4335a1e09 159 // 1800,S03,S05,S10
carlotara 9:a3c4335a1e09 160
carlotara 9:a3c4335a1e09 161 ora_d=8;
carlotara 9:a3c4335a1e09 162 min_d=15;
carlotara 9:a3c4335a1e09 163 sett_d1=4;
carlotara 9:a3c4335a1e09 164 sett_d2=5;
carlotara 9:a3c4335a1e09 165
carlotara 9:a3c4335a1e09 166
carlotara 9:a3c4335a1e09 167 }
carlotara 9:a3c4335a1e09 168
carlotara 9:a3c4335a1e09 169 if (gg==2)
carlotara 9:a3c4335a1e09 170 {
carlotara 9:a3c4335a1e09 171 // leggo da SD EventiRilascioLu.txt
carlotara 9:a3c4335a1e09 172 // 0815,S01,S05
carlotara 9:a3c4335a1e09 173 // 1200,S06,S09,S12
carlotara 9:a3c4335a1e09 174 // 1800,S03,S05,S10
carlotara 9:a3c4335a1e09 175
carlotara 9:a3c4335a1e09 176 ora_d=8;
carlotara 9:a3c4335a1e09 177 min_d=15;
carlotara 9:a3c4335a1e09 178 sett_d1=1;
carlotara 9:a3c4335a1e09 179 sett_d2=5;
carlotara 9:a3c4335a1e09 180
carlotara 9:a3c4335a1e09 181 }
carlotara 9:a3c4335a1e09 182
carlotara 9:a3c4335a1e09 183 if (gg==3)
carlotara 9:a3c4335a1e09 184 {
carlotara 9:a3c4335a1e09 185 // leggo da SD EventiRilascioLu.txt
carlotara 9:a3c4335a1e09 186 // 0815,S01,S05
carlotara 9:a3c4335a1e09 187 // 1200,S06,S09,S12
carlotara 9:a3c4335a1e09 188 // 1800,S03,S05,S10
carlotara 9:a3c4335a1e09 189
carlotara 9:a3c4335a1e09 190 ora_d=9;
carlotara 9:a3c4335a1e09 191 min_d=20;
carlotara 9:a3c4335a1e09 192 sett_d1=3;
carlotara 9:a3c4335a1e09 193 sett_d2=6;
carlotara 9:a3c4335a1e09 194
carlotara 9:a3c4335a1e09 195 }
carlotara 9:a3c4335a1e09 196
carlotara 9:a3c4335a1e09 197 printf(" ora: %d\r\n", ora_d);
carlotara 9:a3c4335a1e09 198 printf(" minuto settore: %d\r\n", min_d);
carlotara 9:a3c4335a1e09 199 printf(" Settore1 : %d\r\n", sett_d1);
carlotara 9:a3c4335a1e09 200 printf(" Settore2 : %d\r\n", sett_d2);
carlotara 9:a3c4335a1e09 201 }
carlotara 8:281ad9672a53 202
carlotara 8:281ad9672a53 203 void Uscita( int i4,int i3,int i2,int i1)
carlotara 8:281ad9672a53 204 {
carlotara 8:281ad9672a53 205 if (i1==1) IN1=1; else IN1=0;
carlotara 8:281ad9672a53 206 if (i2==1) IN2=1; else IN2=0;
carlotara 8:281ad9672a53 207 if (i3==1) IN3=1; else IN3=0;
carlotara 8:281ad9672a53 208 if (i4==1) IN4=1; else IN4=0;
carlotara 9:a3c4335a1e09 209
carlotara 8:281ad9672a53 210 }
carlotara 8:281ad9672a53 211
carlotara 8:281ad9672a53 212
carlotara 8:281ad9672a53 213
carlotara 8:281ad9672a53 214 void EseguiPasso(int stato)
carlotara 8:281ad9672a53 215 {
carlotara 8:281ad9672a53 216 int i1,i2,i3,i4;
carlotara 8:281ad9672a53 217
carlotara 8:281ad9672a53 218 switch ( stato )
carlotara 8:281ad9672a53 219 {// vedi tabella nel pdf del motore passo passo
carlotara 8:281ad9672a53 220 case 0: Uscita(0,0,0,1); break;
carlotara 8:281ad9672a53 221 case 1: Uscita(0,0,1,1); break;
carlotara 8:281ad9672a53 222 case 2: Uscita(0,0,1,0); break;
carlotara 8:281ad9672a53 223 case 3: Uscita(0,1,1,0); break;
carlotara 8:281ad9672a53 224 case 4: Uscita(0,1,0,0); break;
carlotara 8:281ad9672a53 225 case 5: Uscita(1,1,0,0); break;
carlotara 8:281ad9672a53 226 case 6: Uscita(1,0,0,0); break;
carlotara 8:281ad9672a53 227 case 7: Uscita(1,0,0,1); break;
carlotara 8:281ad9672a53 228 case 8: Uscita(0,0,0,1); break;
carlotara 8:281ad9672a53 229 case 9: Uscita(0,0,1,1); break;
carlotara 8:281ad9672a53 230 case 10: Uscita(0,0,1,0); break;
carlotara 8:281ad9672a53 231 case 11: Uscita(0,1,1,0); break;
carlotara 8:281ad9672a53 232 case 12: Uscita(0,1,0,0); break;
carlotara 8:281ad9672a53 233 case 13: Uscita(1,1,0,0); break;
carlotara 8:281ad9672a53 234 case 14: Uscita(1,0,0,0); break;
carlotara 9:a3c4335a1e09 235
carlotara 8:281ad9672a53 236 case MotoreOFF: //OFF
carlotara 8:281ad9672a53 237 Uscita(0,0,0,0); break;
carlotara 8:281ad9672a53 238 }
carlotara 8:281ad9672a53 239 wait_ms(1);
carlotara 8:281ad9672a53 240 // delay(1); //ritardo almeno 1 mS
carlotara 8:281ad9672a53 241 }
carlotara 6:f1b1ceaae23e 242
carlotara 8:281ad9672a53 243 void RitardoAccensione()
carlotara 8:281ad9672a53 244 { //attesa prima di attivare il motore
carlotara 8:281ad9672a53 245 EseguiPasso(MotoreOFF);
carlotara 8:281ad9672a53 246 for(int i=0; i<10; i++)
carlotara 8:281ad9672a53 247 {
carlotara 9:a3c4335a1e09 248
carlotara 8:281ad9672a53 249 }
carlotara 8:281ad9672a53 250 }
carlotara 8:281ad9672a53 251
carlotara 8:281ad9672a53 252
carlotara 8:281ad9672a53 253 void posizSettore()
carlotara 8:281ad9672a53 254 { //attesa prima di attivare il motore
carlotara 8:281ad9672a53 255 stato=0; //inizio da uno stato arbitrario
carlotara 8:281ad9672a53 256
carlotara 8:281ad9672a53 257
carlotara 8:281ad9672a53 258 if (kmax>0)
carlotara 8:281ad9672a53 259 {
carlotara 8:281ad9672a53 260 stato=0; //inizio da uno stato arbitrario
carlotara 8:281ad9672a53 261
carlotara 8:281ad9672a53 262 for(int k=0; k<kmax; k++) //Rotazione Oraria
carlotara 8:281ad9672a53 263 // for(int k=0; k<4; k++) //Rotazione Oraria
carlotara 8:281ad9672a53 264 {
carlotara 8:281ad9672a53 265 for (int i=0; i<numstep; i++) //45 gradi a ciclo
carlotara 8:281ad9672a53 266 // for (int i=0; i<514; i++) //45 gradi a ciclo
carlotara 8:281ad9672a53 267 // for (int i=0; i<1024; i++) //90 gradi a ciclo
carlotara 8:281ad9672a53 268 {
carlotara 8:281ad9672a53 269 EseguiPasso(stato);
carlotara 8:281ad9672a53 270 stato=stato+1; // avanza nella tabella
carlotara 8:281ad9672a53 271 /* printf("Stato : \r\n");
carlotara 8:281ad9672a53 272 printf("%d\r\n",stato);
carlotara 8:281ad9672a53 273 printf("k : \r\n");
carlotara 8:281ad9672a53 274 printf("%d\r\n",k);
carlotara 8:281ad9672a53 275 */
carlotara 8:281ad9672a53 276 if ((stato)>statomax)
carlotara 8:281ad9672a53 277 {
carlotara 8:281ad9672a53 278 stato=0;
carlotara 8:281ad9672a53 279 // if ((stato)>7) stato=0;
carlotara 8:281ad9672a53 280 }
carlotara 8:281ad9672a53 281 EseguiPasso(MotoreOFF);
carlotara 8:281ad9672a53 282 // wait_ms(500); // pausa di mezzo secondo
carlotara 8:281ad9672a53 283 }
carlotara 8:281ad9672a53 284 wait_ms(1000); // pausa di 1 secondo
carlotara 8:281ad9672a53 285 }
carlotara 8:281ad9672a53 286 for(int k=0; k<kmax; k++) //Rotazione AntiOraria
carlotara 8:281ad9672a53 287 // for(int k=0; k<4; k++) //Rotazione AntiOraria
carlotara 8:281ad9672a53 288 {
carlotara 8:281ad9672a53 289 for (int i=0; i<numstep; i++) //45 gradi a ciclo
carlotara 8:281ad9672a53 290 // for (int i=0; i<514; i++) //45 gradi a ciclo
carlotara 8:281ad9672a53 291 // for (int i=0; i<1024; i++) //90 gradi a ciclo
carlotara 8:281ad9672a53 292 {
carlotara 8:281ad9672a53 293 EseguiPasso(stato);
carlotara 8:281ad9672a53 294 stato=stato-1; //torna indietro nella tabella
carlotara 8:281ad9672a53 295 /* printf("Stato : \r\n");
carlotara 8:281ad9672a53 296 printf("%d\r\n",stato);
carlotara 8:281ad9672a53 297 printf("k : \r\n");
carlotara 8:281ad9672a53 298 printf("%d\r\n",k);
carlotara 8:281ad9672a53 299 */
carlotara 8:281ad9672a53 300 if ((stato)<0)
carlotara 8:281ad9672a53 301 {
carlotara 8:281ad9672a53 302 stato=statomax;
carlotara 8:281ad9672a53 303 // if ((stato)<0) stato=7;
carlotara 8:281ad9672a53 304 }
carlotara 8:281ad9672a53 305 EseguiPasso(MotoreOFF);
carlotara 8:281ad9672a53 306 // wait_ms(500);
carlotara 8:281ad9672a53 307 }
carlotara 8:281ad9672a53 308 wait_ms(1000);
carlotara 8:281ad9672a53 309 }
carlotara 8:281ad9672a53 310 }
carlotara 6:f1b1ceaae23e 311
carlotara 6:f1b1ceaae23e 312 }
carlotara 6:f1b1ceaae23e 313
mbed_official 0:b3b93997a0a6 314 int main() {
carlotara 7:c336250d2897 315
carlotara 7:c336250d2897 316
carlotara 7:c336250d2897 317 printf("Inserisci numero della data UNIX \r\n");
carlotara 7:c336250d2897 318 scanf("%li", &dataUnix);
carlotara 7:c336250d2897 319 printf("%li\n",dataUnix);
carlotara 7:c336250d2897 320
carlotara 8:281ad9672a53 321 // set_time(1256729737); // Set RTC time to Wed, 28 Oct 2009 11:35:37
carlotara 7:c336250d2897 322
carlotara 9:a3c4335a1e09 323 set_time(dataUnix); // Set RTC time to Data KB
carlotara 9:a3c4335a1e09 324
carlotara 9:a3c4335a1e09 325 // leggo dalla scheda microD le scadenze Medicine e le metto in apposite variabili
carlotara 9:a3c4335a1e09 326
carlotara 9:a3c4335a1e09 327 // leggomicroSD();
carlotara 9:a3c4335a1e09 328
mbed_official 0:b3b93997a0a6 329 while (true) {
carlotara 6:f1b1ceaae23e 330 previous_condition = present_condition;
carlotara 8:281ad9672a53 331 present_condition = vibra.read();
carlotara 8:281ad9672a53 332 printf(" VALORE : %d\r\n", present_condition);
carlotara 6:f1b1ceaae23e 333 if (previous_condition != present_condition) {
carlotara 9:a3c4335a1e09 334 printf(" Pillola caduta : %d\r\n", present_condition);
carlotara 9:a3c4335a1e09 335 // attesa per verificare a video il messaggio di pillola caduta
carlotara 9:a3c4335a1e09 336 wait_ms(1000);
carlotara 8:281ad9672a53 337 }
carlotara 6:f1b1ceaae23e 338
carlotara 6:f1b1ceaae23e 339
mbed_official 0:b3b93997a0a6 340 time_t seconds = time(NULL);
mbed_official 0:b3b93997a0a6 341
carlotara 9:a3c4335a1e09 342 // printf("Time as seconds since January 1, 1970 = %u\n", (unsigned int)seconds);
carlotara 9:a3c4335a1e09 343 //
mbed_official 0:b3b93997a0a6 344 printf("Time as a basic string = %s", ctime(&seconds));
carlotara 7:c336250d2897 345
carlotara 8:281ad9672a53 346 char bufH[15];
carlotara 7:c336250d2897 347 char buf[3];
carlotara 8:281ad9672a53 348
carlotara 8:281ad9672a53 349 strftime(buf,3, "%a,%d %m %Y.%H:%M:%S\r", localtime(&seconds));
carlotara 7:c336250d2897 350
carlotara 7:c336250d2897 351
carlotara 7:c336250d2897 352
carlotara 7:c336250d2897 353 if(strncmp(buf, mon, 3)==0)
carlotara 7:c336250d2897 354 {
carlotara 9:a3c4335a1e09 355 printf("Ho letto LUNEDI \r\n");
carlotara 9:a3c4335a1e09 356 // se non la ho già letta leggo il file EventiRilascioLu.txt
carlotara 9:a3c4335a1e09 357 leggoSD(1);
carlotara 9:a3c4335a1e09 358
carlotara 9:a3c4335a1e09 359
carlotara 7:c336250d2897 360 }
carlotara 7:c336250d2897 361 if(strncmp(buf, tue, 3)==0)
carlotara 7:c336250d2897 362 {
carlotara 9:a3c4335a1e09 363 printf("Ho letto MARTEDI \r\n");
carlotara 9:a3c4335a1e09 364 leggoSD(2);
carlotara 7:c336250d2897 365 }
carlotara 7:c336250d2897 366
carlotara 7:c336250d2897 367 if(strncmp(buf, wed, 3)==0)
carlotara 7:c336250d2897 368 {
carlotara 9:a3c4335a1e09 369 printf("Ho letto MERCOLEDI \r\n");
carlotara 9:a3c4335a1e09 370 leggoSD(3);
carlotara 7:c336250d2897 371 }
carlotara 7:c336250d2897 372 if(strncmp(buf, thu, 3)==0)
carlotara 7:c336250d2897 373 {
carlotara 7:c336250d2897 374 printf("Ho letto GIOVEDI \r\n");
carlotara 7:c336250d2897 375 }
carlotara 7:c336250d2897 376 if(strncmp(buf, fri, 3)==0)
carlotara 7:c336250d2897 377 {
carlotara 7:c336250d2897 378 printf("Ho letto VENERDI \r\n");
carlotara 7:c336250d2897 379 }
carlotara 7:c336250d2897 380
carlotara 7:c336250d2897 381 if(strncmp(buf, sat, 3)==0)
carlotara 7:c336250d2897 382 {
carlotara 7:c336250d2897 383 printf("Ho letto SABATO \r\n");
carlotara 7:c336250d2897 384 }
carlotara 7:c336250d2897 385 if(strncmp(buf, sun, 3)==0)
carlotara 7:c336250d2897 386 {
carlotara 7:c336250d2897 387 printf("Ho letto DOMENICA \r\n");
carlotara 7:c336250d2897 388 }
carlotara 9:a3c4335a1e09 389
carlotara 9:a3c4335a1e09 390
carlotara 9:a3c4335a1e09 391
carlotara 8:281ad9672a53 392
carlotara 9:a3c4335a1e09 393 // metto l'0ra di sistema in buffer per poi estrarre l'ora , i minuti , e ampm
carlotara 9:a3c4335a1e09 394 // che in seguito confronterò con quelli memorizzati sulla scheda microSD
carlotara 9:a3c4335a1e09 395 // caricati dal medico via WiFi
carlotara 8:281ad9672a53 396 char buffer[32];
carlotara 8:281ad9672a53 397 strftime(buffer, 8, "%I:%M %p\n", localtime(&seconds));
carlotara 8:281ad9672a53 398 // printf("Time as a custom formatted string = %s\r\n", buffer);
carlotara 9:a3c4335a1e09 399
carlotara 9:a3c4335a1e09 400 // estraggo ora dal buffer
carlotara 8:281ad9672a53 401 ora[0] = buffer[0];
carlotara 8:281ad9672a53 402 ora[1] = buffer[1];
carlotara 9:a3c4335a1e09 403 // estraggo i minuti dal buffer
carlotara 8:281ad9672a53 404 minu[0] = buffer[3];
carlotara 8:281ad9672a53 405 minu[1] = buffer[4];
carlotara 8:281ad9672a53 406
carlotara 8:281ad9672a53 407 printf("ora = %s\r\n", ora);
carlotara 8:281ad9672a53 408 printf("minuti = %s\r\n", minu);
carlotara 9:a3c4335a1e09 409 // estraggo ampm (mattina-pomeriggio) dal buffer
carlotara 8:281ad9672a53 410 ampm[0] = buffer[6];
carlotara 8:281ad9672a53 411 ampm[1] = buffer[7];
carlotara 8:281ad9672a53 412
carlotara 8:281ad9672a53 413
carlotara 8:281ad9672a53 414 printf("Mattina/Pomeriggio= %s\r\n", ampm);
carlotara 9:a3c4335a1e09 415
carlotara 9:a3c4335a1e09 416 wait_ms(1000);
carlotara 9:a3c4335a1e09 417
carlotara 9:a3c4335a1e09 418
carlotara 8:281ad9672a53 419 if(strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0)
carlotara 8:281ad9672a53 420 {
carlotara 8:281ad9672a53 421 printf("è ora medicina e minuto prima MEDICINA \r\n");
carlotara 8:281ad9672a53 422 }
carlotara 8:281ad9672a53 423
carlotara 9:a3c4335a1e09 424 // verifico
carlotara 8:281ad9672a53 425 if(strncmp(buf, giorno1, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 8:281ad9672a53 426 {
carlotara 8:281ad9672a53 427 printf("Vai a settore S1 \r\n");
carlotara 8:281ad9672a53 428 }
carlotara 9:a3c4335a1e09 429 if(strncmp(buf, giorno2, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 9:a3c4335a1e09 430 {
carlotara 9:a3c4335a1e09 431 printf("Vai a settore S2 \r\n");
carlotara 9:a3c4335a1e09 432 }
carlotara 9:a3c4335a1e09 433 if(strncmp(buf, giorno3, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 9:a3c4335a1e09 434 {
carlotara 9:a3c4335a1e09 435 printf("Vai a settore S3 \r\n");
carlotara 9:a3c4335a1e09 436 }
carlotara 9:a3c4335a1e09 437 if(strncmp(buf, giorno4, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 9:a3c4335a1e09 438 {
carlotara 9:a3c4335a1e09 439 printf("Vai a settore S4 \r\n");
carlotara 9:a3c4335a1e09 440 }
carlotara 9:a3c4335a1e09 441 if(strncmp(buf, giorno5, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 9:a3c4335a1e09 442 {
carlotara 9:a3c4335a1e09 443 printf("Vai a settore S5 \r\n");
carlotara 9:a3c4335a1e09 444 }
carlotara 9:a3c4335a1e09 445 if(strncmp(buf, giorno6, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 9:a3c4335a1e09 446 {
carlotara 9:a3c4335a1e09 447 printf("Vai a settore S6 \r\n");
carlotara 9:a3c4335a1e09 448 }
carlotara 9:a3c4335a1e09 449 if(strncmp(buf, giorno7, 3)==0 and strncmp(ora, ora1, 2)==0 and strncmp(minu, min1, 2)==0 and strncmp(ampm, am1, 2)==0)
carlotara 9:a3c4335a1e09 450 {
carlotara 9:a3c4335a1e09 451 printf("Vai a settore S7 \r\n");
carlotara 9:a3c4335a1e09 452 }
carlotara 8:281ad9672a53 453
carlotara 8:281ad9672a53 454
carlotara 8:281ad9672a53 455 if(strncmp(ora, ora2, 2)==0 and strncmp(minu, min2, 2)==0)
carlotara 8:281ad9672a53 456 {
carlotara 8:281ad9672a53 457 printf("è ora e minuto Seconda MEDICINA \r\n");
carlotara 8:281ad9672a53 458 }
carlotara 8:281ad9672a53 459
carlotara 8:281ad9672a53 460 if(strncmp(ora, ora1, 2)==0)
carlotara 8:281ad9672a53 461 {
carlotara 8:281ad9672a53 462 printf("è ora medicina 1 \r\n");
carlotara 8:281ad9672a53 463 }
carlotara 8:281ad9672a53 464
carlotara 8:281ad9672a53 465 if(strncmp(minu, min1, 2)==0)
carlotara 8:281ad9672a53 466 {
carlotara 8:281ad9672a53 467 printf("è minuto medicina 1 \r\n");
carlotara 8:281ad9672a53 468 }
carlotara 9:a3c4335a1e09 469 /*
carlotara 8:281ad9672a53 470 if(strncmp(ampm, am, 2)==0)
carlotara 8:281ad9672a53 471 {
carlotara 8:281ad9672a53 472 printf("è mattino \r\n");
carlotara 8:281ad9672a53 473 }
carlotara 8:281ad9672a53 474 if(strncmp(ampm, pm, 2)==0)
carlotara 8:281ad9672a53 475 {
carlotara 8:281ad9672a53 476 printf("è pomeriggio \r\n");
carlotara 8:281ad9672a53 477 }
carlotara 9:a3c4335a1e09 478 */
mbed_official 0:b3b93997a0a6 479 }
carlotara 9:a3c4335a1e09 480 }