PES 4 - Smart Medication Dispenser / PES4_ProgrammeforDesignReview2

Dependencies:   SDFileSystem mbed

Fork of PES4_Programme by PES 4 - Smart Medication Dispenser

Committer:
aeschsim
Date:
Wed Apr 11 15:19:22 2018 +0000
Revision:
95:b02e1b2a6cbd
Parent:
94:b24d2b432b27
Child:
96:676d01c86b61
demo tool is running now, changed setRGB

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cittecla 3:94026b29e994 1 #include "main.h"
aeschsim 95:b02e1b2a6cbd 2 #define FADESPEED 4
aeschsim 95:b02e1b2a6cbd 3 #define DEMOTIME 20
itslinear 17:bbafd216e059 4
aeschsim 87:a0b824c35b1b 5 int state = 44; // 44 für Initialisierung!
itslinear 17:bbafd216e059 6
cittecla 41:f054a83f9556 7 int oldState;
cittecla 2:72886e996098 8
aeschsim 95:b02e1b2a6cbd 9 Serial pc(USBTX, USBRX,460800);
cittecla 93:32cd0af29c2b 10
aeschsim 60:7554e4272b3b 11 DigitalIn lichtschranke(PC_5);
aeschsim 60:7554e4272b3b 12 InterruptIn userButton1(PB_5);
aeschsim 60:7554e4272b3b 13 InterruptIn userButton2(PB_4);
aeschsim 60:7554e4272b3b 14 DigitalIn glasDetection(PA_10);
aeschsim 60:7554e4272b3b 15 PwmOut summer(PC_8);
aeschsim 59:1867088695f3 16
aeschsim 40:b5e533e1e033 17 /* PWM Test Tool */
aeschsim 40:b5e533e1e033 18 int channel;
aeschsim 40:b5e533e1e033 19 int dutyCycle;
cittecla 55:bdab541f434d 20 int day;
cittecla 55:bdab541f434d 21 int moment;
itslinear 73:7fd3701def5b 22 s_user prescription[2];
cittecla 2:72886e996098 23
aeschsim 59:1867088695f3 24 /* Demo Tool */
aeschsim 59:1867088695f3 25 uint32_t color = 0;
aeschsim 59:1867088695f3 26 int colorTime = 0;
aeschsim 59:1867088695f3 27 int r,b,g;
aeschsim 59:1867088695f3 28
itslinear 72:172b40dd16ee 29 /* SD write Test*/
itslinear 72:172b40dd16ee 30 s_time medicationTime;
itslinear 72:172b40dd16ee 31 s_time outputTime;
itslinear 77:c2e22d1e5d44 32 s_time currentTime;
itslinear 72:172b40dd16ee 33 s_medContainer medication;
itslinear 80:6e3eb8246ced 34 s_medInventory medInventory;
itslinear 72:172b40dd16ee 35 int success = 1;
itslinear 80:6e3eb8246ced 36 char user = 1;
itslinear 80:6e3eb8246ced 37 char fail[] = "shit happens";
itslinear 80:6e3eb8246ced 38 char *send;
itslinear 80:6e3eb8246ced 39
itslinear 73:7fd3701def5b 40
aeschsim 87:a0b824c35b1b 41 /* Switch Summer On/Off for demo Tool (Interrupt)*/
aeschsim 95:b02e1b2a6cbd 42 extern int countcount = 0;
aeschsim 60:7554e4272b3b 43 void summ(void)
aeschsim 60:7554e4272b3b 44 {
aeschsim 95:b02e1b2a6cbd 45 //userButton1.disable_irq();
aeschsim 60:7554e4272b3b 46 if(summer.read()>0) {
aeschsim 60:7554e4272b3b 47 summer.write(0.0f);
aeschsim 60:7554e4272b3b 48 } else {
aeschsim 60:7554e4272b3b 49 summer.write(0.5f);
aeschsim 60:7554e4272b3b 50 }
aeschsim 95:b02e1b2a6cbd 51 countcount++;
aeschsim 95:b02e1b2a6cbd 52 printf("%d interrupt\n\r",countcount);
aeschsim 95:b02e1b2a6cbd 53 //wait_ms(50);
aeschsim 95:b02e1b2a6cbd 54 //userButton1.enable_irq();
aeschsim 60:7554e4272b3b 55 }
aeschsim 60:7554e4272b3b 56
aeschsim 60:7554e4272b3b 57
cittecla 93:32cd0af29c2b 58
cittecla 2:72886e996098 59 int main()
cittecla 2:72886e996098 60 {
cittecla 93:32cd0af29c2b 61
itslinear 73:7fd3701def5b 62 /* SD write Test*/
aeschsim 79:c825bd2dea81 63
itslinear 73:7fd3701def5b 64 medication.container[0] = 1;
itslinear 73:7fd3701def5b 65 medication.container[1] = 2;
itslinear 73:7fd3701def5b 66 medication.container[2] = 2;
itslinear 73:7fd3701def5b 67 medication.container[3] = 1;
itslinear 73:7fd3701def5b 68 medication.container[4] = 1;
itslinear 73:7fd3701def5b 69 medication.container[5] = 2;
itslinear 73:7fd3701def5b 70
itslinear 80:6e3eb8246ced 71 /*
itslinear 80:6e3eb8246ced 72 medInventory.container[0] = 5;
itslinear 80:6e3eb8246ced 73 medInventory.container[1] = 10;
itslinear 80:6e3eb8246ced 74 medInventory.container[2] = 15;
itslinear 80:6e3eb8246ced 75 medInventory.container[3] = 20;
itslinear 80:6e3eb8246ced 76 medInventory.container[4] = 25;
itslinear 80:6e3eb8246ced 77 medInventory.container[5] = 30;
itslinear 80:6e3eb8246ced 78 */
itslinear 73:7fd3701def5b 79 /************/
itslinear 73:7fd3701def5b 80
cittecla 93:32cd0af29c2b 81
cittecla 2:72886e996098 82 printf("start...\r\n");
cittecla 2:72886e996098 83
aeschsim 34:9d6dd3a12641 84 while(1) {
cittecla 41:f054a83f9556 85 if(state != oldState) {
cittecla 58:cda5298c9b7f 86 printf("\r\nstate: %d\r\n",state);
cittecla 41:f054a83f9556 87 oldState = state;
aeschsim 34:9d6dd3a12641 88 }
aeschsim 34:9d6dd3a12641 89 switch (state) {
aeschsim 34:9d6dd3a12641 90 case 0:
aeschsim 34:9d6dd3a12641 91 printf("Hello World");
aeschsim 40:b5e533e1e033 92 state = 47;
aeschsim 34:9d6dd3a12641 93 break;
itslinear 92:96ad0a9ff337 94
aeschsim 34:9d6dd3a12641 95 case 1:
aeschsim 34:9d6dd3a12641 96 break;
itslinear 90:d0805b58b0ae 97
aeschsim 34:9d6dd3a12641 98 case 2:
aeschsim 34:9d6dd3a12641 99 break;
aeschsim 34:9d6dd3a12641 100 case 3:
aeschsim 34:9d6dd3a12641 101 break;
cittecla 2:72886e996098 102
aeschsim 34:9d6dd3a12641 103 case 10:
aeschsim 34:9d6dd3a12641 104 break;
aeschsim 34:9d6dd3a12641 105 case 11:
aeschsim 34:9d6dd3a12641 106 break;
cittecla 2:72886e996098 107
aeschsim 34:9d6dd3a12641 108 case 15:
aeschsim 34:9d6dd3a12641 109 break;
aeschsim 34:9d6dd3a12641 110 case 16:
aeschsim 34:9d6dd3a12641 111 break;
aeschsim 34:9d6dd3a12641 112 case 17:
aeschsim 34:9d6dd3a12641 113 break;
aeschsim 34:9d6dd3a12641 114
aeschsim 34:9d6dd3a12641 115 case 25:
aeschsim 34:9d6dd3a12641 116 break;
aeschsim 34:9d6dd3a12641 117 case 26:
aeschsim 34:9d6dd3a12641 118 break;
aeschsim 34:9d6dd3a12641 119 case 27:
aeschsim 34:9d6dd3a12641 120 break;
aeschsim 34:9d6dd3a12641 121 case 28:
aeschsim 34:9d6dd3a12641 122 break;
cittecla 2:72886e996098 123
cittecla 2:72886e996098 124
aeschsim 34:9d6dd3a12641 125 case 35:
aeschsim 34:9d6dd3a12641 126 break;
aeschsim 34:9d6dd3a12641 127 case 36:
aeschsim 34:9d6dd3a12641 128 break;
aeschsim 34:9d6dd3a12641 129 case 37:
aeschsim 34:9d6dd3a12641 130 break;
aeschsim 34:9d6dd3a12641 131 case 38:
aeschsim 34:9d6dd3a12641 132 break;
aeschsim 27:bf0577ecfa6e 133
aeschsim 76:53a25f1dc2b6 134
aeschsim 40:b5e533e1e033 135 /**************************************************************/
aeschsim 40:b5e533e1e033 136 /* Test Zone */
cittecla 53:1c61cadbcb35 137
EHess 85:04fe3dff23f4 138 /* Speedtest Servo */
EHess 85:04fe3dff23f4 139 case 41:
EHess 85:04fe3dff23f4 140 setSpeed(1, 2);
EHess 85:04fe3dff23f4 141 wait(3);
EHess 85:04fe3dff23f4 142 setSpeed(1, 0);
EHess 85:04fe3dff23f4 143 wait(2);
EHess 85:04fe3dff23f4 144 setSpeed(1, 1);
EHess 85:04fe3dff23f4 145 wait(3);
EHess 85:04fe3dff23f4 146 state = 43;
EHess 85:04fe3dff23f4 147 break;
itslinear 90:d0805b58b0ae 148
EHess 83:d327a532c0ad 149 /* DutyCycle */
EHess 84:14ed3d02e782 150 case 42:
EHess 84:14ed3d02e782 151 printf("case 42:\r\n");
EHess 84:14ed3d02e782 152 initInterrupt();
EHess 84:14ed3d02e782 153 printf("initInterrupt\r\n");
EHess 84:14ed3d02e782 154 enableContainer(1);
itslinear 90:d0805b58b0ae 155 while(1) {
EHess 84:14ed3d02e782 156 printf("%i\r\n", getDutyCycle());
EHess 84:14ed3d02e782 157 printf("--- END ---\r\n");
EHess 84:14ed3d02e782 158 wait(0.2);
EHess 84:14ed3d02e782 159 }
EHess 84:14ed3d02e782 160 break;
itslinear 90:d0805b58b0ae 161
EHess 84:14ed3d02e782 162 /* Drehung 90° */
EHess 83:d327a532c0ad 163 case 43:
EHess 83:d327a532c0ad 164 printf("case 43:\r\n");
EHess 83:d327a532c0ad 165 initInterrupt();
EHess 83:d327a532c0ad 166 printf("initInterrupt\r\n");
EHess 83:d327a532c0ad 167 enableContainer(1);
itslinear 90:d0805b58b0ae 168 while(1) {
EHess 84:14ed3d02e782 169 nextPosition(1);
EHess 83:d327a532c0ad 170 printf("--- END ---\r\n");
EHess 85:04fe3dff23f4 171 wait(3);
EHess 83:d327a532c0ad 172 }
EHess 83:d327a532c0ad 173 break;
cittecla 53:1c61cadbcb35 174
cittecla 52:701d0c2f47d7 175 /* init PWM board */
cittecla 52:701d0c2f47d7 176 case 44:
cittecla 55:bdab541f434d 177 printf("Init PWM\r\n");
cittecla 53:1c61cadbcb35 178 initPWM(50);
cittecla 53:1c61cadbcb35 179 enableOutput();
aeschsim 87:a0b824c35b1b 180 state = 47; // 47 for state switch
cittecla 52:701d0c2f47d7 181 break;
aeschsim 40:b5e533e1e033 182
aeschsim 40:b5e533e1e033 183 /* Time test tool: set Time */
aeschsim 34:9d6dd3a12641 184 case 45:
aeschsim 34:9d6dd3a12641 185 s_time time;
aeschsim 34:9d6dd3a12641 186 time.second = 30;
aeschsim 34:9d6dd3a12641 187 time.minute = 53;
aeschsim 34:9d6dd3a12641 188 time.hour = 12;
aeschsim 34:9d6dd3a12641 189 time.day = 27;
aeschsim 34:9d6dd3a12641 190 time.weekday = 2;
aeschsim 34:9d6dd3a12641 191 time.month = 3;
aeschsim 34:9d6dd3a12641 192 time.year = 18;
cittecla 55:bdab541f434d 193 printf("set now time\r\n");
aeschsim 34:9d6dd3a12641 194 setTime(&time);
cittecla 55:bdab541f434d 195 printf("read time: %02d:%02d:%02d, %02d.%02d.20%02d, weekday: %d\r\n",time.hour, time.minute, time.second, time.day, time.month, time.year, time.weekday);
aeschsim 40:b5e533e1e033 196 state = 47;
cittecla 55:bdab541f434d 197 printf("change state to: %d\r\n",state);
aeschsim 34:9d6dd3a12641 198 break;
aeschsim 40:b5e533e1e033 199
aeschsim 40:b5e533e1e033 200 /* Time test tool: get Time */
aeschsim 34:9d6dd3a12641 201 case 46:
aeschsim 34:9d6dd3a12641 202 wait(5);
aeschsim 34:9d6dd3a12641 203 time = getTime();
cittecla 55:bdab541f434d 204 printf("read time: %02d:%02d:%02d, %02d.%02d.20%02d, weekday: %d\r\n",time.hour, time.minute, time.second, time.day, time.month, time.year, time.weekday);
aeschsim 40:b5e533e1e033 205 state = 47;
aeschsim 40:b5e533e1e033 206 break;
aeschsim 40:b5e533e1e033 207
aeschsim 40:b5e533e1e033 208 /* Console State Switch */
aeschsim 40:b5e533e1e033 209 case 47:
cittecla 55:bdab541f434d 210 printf("\n\rState Switch: Enter next State: \n\r");
aeschsim 87:a0b824c35b1b 211 printf("41\tSet Speed Function test\n\r");
aeschsim 87:a0b824c35b1b 212 printf("42\tGet Duty Cycle Function test\n\r");
aeschsim 87:a0b824c35b1b 213 printf("43\tTurn 90deg Function test\n\r");
aeschsim 87:a0b824c35b1b 214 printf("44\tInit Servoboard\n\r");
aeschsim 76:53a25f1dc2b6 215 printf("45\tset Time\n\r46\tread Time\n\r47\tState Switch\n\r48\tServo Board Test Tool\n\r");
aeschsim 76:53a25f1dc2b6 216 printf("49\tenable servo output\n\r50\tdisable servo output\n\r");
aeschsim 76:53a25f1dc2b6 217 printf("51\ttest SD Card\n\r52\tread medication\n\r53\tMedication display test tool\n\r");
aeschsim 70:cc7ed2325202 218 printf("54\tWrite Medication\n\r55\tDemo Tool for Summer and RGB LED\n\r");
aeschsim 87:a0b824c35b1b 219 printf("60\tWrite Medication Protocol\n\r");
aeschsim 87:a0b824c35b1b 220 printf("61\twrite_medInventory\n\r");
aeschsim 87:a0b824c35b1b 221 printf("62\twrite_medError\n\r");
aeschsim 87:a0b824c35b1b 222 printf("63\terase_errorPotocol\n\r");
itslinear 92:96ad0a9ff337 223 printf("64\terase_medPotocol\n\r");
itslinear 92:96ad0a9ff337 224 printf("65\tread_medPotocol\n\r");
itslinear 92:96ad0a9ff337 225 printf("66\tread_medInventory\n\r");
itslinear 92:96ad0a9ff337 226 printf("67\tread_medError\n\r");
itslinear 92:96ad0a9ff337 227 printf("68\tread_Inventory\n\r");
cittecla 94:b24d2b432b27 228
cittecla 93:32cd0af29c2b 229 scanf("%d", &state);
cittecla 55:bdab541f434d 230 printf("Switch to State %d\n\r",state);
aeschsim 40:b5e533e1e033 231 fflush(stdin);
aeschsim 34:9d6dd3a12641 232 break;
aeschsim 40:b5e533e1e033 233
aeschsim 40:b5e533e1e033 234 /* Servo-Board Test Tool */
aeschsim 34:9d6dd3a12641 235 case 48:
cittecla 55:bdab541f434d 236 printf("\n\r\n\rServo-Board Test Tool\n\rEnter Channel Number and then Duty Cycle\n\r");
cittecla 55:bdab541f434d 237 printf("for exit, enter Channel > 15\n\r");
aeschsim 40:b5e533e1e033 238 channel = 0;
aeschsim 40:b5e533e1e033 239 while (channel < 16) {
cittecla 55:bdab541f434d 240 printf("Channel Number: ");
cittecla 93:32cd0af29c2b 241 scanf("%d", &channel);
cittecla 55:bdab541f434d 242 printf("\r\nchannel: %d\n\rDuty Cycle 0..4095: ",channel);
cittecla 93:32cd0af29c2b 243 scanf("%d", &dutyCycle);
cittecla 55:bdab541f434d 244 printf("\n\r%d\n\r",dutyCycle);
aeschsim 46:cdc24a24e4e3 245 setPWM((char)channel, (int)dutyCycle);
aeschsim 40:b5e533e1e033 246 fflush(stdin);
aeschsim 40:b5e533e1e033 247 }
cittecla 55:bdab541f434d 248 printf("leave Servo-Board Test Tool\n\r");
aeschsim 40:b5e533e1e033 249 state = 47;
aeschsim 40:b5e533e1e033 250 break;
aeschsim 40:b5e533e1e033 251
aeschsim 40:b5e533e1e033 252 case 49:
cittecla 42:ba59ed6a2a06 253 enableOutput();
cittecla 55:bdab541f434d 254 printf("Servo output enabled\r\n\n");
aeschsim 40:b5e533e1e033 255 state = 47;
aeschsim 34:9d6dd3a12641 256 break;
cittecla 2:72886e996098 257
aeschsim 34:9d6dd3a12641 258 case 50:
cittecla 42:ba59ed6a2a06 259 disableOutput();
cittecla 55:bdab541f434d 260 printf("Servo output disabled\r\n\n");
aeschsim 40:b5e533e1e033 261 state = 47;
aeschsim 40:b5e533e1e033 262 break;
cittecla 53:1c61cadbcb35 263
cittecla 42:ba59ed6a2a06 264 case 51:
cittecla 52:701d0c2f47d7 265 testSd();
cittecla 55:bdab541f434d 266 printf("\rSD Card test finished\r\n\n");
cittecla 55:bdab541f434d 267 state = 47;
cittecla 55:bdab541f434d 268 break;
cittecla 58:cda5298c9b7f 269
cittecla 58:cda5298c9b7f 270
cittecla 55:bdab541f434d 271 case 52:
itslinear 73:7fd3701def5b 272 prescription[1] = readMedication(1);
itslinear 73:7fd3701def5b 273 if(prescription[1].valid) {
cittecla 56:218601547d13 274 printf("\rread successful\r\n\n");
cittecla 55:bdab541f434d 275 } else {
cittecla 55:bdab541f434d 276 printf("\rread failed\r\n\n");
cittecla 55:bdab541f434d 277 }
cittecla 42:ba59ed6a2a06 278 state = 47;
cittecla 53:1c61cadbcb35 279 break;
cittecla 55:bdab541f434d 280
cittecla 55:bdab541f434d 281 case 53:
itslinear 73:7fd3701def5b 282 if(prescription[1].valid == false) {
cittecla 57:79fed71031da 283 printf("\r\nNo valid data in struct, try to run case 52\r\n\n");
cittecla 55:bdab541f434d 284 } else {
cittecla 55:bdab541f434d 285 printf("\r\nMedication display test tool:\r\n");
cittecla 55:bdab541f434d 286 printf("Enter Day (0..6) and Moment (0..4)\r\nTo exit enter Day > 6:\r\n");
cittecla 55:bdab541f434d 287 day = 0;
cittecla 55:bdab541f434d 288 while (day < 7) {
cittecla 55:bdab541f434d 289 printf("\r\nDay Number: ");
cittecla 93:32cd0af29c2b 290 scanf("%d", &day);
cittecla 55:bdab541f434d 291 if(day < 7) {
cittecla 55:bdab541f434d 292 printf("\r\nDay: %d\n\rMoment 0..3: ",day);
cittecla 93:32cd0af29c2b 293 scanf("%d", &moment);
cittecla 55:bdab541f434d 294 printf("\r\nMedication for weekday %d Moment %d is ",day,moment);
cittecla 55:bdab541f434d 295 for(int i=0; i<6; i++) {
itslinear 73:7fd3701def5b 296 printf("%d", prescription[1].medication.day[day].moment[moment].medContainer.container[i]);
cittecla 55:bdab541f434d 297 }
itslinear 73:7fd3701def5b 298 printf("\r\nThe alarm clock is set for %02d:%02d",prescription[1].medication.day[day].moment[moment].time.hour,prescription[1].medication.day[day].moment[moment].time.minute);
cittecla 55:bdab541f434d 299 }
cittecla 55:bdab541f434d 300 printf("\r\n");
cittecla 55:bdab541f434d 301 fflush(stdin);
cittecla 55:bdab541f434d 302 }
cittecla 55:bdab541f434d 303 printf("exit Tool\n\r");
cittecla 55:bdab541f434d 304 }
cittecla 56:218601547d13 305 state = 47;
cittecla 56:218601547d13 306 break;
cittecla 58:cda5298c9b7f 307 case 54:
itslinear 73:7fd3701def5b 308 writeMedication(0,prescription[1]);
cittecla 58:cda5298c9b7f 309 state = 47;
cittecla 58:cda5298c9b7f 310 break;
aeschsim 59:1867088695f3 311 case 55:
aeschsim 59:1867088695f3 312 /* Demo Tool */
PESGruppe1 61:086bcd5ca968 313 enableOutput();
PESGruppe1 61:086bcd5ca968 314 printf("Servo output enabled\r\n\n");
aeschsim 70:cc7ed2325202 315 summer.period_us(500);
aeschsim 70:cc7ed2325202 316 summer.write(0.5f);
aeschsim 95:b02e1b2a6cbd 317 wait(1);
aeschsim 70:cc7ed2325202 318 summer.write(0.0f);
PESGruppe1 61:086bcd5ca968 319
aeschsim 70:cc7ed2325202 320 userButton1.fall(&summ);
aeschsim 70:cc7ed2325202 321
aeschsim 70:cc7ed2325202 322 printf("Summer Interrupt on Button 0 enabled\n\r");
aeschsim 60:7554e4272b3b 323
PESGruppe1 61:086bcd5ca968 324 color = 0xFFFFFF;
PESGruppe1 61:086bcd5ca968 325 colorTime = 0;
PESGruppe1 61:086bcd5ca968 326 setLED(0,color);
PESGruppe1 61:086bcd5ca968 327 wait(5);
aeschsim 70:cc7ed2325202 328
aeschsim 95:b02e1b2a6cbd 329 printf("start fading loop for %d loops\n\r",DEMOTIME);
aeschsim 59:1867088695f3 330 while(colorTime < DEMOTIME) {
aeschsim 95:b02e1b2a6cbd 331 for(r = 0; r < 255; r++) {
aeschsim 59:1867088695f3 332 color &= 0x00FFFF;
PESGruppe1 61:086bcd5ca968 333 color |= (r<<16);
PESGruppe1 61:086bcd5ca968 334 setLED(0,color);
aeschsim 59:1867088695f3 335 wait_ms(FADESPEED);
aeschsim 59:1867088695f3 336 }
aeschsim 60:7554e4272b3b 337 for(b = 255; b >= 0; b--) {
aeschsim 59:1867088695f3 338 color &= 0xFFFF00;
PESGruppe1 61:086bcd5ca968 339 color |= b;
PESGruppe1 61:086bcd5ca968 340 setLED(0,color);
aeschsim 59:1867088695f3 341 wait_ms(FADESPEED);
aeschsim 59:1867088695f3 342 }
aeschsim 95:b02e1b2a6cbd 343 for(g = 0; g < 255; g++) {
aeschsim 59:1867088695f3 344 color &= 0xFF00FF;
PESGruppe1 61:086bcd5ca968 345 color |= (g<<8);
PESGruppe1 61:086bcd5ca968 346 setLED(0,color);
aeschsim 59:1867088695f3 347 wait_ms(FADESPEED);
aeschsim 59:1867088695f3 348 }
aeschsim 59:1867088695f3 349 for(r = 255; r > 0; r--) {
aeschsim 59:1867088695f3 350 color &= 0x00FFFF;
PESGruppe1 61:086bcd5ca968 351 color |= (r<<16);
PESGruppe1 61:086bcd5ca968 352 setLED(0,color);
aeschsim 59:1867088695f3 353 wait_ms(FADESPEED);
aeschsim 59:1867088695f3 354 }
aeschsim 95:b02e1b2a6cbd 355 for(b = 0; b < 255; b++) {
aeschsim 59:1867088695f3 356 color &= 0xFFFF00;
PESGruppe1 61:086bcd5ca968 357 color |= b;
PESGruppe1 61:086bcd5ca968 358 setLED(0,color);
aeschsim 59:1867088695f3 359 wait_ms(FADESPEED);
aeschsim 59:1867088695f3 360 }
aeschsim 59:1867088695f3 361 for (g = 255; g > 0; g--) {
aeschsim 59:1867088695f3 362 color &= 0xFF00FF;
PESGruppe1 61:086bcd5ca968 363 color |= (g<<8);
PESGruppe1 61:086bcd5ca968 364 setLED(0,color);
aeschsim 59:1867088695f3 365 wait_ms(FADESPEED);
aeschsim 59:1867088695f3 366 }
aeschsim 59:1867088695f3 367 colorTime++;
aeschsim 59:1867088695f3 368 }
aeschsim 70:cc7ed2325202 369 printf("exit demo tool\n\r");
aeschsim 95:b02e1b2a6cbd 370 state = 47;
aeschsim 59:1867088695f3 371 break;
itslinear 72:172b40dd16ee 372
itslinear 73:7fd3701def5b 373 case 60:
itslinear 92:96ad0a9ff337 374 outputTime = getTime();
itslinear 92:96ad0a9ff337 375 medicationTime = getTime();
itslinear 73:7fd3701def5b 376 printf("write_medProtocol\n\r");
itslinear 72:172b40dd16ee 377 write_medProtocol(medicationTime, outputTime, medication, success, user);
itslinear 73:7fd3701def5b 378 printf("done\n\r");
itslinear 73:7fd3701def5b 379 state = 47;
itslinear 73:7fd3701def5b 380
itslinear 72:172b40dd16ee 381 break;
itslinear 72:172b40dd16ee 382
itslinear 73:7fd3701def5b 383 case 61:
itslinear 81:a869abf56e85 384 medInventory.currentTime = getTime();
itslinear 73:7fd3701def5b 385 printf("write_medInventory\n\r");
itslinear 80:6e3eb8246ced 386 //write_medInventory(medInventory,currentTime,med1,med2,med3,med4,med5,med6);
itslinear 80:6e3eb8246ced 387 write_medInventory(medInventory);
itslinear 73:7fd3701def5b 388 state = 47;
itslinear 72:172b40dd16ee 389
itslinear 73:7fd3701def5b 390 break;
itslinear 72:172b40dd16ee 391
itslinear 73:7fd3701def5b 392 case 62:
itslinear 73:7fd3701def5b 393 printf("write_medError\n\r");
itslinear 81:a869abf56e85 394 write_medError(fail, medicationTime);
itslinear 73:7fd3701def5b 395 state = 47;
itslinear 72:172b40dd16ee 396
itslinear 73:7fd3701def5b 397 break;
itslinear 72:172b40dd16ee 398
itslinear 77:c2e22d1e5d44 399 case 63:
itslinear 77:c2e22d1e5d44 400 printf("erase_errorPotocol\n\r");
itslinear 77:c2e22d1e5d44 401 erase_medError();
itslinear 77:c2e22d1e5d44 402 state = 47;
aeschsim 79:c825bd2dea81 403
itslinear 77:c2e22d1e5d44 404 break;
itslinear 72:172b40dd16ee 405
itslinear 77:c2e22d1e5d44 406 case 64:
itslinear 77:c2e22d1e5d44 407 printf("erase_medPotocol\n\r");
itslinear 77:c2e22d1e5d44 408 erase_medProtocol();
itslinear 77:c2e22d1e5d44 409 state = 47;
aeschsim 79:c825bd2dea81 410
itslinear 77:c2e22d1e5d44 411 break;
aeschsim 79:c825bd2dea81 412
aeschsim 82:2fc026430ff2 413
itslinear 80:6e3eb8246ced 414 case 65:
itslinear 80:6e3eb8246ced 415 printf("read_medPotocol\n\r");
itslinear 80:6e3eb8246ced 416 send = read_medProtocol(user);
itslinear 80:6e3eb8246ced 417 printf("%s", send);
itslinear 80:6e3eb8246ced 418 state = 47;
itslinear 80:6e3eb8246ced 419
itslinear 77:c2e22d1e5d44 420 break;
itslinear 80:6e3eb8246ced 421
itslinear 80:6e3eb8246ced 422 case 66:
itslinear 80:6e3eb8246ced 423 printf("read_medInventory\n\r");
itslinear 80:6e3eb8246ced 424 medInventory = read_medInventory();
itslinear 80:6e3eb8246ced 425 printf("done\r\n");
itslinear 81:a869abf56e85 426 printf("%s\r\n%d\r\n%s\r\n%d\r\n%s\r\n%d\r\n%s\r\n%d\r\n%s\r\n%d\r\n%s\r\n%d\r\n", medInventory.pill[0], medInventory.medContainer.container[0], medInventory.pill[1], medInventory.medContainer.container[1], medInventory.pill[2], medInventory.medContainer.container[2], medInventory.pill[3], medInventory.medContainer.container[3], medInventory.pill[4], medInventory.medContainer.container[4], medInventory.pill[5], medInventory.medContainer.container[5]);
itslinear 80:6e3eb8246ced 427 state = 47;
itslinear 81:a869abf56e85 428
itslinear 81:a869abf56e85 429 break;
itslinear 81:a869abf56e85 430
itslinear 81:a869abf56e85 431 case 67:
itslinear 81:a869abf56e85 432 printf("read_medError\n\r");
itslinear 81:a869abf56e85 433 send = read_medError();
itslinear 81:a869abf56e85 434 printf("%s", send);
itslinear 81:a869abf56e85 435 state = 47;
itslinear 81:a869abf56e85 436
itslinear 80:6e3eb8246ced 437 break;
itslinear 80:6e3eb8246ced 438
itslinear 90:d0805b58b0ae 439 case 68:
itslinear 90:d0805b58b0ae 440 printf("read_Inventory\n\r");
itslinear 90:d0805b58b0ae 441 send = read_Inventory();
itslinear 90:d0805b58b0ae 442 printf("%s", send);
itslinear 90:d0805b58b0ae 443 state = 47;
itslinear 90:d0805b58b0ae 444
itslinear 90:d0805b58b0ae 445 break;
itslinear 90:d0805b58b0ae 446
aeschsim 40:b5e533e1e033 447 default:
aeschsim 40:b5e533e1e033 448 state = 47; /* Go to State Switch */
aeschsim 34:9d6dd3a12641 449 break;
aeschsim 34:9d6dd3a12641 450 }
cittecla 2:72886e996098 451 }
cittecla 55:bdab541f434d 452 printf("exit while 1 loop");
cittecla 2:72886e996098 453 }