Modification into 17th July New display demo code

Dependencies:   SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217

Fork of Ext_Demo_17July2017_newdis by SenseSemi

Committer:
nikitateggi
Date:
Fri Jun 09 17:12:21 2017 +0000
Revision:
19:1650bbc923cc
Parent:
14:f5c62d30c6fc
Child:
20:7c64e6ecad76
integrated code with bluetooth

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 19:1650bbc923cc 1 // changed the pid in all to int32_t;
nikitateggi 19:1650bbc923cc 2 //added bt
nikitateggi 19:1650bbc923cc 3
nikitateggi 0:c47fb0c1bbf6 4 #include "mbed.h"
nikitateggi 0:c47fb0c1bbf6 5 #include "display_modules.h"
nikitateggi 0:c47fb0c1bbf6 6 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 7 #include "ecg_dec.h"
nikitateggi 1:8316c23ec6b9 8 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 9 #include "glc.h"
nikitateggi 3:9a06c2bed650 10 #include "bp.h"
nikitateggi 1:8316c23ec6b9 11 #include "sdcard.h"
nikitateggi 4:6bd81bb1790d 12 #include "eeprom_pgm.h"
nikitateggi 19:1650bbc923cc 13 #include "struct.h"
nikitateggi 1:8316c23ec6b9 14
nikitateggi 0:c47fb0c1bbf6 15 Serial gc(USBTX, USBRX);
nikitateggi 0:c47fb0c1bbf6 16 DigitalIn q1(PTB11);
nikitateggi 0:c47fb0c1bbf6 17 DigitalIn q(PTB8);
nikitateggi 19:1650bbc923cc 18 DigitalIn BT(PTA5); //bluetooth status pin
nikitateggi 0:c47fb0c1bbf6 19
nikitateggi 19:1650bbc923cc 20 uint8_t touch(uint8_t state); // touch state
nikitateggi 19:1650bbc923cc 21 uint8_t display(uint8_t state1); // display state
nikitateggi 19:1650bbc923cc 22 int pid=0; // patient ID
nikitateggi 19:1650bbc923cc 23 static uint8_t nstate=0;
nikitateggi 19:1650bbc923cc 24 static uint8_t nstate1=0;
nikitateggi 19:1650bbc923cc 25 static uint8_t flag=0; //flag to indicate not to update pid as it is already done
nikitateggi 19:1650bbc923cc 26 static uint8_t ecg_flag=0; // ecg_flag to indicate the ecg test is already done for the same pid
nikitateggi 19:1650bbc923cc 27 static uint8_t glc_flag=0; // glc_flag to indicate the glc test is already done for the same pid
nikitateggi 19:1650bbc923cc 28 uint8_t state_r=0; // state to receive from bluetooth
nikitateggi 19:1650bbc923cc 29 uint8_t state_t=1; // state to transmit to bluetooth
nikitateggi 19:1650bbc923cc 30 float heart_rate=0;
nikitateggi 0:c47fb0c1bbf6 31
nikitateggi 0:c47fb0c1bbf6 32
nikitateggi 0:c47fb0c1bbf6 33 int main(){
nikitateggi 0:c47fb0c1bbf6 34
nikitateggi 0:c47fb0c1bbf6 35
nikitateggi 19:1650bbc923cc 36
nikitateggi 3:9a06c2bed650 37
nikitateggi 1:8316c23ec6b9 38 DisableTouch();
nikitateggi 1:8316c23ec6b9 39 gc.baud(115200);
nikitateggi 1:8316c23ec6b9 40
nikitateggi 1:8316c23ec6b9 41 init_screen(); //initialize lcd
nikitateggi 1:8316c23ec6b9 42 screen_main(); // display of main screen
nikitateggi 19:1650bbc923cc 43 //state=10;
nikitateggi 1:8316c23ec6b9 44 flag=0;
nikitateggi 19:1650bbc923cc 45 //nstate=state;
nikitateggi 0:c47fb0c1bbf6 46 EnableTouch(); // enable touch function
nikitateggi 19:1650bbc923cc 47 static uint8_t main_state=1;
nikitateggi 19:1650bbc923cc 48 static uint8_t state_display=0;
nikitateggi 19:1650bbc923cc 49 static uint8_t state_touch=1;
nikitateggi 19:1650bbc923cc 50 static uint8_t state_t=1;
nikitateggi 19:1650bbc923cc 51 static uint8_t state_r=0;
nikitateggi 0:c47fb0c1bbf6 52
nikitateggi 0:c47fb0c1bbf6 53 while(1)
nikitateggi 0:c47fb0c1bbf6 54 {
nikitateggi 19:1650bbc923cc 55 switch(main_state) // main state machine
nikitateggi 19:1650bbc923cc 56 {
nikitateggi 19:1650bbc923cc 57 case 1: state_display=touch(state_touch); // touch state
nikitateggi 19:1650bbc923cc 58
nikitateggi 19:1650bbc923cc 59
nikitateggi 19:1650bbc923cc 60 if(state_display==10)
nikitateggi 19:1650bbc923cc 61 main_state=3;
nikitateggi 19:1650bbc923cc 62
nikitateggi 19:1650bbc923cc 63 else
nikitateggi 19:1650bbc923cc 64 main_state=2;
nikitateggi 19:1650bbc923cc 65 break;
nikitateggi 19:1650bbc923cc 66
nikitateggi 19:1650bbc923cc 67 case 2: state_touch=display(state_display); //display state
nikitateggi 19:1650bbc923cc 68 main_state=1;
nikitateggi 19:1650bbc923cc 69 break;
nikitateggi 19:1650bbc923cc 70
nikitateggi 19:1650bbc923cc 71
nikitateggi 19:1650bbc923cc 72 case 3: DisableTouch(); // bluetooth send
nikitateggi 19:1650bbc923cc 73 if(BT==1)
nikitateggi 19:1650bbc923cc 74 {
nikitateggi 19:1650bbc923cc 75 state_r=bt_send(state_t);
nikitateggi 19:1650bbc923cc 76 main_state=4;
nikitateggi 19:1650bbc923cc 77 }
nikitateggi 19:1650bbc923cc 78 else
nikitateggi 19:1650bbc923cc 79 gc.printf("timeout");
nikitateggi 19:1650bbc923cc 80 break;
nikitateggi 19:1650bbc923cc 81
nikitateggi 19:1650bbc923cc 82 case 4:
nikitateggi 19:1650bbc923cc 83 state_t=bt_receive(state_r); // bluetooth receive
nikitateggi 19:1650bbc923cc 84 main_state=3;
nikitateggi 19:1650bbc923cc 85 // gc.printf("statet=%d",state_t);
nikitateggi 19:1650bbc923cc 86 if(state_t ==0)
nikitateggi 19:1650bbc923cc 87 {
nikitateggi 19:1650bbc923cc 88 EnableTouch();
nikitateggi 19:1650bbc923cc 89 main_state=1;
nikitateggi 19:1650bbc923cc 90 }
nikitateggi 19:1650bbc923cc 91 break;
nikitateggi 19:1650bbc923cc 92
nikitateggi 19:1650bbc923cc 93
nikitateggi 19:1650bbc923cc 94 }
nikitateggi 19:1650bbc923cc 95
nikitateggi 19:1650bbc923cc 96
nikitateggi 19:1650bbc923cc 97 }
nikitateggi 19:1650bbc923cc 98
nikitateggi 19:1650bbc923cc 99 }
nikitateggi 19:1650bbc923cc 100
nikitateggi 19:1650bbc923cc 101
nikitateggi 19:1650bbc923cc 102 uint8_t touch(uint8_t state)
nikitateggi 19:1650bbc923cc 103 {
nikitateggi 19:1650bbc923cc 104 static uint8_t state1=0;
nikitateggi 19:1650bbc923cc 105 detect_touch(); // determine the touch points
nikitateggi 1:8316c23ec6b9 106
nikitateggi 4:6bd81bb1790d 107 switch(state) // state for touch
nikitateggi 0:c47fb0c1bbf6 108 {
nikitateggi 0:c47fb0c1bbf6 109 case 1: state1=touch_main(); // determining the touch for main screen
nikitateggi 0:c47fb0c1bbf6 110 state=0;
nikitateggi 1:8316c23ec6b9 111 nstate1=state1;
nikitateggi 3:9a06c2bed650 112 break;
nikitateggi 0:c47fb0c1bbf6 113
nikitateggi 0:c47fb0c1bbf6 114 case 2:
nikitateggi 4:6bd81bb1790d 115 state1=touch_main_1(); // determining the touch for SYSTEM CONFIGURATION screen
nikitateggi 0:c47fb0c1bbf6 116 state=0;
nikitateggi 3:9a06c2bed650 117 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 118 break;
nikitateggi 0:c47fb0c1bbf6 119
nikitateggi 0:c47fb0c1bbf6 120 case 3:
nikitateggi 4:6bd81bb1790d 121 state1=touch_main_2(); //// determining the touch for TEST screen
nikitateggi 4:6bd81bb1790d 122
nikitateggi 0:c47fb0c1bbf6 123 state=0;
nikitateggi 1:8316c23ec6b9 124 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 125 break;
nikitateggi 0:c47fb0c1bbf6 126
nikitateggi 0:c47fb0c1bbf6 127 case 4:
nikitateggi 4:6bd81bb1790d 128 state1=touch_glc(); // determining the touch for GLC screen
nikitateggi 1:8316c23ec6b9 129 state=0;
nikitateggi 1:8316c23ec6b9 130 nstate1=state1;
nikitateggi 1:8316c23ec6b9 131 break;
nikitateggi 1:8316c23ec6b9 132
nikitateggi 1:8316c23ec6b9 133 case 5:
nikitateggi 4:6bd81bb1790d 134 state1=touch_ecg(); // determining the touch for ECG screen
nikitateggi 1:8316c23ec6b9 135 state=0;
nikitateggi 3:9a06c2bed650 136 nstate1=state1;
nikitateggi 3:9a06c2bed650 137 break;
nikitateggi 4:6bd81bb1790d 138 case 6:
nikitateggi 4:6bd81bb1790d 139 state1=touch_ret(); // determining the touch for returning back to the main screen
nikitateggi 0:c47fb0c1bbf6 140 state=0;
nikitateggi 3:9a06c2bed650 141 nstate1=state1;
nikitateggi 1:8316c23ec6b9 142 break;
nikitateggi 1:8316c23ec6b9 143
nikitateggi 4:6bd81bb1790d 144 case 7:
suhasini 5:a3ea7c82b7e1 145 state1=touch_again_ecg(); // determining the touch when readings are taken more than once screen
nikitateggi 1:8316c23ec6b9 146 state=0;
nikitateggi 1:8316c23ec6b9 147 nstate1=state1;
nikitateggi 1:8316c23ec6b9 148 break;
nikitateggi 0:c47fb0c1bbf6 149
nikitateggi 3:9a06c2bed650 150 case 8:
nikitateggi 4:6bd81bb1790d 151 state1=touch_bp(); // determining the touch for BP screen
nikitateggi 3:9a06c2bed650 152 state=0;
nikitateggi 3:9a06c2bed650 153 nstate1=state1;
nikitateggi 3:9a06c2bed650 154 break;
nikitateggi 3:9a06c2bed650 155
suhasini 5:a3ea7c82b7e1 156 case 9: state1=touch_again_glc();
suhasini 5:a3ea7c82b7e1 157 state=0;
suhasini 5:a3ea7c82b7e1 158 nstate1=state1;
suhasini 5:a3ea7c82b7e1 159 break;
nikitateggi 3:9a06c2bed650 160
nikitateggi 1:8316c23ec6b9 161 case 10 : DisableTouch();
nikitateggi 1:8316c23ec6b9 162 wait_ms(300);
nikitateggi 1:8316c23ec6b9 163 EnableTouch();
nikitateggi 3:9a06c2bed650 164 state=nstate;
nikitateggi 3:9a06c2bed650 165 break;
suhasini 5:a3ea7c82b7e1 166
suhasini 5:a3ea7c82b7e1 167
suhasini 5:a3ea7c82b7e1 168 case 11: state1=touch_again_bp();
suhasini 5:a3ea7c82b7e1 169 state=0;
suhasini 5:a3ea7c82b7e1 170 nstate1=state1;
suhasini 5:a3ea7c82b7e1 171 break;
suhasini 5:a3ea7c82b7e1 172
suhasini 5:a3ea7c82b7e1 173
nikitateggi 4:6bd81bb1790d 174 default : DisableTouch();
nikitateggi 1:8316c23ec6b9 175 wait_ms(300);
nikitateggi 1:8316c23ec6b9 176 EnableTouch();
nikitateggi 3:9a06c2bed650 177 state=nstate;
nikitateggi 3:9a06c2bed650 178 break;
nikitateggi 1:8316c23ec6b9 179
nikitateggi 0:c47fb0c1bbf6 180 }
nikitateggi 0:c47fb0c1bbf6 181
nikitateggi 19:1650bbc923cc 182 return state1;
nikitateggi 19:1650bbc923cc 183 }
nikitateggi 0:c47fb0c1bbf6 184
nikitateggi 0:c47fb0c1bbf6 185
nikitateggi 19:1650bbc923cc 186 uint8_t display(uint8_t state1)
nikitateggi 19:1650bbc923cc 187 {
nikitateggi 19:1650bbc923cc 188 static uint8_t state=0;
nikitateggi 0:c47fb0c1bbf6 189
nikitateggi 4:6bd81bb1790d 190 switch(state1) // state for display screens
nikitateggi 0:c47fb0c1bbf6 191 {
nikitateggi 4:6bd81bb1790d 192
nikitateggi 1:8316c23ec6b9 193
nikitateggi 3:9a06c2bed650 194 case 1: DisableTouch();
nikitateggi 4:6bd81bb1790d 195 screen_main(); // main screen
nikitateggi 1:8316c23ec6b9 196 state1=0;
nikitateggi 1:8316c23ec6b9 197 state=1;
nikitateggi 1:8316c23ec6b9 198 nstate=state;
nikitateggi 1:8316c23ec6b9 199 flag=0;
nikitateggi 4:6bd81bb1790d 200 ecg_flag=0; // ecg, glc flag to determine whether the readings are taken more than once
nikitateggi 1:8316c23ec6b9 201 glc_flag=0;
nikitateggi 3:9a06c2bed650 202 EnableTouch();
nikitateggi 1:8316c23ec6b9 203 break;
nikitateggi 1:8316c23ec6b9 204
nikitateggi 3:9a06c2bed650 205 case 2: DisableTouch();
nikitateggi 19:1650bbc923cc 206 // bt();
nikitateggi 4:6bd81bb1790d 207 screen_main_1(); // System configration screen
nikitateggi 0:c47fb0c1bbf6 208 state1=0;
nikitateggi 0:c47fb0c1bbf6 209 state=2;
nikitateggi 1:8316c23ec6b9 210 nstate=state;
nikitateggi 3:9a06c2bed650 211 EnableTouch();
nikitateggi 0:c47fb0c1bbf6 212 break;
nikitateggi 0:c47fb0c1bbf6 213
nikitateggi 3:9a06c2bed650 214 case 3: DisableTouch();
nikitateggi 1:8316c23ec6b9 215 if (flag==0)
nikitateggi 1:8316c23ec6b9 216 {
nikitateggi 4:6bd81bb1790d 217 //pid=pid+1;
nikitateggi 4:6bd81bb1790d 218 pid=eprom_read(1); // reading the patient id from eeprom
nikitateggi 19:1650bbc923cc 219 gc.printf("pidinit=%d",pid);
nikitateggi 4:6bd81bb1790d 220 pid=pid+1;
nikitateggi 19:1650bbc923cc 221 gc.printf("pid+1=%d",pid);
nikitateggi 4:6bd81bb1790d 222 eprom_write(1,pid); // writing the patient id to eeprom
nikitateggi 1:8316c23ec6b9 223 screen_main_2(pid);
nikitateggi 19:1650bbc923cc 224 /* sd_open_GLCfilee(pid); // only opening the glc,bp and ecg file
nikitateggi 1:8316c23ec6b9 225 sd_close();
nikitateggi 2:3b7b71bfc941 226 sd_open_ECGfilee(pid);
nikitateggi 1:8316c23ec6b9 227 sd_close();
nikitateggi 4:6bd81bb1790d 228 sd_open_BPfilee(pid);
nidhinvarghese 14:f5c62d30c6fc 229 sd_close();*/
nikitateggi 1:8316c23ec6b9 230 flag=1;
nikitateggi 1:8316c23ec6b9 231 }
nikitateggi 1:8316c23ec6b9 232 else
nikitateggi 1:8316c23ec6b9 233 {
nikitateggi 4:6bd81bb1790d 234 screen_main_2(pid); // TEST screen
nikitateggi 1:8316c23ec6b9 235 }
nikitateggi 1:8316c23ec6b9 236
nikitateggi 1:8316c23ec6b9 237 state1=0;
nikitateggi 1:8316c23ec6b9 238 state=3;
nikitateggi 1:8316c23ec6b9 239 nstate=state;
nikitateggi 3:9a06c2bed650 240 EnableTouch();
nikitateggi 1:8316c23ec6b9 241 break;
nikitateggi 0:c47fb0c1bbf6 242
nikitateggi 3:9a06c2bed650 243 case 4: DisableTouch();
nikitateggi 4:6bd81bb1790d 244 if (glc_flag==1) // glc_flag=1 when already the reading has been taken
nikitateggi 1:8316c23ec6b9 245 {
nikitateggi 4:6bd81bb1790d 246 screen_again();
nikitateggi 1:8316c23ec6b9 247 state1=0;
suhasini 5:a3ea7c82b7e1 248 state=9;
nikitateggi 1:8316c23ec6b9 249 nstate=state;
nikitateggi 1:8316c23ec6b9 250 }
nikitateggi 1:8316c23ec6b9 251 else
nikitateggi 19:1650bbc923cc 252 {
nikitateggi 19:1650bbc923cc 253 screen_glc(); // glc screen
nikitateggi 0:c47fb0c1bbf6 254 state1=0;
nikitateggi 0:c47fb0c1bbf6 255 state=4;
nikitateggi 1:8316c23ec6b9 256 nstate=state;
nikitateggi 1:8316c23ec6b9 257 }
nikitateggi 3:9a06c2bed650 258 EnableTouch();
nikitateggi 3:9a06c2bed650 259
nikitateggi 0:c47fb0c1bbf6 260 break;
nikitateggi 1:8316c23ec6b9 261
nikitateggi 1:8316c23ec6b9 262
nikitateggi 3:9a06c2bed650 263 case 5: DisableTouch();
nikitateggi 1:8316c23ec6b9 264 if (ecg_flag==1)
nikitateggi 1:8316c23ec6b9 265 {
nikitateggi 1:8316c23ec6b9 266 screen_again();
nikitateggi 1:8316c23ec6b9 267 state1=0;
nikitateggi 1:8316c23ec6b9 268 state=7;
nikitateggi 1:8316c23ec6b9 269 nstate=state;
nikitateggi 1:8316c23ec6b9 270 }
nikitateggi 1:8316c23ec6b9 271
nikitateggi 1:8316c23ec6b9 272 else
nikitateggi 1:8316c23ec6b9 273 {
nikitateggi 4:6bd81bb1790d 274 screen_ecg(); //ecg main screen
nikitateggi 1:8316c23ec6b9 275 state1=0;
nikitateggi 1:8316c23ec6b9 276 state=5;
nikitateggi 1:8316c23ec6b9 277 nstate=state;
nikitateggi 1:8316c23ec6b9 278 }
nikitateggi 3:9a06c2bed650 279 EnableTouch();
nikitateggi 1:8316c23ec6b9 280 break;
nikitateggi 1:8316c23ec6b9 281
nikitateggi 3:9a06c2bed650 282 case 6: DisableTouch();
nikitateggi 4:6bd81bb1790d 283 screen_bp(); // bp main screen
suhasini 6:5e33a0f01476 284 //EnableTouch();
nikitateggi 3:9a06c2bed650 285 state1=0;
nikitateggi 3:9a06c2bed650 286 state=8;
suhasini 6:5e33a0f01476 287 nstate=state; ///////
suhasini 6:5e33a0f01476 288 EnableTouch(); ///////
nikitateggi 3:9a06c2bed650 289 break;
nikitateggi 3:9a06c2bed650 290
nikitateggi 3:9a06c2bed650 291
nikitateggi 3:9a06c2bed650 292
nikitateggi 3:9a06c2bed650 293
nikitateggi 3:9a06c2bed650 294
nikitateggi 4:6bd81bb1790d 295 case 7: DisableTouch();
nikitateggi 4:6bd81bb1790d 296 glc(pid); // glc measurement
nikitateggi 19:1650bbc923cc 297 // bt();
nikitateggi 1:8316c23ec6b9 298 glc_flag=1;
nikitateggi 1:8316c23ec6b9 299 wait(5);
nikitateggi 4:6bd81bb1790d 300 state1=0;
nikitateggi 4:6bd81bb1790d 301 screen_glc_2();
nikitateggi 4:6bd81bb1790d 302 state=6;;
nikitateggi 1:8316c23ec6b9 303 // gc.printf("%d", state);
suhasini 6:5e33a0f01476 304 nstate=state; //////////////
nikitateggi 3:9a06c2bed650 305 EnableTouch();
nikitateggi 1:8316c23ec6b9 306 break;
nikitateggi 1:8316c23ec6b9 307
nikitateggi 3:9a06c2bed650 308 case 8: DisableTouch();
nikitateggi 4:6bd81bb1790d 309 ecg_countdown(); // countdown before ecg capture
suhasini 13:5d3b478ea9c7 310 heart_rate=ecg(pid); // capturing ecg
nikitateggi 1:8316c23ec6b9 311 state1=0;
suhasini 13:5d3b478ea9c7 312 screen_ecg_2(heart_rate);
nikitateggi 1:8316c23ec6b9 313 state=6;
nikitateggi 1:8316c23ec6b9 314 nstate=state;
nikitateggi 1:8316c23ec6b9 315 ecg_flag=1;
nikitateggi 4:6bd81bb1790d 316 // ble.printf("ecg");
nikitateggi 4:6bd81bb1790d 317 EnableTouch();
nikitateggi 1:8316c23ec6b9 318 break;
nikitateggi 1:8316c23ec6b9 319
nikitateggi 1:8316c23ec6b9 320
nikitateggi 4:6bd81bb1790d 321 /*case 9:
nikitateggi 3:9a06c2bed650 322 DisableTouch();
nikitateggi 4:6bd81bb1790d 323 screen_glc_2();
nikitateggi 4:6bd81bb1790d 324 state1=0;
nikitateggi 1:8316c23ec6b9 325 state=6;
nikitateggi 1:8316c23ec6b9 326 nstate=state;
nikitateggi 3:9a06c2bed650 327 EnableTouch();
nikitateggi 4:6bd81bb1790d 328 break;*/
nikitateggi 3:9a06c2bed650 329
nikitateggi 19:1650bbc923cc 330 case 9:
nikitateggi 3:9a06c2bed650 331 DisableTouch();
nikitateggi 4:6bd81bb1790d 332 screen_bp2(); // bp main screen
suhasini 6:5e33a0f01476 333 bp_countdown(); // countdown for bp
nidhinvarghese 8:adf2ba7e6412 334 bp(pid); // measuring bp earlier bp() changed to bp(pid) 28/4/2017
nikitateggi 3:9a06c2bed650 335 state1=0;
nikitateggi 3:9a06c2bed650 336 // wait(1);
nikitateggi 3:9a06c2bed650 337 state=6;
nikitateggi 3:9a06c2bed650 338 nstate=state;
nikitateggi 3:9a06c2bed650 339 EnableTouch();
nikitateggi 3:9a06c2bed650 340 break;
nikitateggi 3:9a06c2bed650 341
nikitateggi 19:1650bbc923cc 342
nikitateggi 19:1650bbc923cc 343
nikitateggi 1:8316c23ec6b9 344 default :
nikitateggi 3:9a06c2bed650 345
nikitateggi 1:8316c23ec6b9 346 state1=nstate1;
nikitateggi 1:8316c23ec6b9 347 break;
nikitateggi 1:8316c23ec6b9 348
nikitateggi 0:c47fb0c1bbf6 349
nikitateggi 0:c47fb0c1bbf6 350 }
nikitateggi 0:c47fb0c1bbf6 351
nikitateggi 0:c47fb0c1bbf6 352
nikitateggi 0:c47fb0c1bbf6 353
nikitateggi 19:1650bbc923cc 354 return state;
nikitateggi 0:c47fb0c1bbf6 355
nikitateggi 0:c47fb0c1bbf6 356 }
nikitateggi 0:c47fb0c1bbf6 357
nikitateggi 0:c47fb0c1bbf6 358
nikitateggi 0:c47fb0c1bbf6 359