CARLO TARALLO
/
time_Vibra
vibratime
main.cpp@9:a3c4335a1e09, 2020-12-02 (annotated)
- Committer:
- carlotara
- Date:
- Wed Dec 02 15:09:51 2020 +0000
- Revision:
- 9:a3c4335a1e09
- Parent:
- 8:281ad9672a53
prova
Who changed what in which revision?
User | Revision | Line number | New 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 | } |