Updated with option to return from BP screen to main screen, resolved screen navigation issues

Dependencies:   SDFileSystem TFTLCD_8bit ds3231 program mbed

Fork of poc_dis_5 by SenseSemi

Committer:
nikitateggi
Date:
Mon Jan 30 07:45:41 2017 +0000
Revision:
1:8316c23ec6b9
Parent:
0:c47fb0c1bbf6
Child:
2:3b7b71bfc941
POC code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 0:c47fb0c1bbf6 1 #include "mbed.h"
nikitateggi 0:c47fb0c1bbf6 2 #include "ili9325.h"
nikitateggi 0:c47fb0c1bbf6 3 #include "lcd_base.h"
nikitateggi 0:c47fb0c1bbf6 4 #include "display_modules.h"
nikitateggi 0:c47fb0c1bbf6 5 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 6 #include "ecg_dec.h"
nikitateggi 1:8316c23ec6b9 7 #include "touch_modules.h"
nikitateggi 1:8316c23ec6b9 8 #include "glc.h"
nikitateggi 1:8316c23ec6b9 9 #include "sdcard.h"
nikitateggi 0:c47fb0c1bbf6 10
nikitateggi 0:c47fb0c1bbf6 11
nikitateggi 1:8316c23ec6b9 12
nikitateggi 0:c47fb0c1bbf6 13 Serial gc(USBTX, USBRX);
nikitateggi 0:c47fb0c1bbf6 14 DigitalIn q1(PTB11);
nikitateggi 0:c47fb0c1bbf6 15 DigitalIn q(PTB8);
nikitateggi 1:8316c23ec6b9 16 //Serial ble(PTC4,PTC3);
nikitateggi 0:c47fb0c1bbf6 17
nikitateggi 0:c47fb0c1bbf6 18
nikitateggi 0:c47fb0c1bbf6 19
nikitateggi 0:c47fb0c1bbf6 20 int main(){
nikitateggi 0:c47fb0c1bbf6 21
nikitateggi 0:c47fb0c1bbf6 22
nikitateggi 0:c47fb0c1bbf6 23 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 24 unsigned char state1;
nikitateggi 1:8316c23ec6b9 25 unsigned char nstate;
nikitateggi 1:8316c23ec6b9 26 unsigned char nstate1;
nikitateggi 1:8316c23ec6b9 27 int pid=0;
nikitateggi 1:8316c23ec6b9 28 unsigned char flag=0;
nikitateggi 1:8316c23ec6b9 29 unsigned char ecg_flag=0;
nikitateggi 1:8316c23ec6b9 30 unsigned char glc_flag=0;
nikitateggi 1:8316c23ec6b9 31
nikitateggi 1:8316c23ec6b9 32 unsigned int mgdll;
nikitateggi 1:8316c23ec6b9 33 DisableTouch();
nikitateggi 1:8316c23ec6b9 34 gc.baud(115200);
nikitateggi 1:8316c23ec6b9 35
nikitateggi 1:8316c23ec6b9 36 init_screen(); //initialize lcd
nikitateggi 1:8316c23ec6b9 37 screen_main(); // display of main screen
nikitateggi 0:c47fb0c1bbf6 38 state=1;
nikitateggi 1:8316c23ec6b9 39 flag=0;
nikitateggi 1:8316c23ec6b9 40 nstate=state;
nikitateggi 0:c47fb0c1bbf6 41 EnableTouch(); // enable touch function
nikitateggi 0:c47fb0c1bbf6 42
nikitateggi 0:c47fb0c1bbf6 43 while(1)
nikitateggi 0:c47fb0c1bbf6 44 {
nikitateggi 0:c47fb0c1bbf6 45 detect_touch(); // detrmine the touch points
nikitateggi 1:8316c23ec6b9 46
nikitateggi 0:c47fb0c1bbf6 47 switch(state)
nikitateggi 0:c47fb0c1bbf6 48 {
nikitateggi 0:c47fb0c1bbf6 49 case 1: state1=touch_main(); // determining the touch for main screen
nikitateggi 0:c47fb0c1bbf6 50 state=0;
nikitateggi 1:8316c23ec6b9 51 nstate1=state1;
nikitateggi 1:8316c23ec6b9 52 break;
nikitateggi 0:c47fb0c1bbf6 53
nikitateggi 0:c47fb0c1bbf6 54 case 2:
nikitateggi 1:8316c23ec6b9 55 state1=touch_main_1(); // determining the touch for glc screen
nikitateggi 0:c47fb0c1bbf6 56 state=0;
nikitateggi 1:8316c23ec6b9 57 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 58 break;
nikitateggi 0:c47fb0c1bbf6 59
nikitateggi 0:c47fb0c1bbf6 60 case 3:
nikitateggi 1:8316c23ec6b9 61 state1=touch_main_2();
nikitateggi 1:8316c23ec6b9 62 // determining the touch for ecg screen
nikitateggi 0:c47fb0c1bbf6 63 state=0;
nikitateggi 1:8316c23ec6b9 64 nstate1=state1;
nikitateggi 0:c47fb0c1bbf6 65 break;
nikitateggi 0:c47fb0c1bbf6 66
nikitateggi 0:c47fb0c1bbf6 67 case 4:
nikitateggi 1:8316c23ec6b9 68 state1=touch_glc(); // determining the touch for bp screen
nikitateggi 1:8316c23ec6b9 69 state=0;
nikitateggi 1:8316c23ec6b9 70 nstate1=state1;
nikitateggi 1:8316c23ec6b9 71 break;
nikitateggi 1:8316c23ec6b9 72
nikitateggi 1:8316c23ec6b9 73 case 5:
nikitateggi 1:8316c23ec6b9 74 state1=touch_ecg(); // determining the touch for bp screen
nikitateggi 1:8316c23ec6b9 75 state=0;
nikitateggi 1:8316c23ec6b9 76 nstate1=state1;
nikitateggi 1:8316c23ec6b9 77 break;
nikitateggi 1:8316c23ec6b9 78 case 6:
nikitateggi 1:8316c23ec6b9 79 state1=touch_ret(); // determining the touch for bp screen
nikitateggi 0:c47fb0c1bbf6 80 state=0;
nikitateggi 1:8316c23ec6b9 81 nstate1=state1;
nikitateggi 1:8316c23ec6b9 82 // gc.printf("state=%d", state);
nikitateggi 1:8316c23ec6b9 83 //gc.printf("state1=%d", state1);
nikitateggi 1:8316c23ec6b9 84 break;
nikitateggi 1:8316c23ec6b9 85
nikitateggi 1:8316c23ec6b9 86 case 7:
nikitateggi 1:8316c23ec6b9 87 state1=touch_again(); // determining the touch for bp screen
nikitateggi 1:8316c23ec6b9 88 state=0;
nikitateggi 1:8316c23ec6b9 89 nstate1=state1;
nikitateggi 1:8316c23ec6b9 90 break;
nikitateggi 0:c47fb0c1bbf6 91
nikitateggi 1:8316c23ec6b9 92 case 10 : DisableTouch();
nikitateggi 1:8316c23ec6b9 93 wait_ms(300);
nikitateggi 1:8316c23ec6b9 94 EnableTouch();
nikitateggi 1:8316c23ec6b9 95 state=nstate;
nikitateggi 1:8316c23ec6b9 96 // gc.printf("%d", nstate);
nikitateggi 1:8316c23ec6b9 97 //state=0;
nikitateggi 1:8316c23ec6b9 98 break;
nikitateggi 1:8316c23ec6b9 99
nikitateggi 1:8316c23ec6b9 100 default : DisableTouch();
nikitateggi 1:8316c23ec6b9 101 wait_ms(300);
nikitateggi 1:8316c23ec6b9 102 EnableTouch();
nikitateggi 1:8316c23ec6b9 103 state=nstate;
nikitateggi 1:8316c23ec6b9 104 // gc.printf("%d", nstate);
nikitateggi 1:8316c23ec6b9 105 break;
nikitateggi 1:8316c23ec6b9 106
nikitateggi 0:c47fb0c1bbf6 107 }
nikitateggi 0:c47fb0c1bbf6 108
nikitateggi 0:c47fb0c1bbf6 109
nikitateggi 0:c47fb0c1bbf6 110
nikitateggi 0:c47fb0c1bbf6 111
nikitateggi 0:c47fb0c1bbf6 112
nikitateggi 0:c47fb0c1bbf6 113 switch(state1)
nikitateggi 0:c47fb0c1bbf6 114 {
nikitateggi 0:c47fb0c1bbf6 115
nikitateggi 1:8316c23ec6b9 116 case 0:
nikitateggi 1:8316c23ec6b9 117 DisableTouch();
nikitateggi 1:8316c23ec6b9 118 wait_ms(300);
nikitateggi 1:8316c23ec6b9 119
nikitateggi 1:8316c23ec6b9 120 state=nstate;
nikitateggi 1:8316c23ec6b9 121 EnableTouch();
nikitateggi 1:8316c23ec6b9 122
nikitateggi 1:8316c23ec6b9 123 break;
nikitateggi 1:8316c23ec6b9 124
nikitateggi 0:c47fb0c1bbf6 125 case 1:
nikitateggi 1:8316c23ec6b9 126 screen_main(); // glc main screen
nikitateggi 1:8316c23ec6b9 127 state1=0;
nikitateggi 1:8316c23ec6b9 128 state=1;
nikitateggi 1:8316c23ec6b9 129 nstate=state;
nikitateggi 1:8316c23ec6b9 130 flag=0;
nikitateggi 1:8316c23ec6b9 131 ecg_flag=0;
nikitateggi 1:8316c23ec6b9 132 glc_flag=0;
nikitateggi 1:8316c23ec6b9 133
nikitateggi 1:8316c23ec6b9 134 break;
nikitateggi 1:8316c23ec6b9 135
nikitateggi 1:8316c23ec6b9 136 case 2:
nikitateggi 1:8316c23ec6b9 137 screen_main_1(); // glc main screen
nikitateggi 0:c47fb0c1bbf6 138 state1=0;
nikitateggi 0:c47fb0c1bbf6 139 state=2;
nikitateggi 1:8316c23ec6b9 140 nstate=state;
nikitateggi 1:8316c23ec6b9 141
nikitateggi 0:c47fb0c1bbf6 142
nikitateggi 0:c47fb0c1bbf6 143 break;
nikitateggi 0:c47fb0c1bbf6 144
nikitateggi 1:8316c23ec6b9 145 case 3:
nikitateggi 1:8316c23ec6b9 146 if (flag==0)
nikitateggi 1:8316c23ec6b9 147 {
nikitateggi 1:8316c23ec6b9 148 pid=pid+1;
nikitateggi 1:8316c23ec6b9 149 screen_main_2(pid);
nikitateggi 1:8316c23ec6b9 150 sd_open_GLCfile(pid);
nikitateggi 1:8316c23ec6b9 151 sd_close();
nikitateggi 1:8316c23ec6b9 152 sd_open_ECGfile(pid);
nikitateggi 1:8316c23ec6b9 153 sd_close();
nikitateggi 1:8316c23ec6b9 154 sd_open_BPfile(pid);
nikitateggi 1:8316c23ec6b9 155 sd_close();
nikitateggi 1:8316c23ec6b9 156 flag=1;
nikitateggi 1:8316c23ec6b9 157 }
nikitateggi 1:8316c23ec6b9 158 else
nikitateggi 1:8316c23ec6b9 159 {
nikitateggi 1:8316c23ec6b9 160 screen_main_2(pid);
nikitateggi 1:8316c23ec6b9 161 }
nikitateggi 1:8316c23ec6b9 162
nikitateggi 1:8316c23ec6b9 163 state1=0;
nikitateggi 1:8316c23ec6b9 164 state=3;
nikitateggi 1:8316c23ec6b9 165 nstate=state;
nikitateggi 1:8316c23ec6b9 166 break;
nikitateggi 0:c47fb0c1bbf6 167
nikitateggi 1:8316c23ec6b9 168 case 4:
nikitateggi 1:8316c23ec6b9 169 if (glc_flag==1)
nikitateggi 1:8316c23ec6b9 170 {
nikitateggi 1:8316c23ec6b9 171 screen_again(); //bp main screen
nikitateggi 1:8316c23ec6b9 172 state1=0;
nikitateggi 1:8316c23ec6b9 173 state=7;
nikitateggi 1:8316c23ec6b9 174 nstate=state;
nikitateggi 1:8316c23ec6b9 175 }
nikitateggi 1:8316c23ec6b9 176 else
nikitateggi 1:8316c23ec6b9 177 { screen_glc();
nikitateggi 0:c47fb0c1bbf6 178 state1=0;
nikitateggi 0:c47fb0c1bbf6 179 state=4;
nikitateggi 1:8316c23ec6b9 180 nstate=state;
nikitateggi 1:8316c23ec6b9 181 }
nikitateggi 0:c47fb0c1bbf6 182 break;
nikitateggi 1:8316c23ec6b9 183
nikitateggi 1:8316c23ec6b9 184
nikitateggi 1:8316c23ec6b9 185 case 5:
nikitateggi 1:8316c23ec6b9 186 if (ecg_flag==1)
nikitateggi 1:8316c23ec6b9 187 {
nikitateggi 1:8316c23ec6b9 188 screen_again();
nikitateggi 1:8316c23ec6b9 189 state1=0;
nikitateggi 1:8316c23ec6b9 190 state=7;
nikitateggi 1:8316c23ec6b9 191 nstate=state;
nikitateggi 1:8316c23ec6b9 192 }
nikitateggi 1:8316c23ec6b9 193
nikitateggi 1:8316c23ec6b9 194 else
nikitateggi 1:8316c23ec6b9 195 {
nikitateggi 1:8316c23ec6b9 196 screen_ecg(); //bp main screen
nikitateggi 1:8316c23ec6b9 197 state1=0;
nikitateggi 1:8316c23ec6b9 198 state=5;
nikitateggi 1:8316c23ec6b9 199 nstate=state;
nikitateggi 1:8316c23ec6b9 200 }
nikitateggi 1:8316c23ec6b9 201 break;
nikitateggi 1:8316c23ec6b9 202
nikitateggi 1:8316c23ec6b9 203 case 7:
nikitateggi 1:8316c23ec6b9 204 glc(pid);
nikitateggi 0:c47fb0c1bbf6 205
nikitateggi 1:8316c23ec6b9 206
nikitateggi 1:8316c23ec6b9 207 glc_flag=1;
nikitateggi 1:8316c23ec6b9 208 wait(5);
nikitateggi 1:8316c23ec6b9 209 // glc_4(mgdll);
nikitateggi 1:8316c23ec6b9 210 state1=9;
nikitateggi 1:8316c23ec6b9 211 // gc.printf("%d", state);
nikitateggi 1:8316c23ec6b9 212 break;
nikitateggi 1:8316c23ec6b9 213
nikitateggi 1:8316c23ec6b9 214 case 8:
nikitateggi 1:8316c23ec6b9 215
nikitateggi 1:8316c23ec6b9 216 ecg_countdown();
nikitateggi 1:8316c23ec6b9 217 ecg(pid);
nikitateggi 1:8316c23ec6b9 218 state1=0;
nikitateggi 1:8316c23ec6b9 219 screen_ecg_2();
nikitateggi 1:8316c23ec6b9 220 state=6;
nikitateggi 1:8316c23ec6b9 221 nstate=state;
nikitateggi 1:8316c23ec6b9 222 ecg_flag=1;
nikitateggi 1:8316c23ec6b9 223 // ble.printf("ecg");
nikitateggi 1:8316c23ec6b9 224 break;
nikitateggi 1:8316c23ec6b9 225
nikitateggi 1:8316c23ec6b9 226
nikitateggi 1:8316c23ec6b9 227 case 9:
nikitateggi 1:8316c23ec6b9 228
nikitateggi 1:8316c23ec6b9 229 screen_glc_2();
nikitateggi 1:8316c23ec6b9 230 state1=0;
nikitateggi 1:8316c23ec6b9 231 state=6;
nikitateggi 1:8316c23ec6b9 232 nstate=state;
nikitateggi 1:8316c23ec6b9 233
nikitateggi 1:8316c23ec6b9 234
nikitateggi 1:8316c23ec6b9 235 break;
nikitateggi 1:8316c23ec6b9 236 default :
nikitateggi 1:8316c23ec6b9 237 state1=nstate1;
nikitateggi 1:8316c23ec6b9 238 break;
nikitateggi 1:8316c23ec6b9 239
nikitateggi 0:c47fb0c1bbf6 240
nikitateggi 0:c47fb0c1bbf6 241 }
nikitateggi 0:c47fb0c1bbf6 242
nikitateggi 0:c47fb0c1bbf6 243
nikitateggi 0:c47fb0c1bbf6 244
nikitateggi 0:c47fb0c1bbf6 245
nikitateggi 0:c47fb0c1bbf6 246
nikitateggi 0:c47fb0c1bbf6 247 }
nikitateggi 0:c47fb0c1bbf6 248
nikitateggi 0:c47fb0c1bbf6 249
nikitateggi 0:c47fb0c1bbf6 250 }
nikitateggi 0:c47fb0c1bbf6 251
nikitateggi 0:c47fb0c1bbf6 252
nikitateggi 0:c47fb0c1bbf6 253
nikitateggi 0:c47fb0c1bbf6 254
nikitateggi 0:c47fb0c1bbf6 255
nikitateggi 0:c47fb0c1bbf6 256
nikitateggi 1:8316c23ec6b9 257