PES 4 - Smart Medication Dispenser / PES4_ProgrammeforDesignReview2

Dependencies:   SDFileSystem mbed

Fork of PES4_Programme by PES 4 - Smart Medication Dispenser

Revision:
73:7fd3701def5b
Parent:
72:172b40dd16ee
Child:
74:a4dacab0d3dd
--- a/source/main.cpp	Fri Apr 06 06:51:47 2018 +0000
+++ b/source/main.cpp	Fri Apr 06 09:24:37 2018 +0000
@@ -18,7 +18,7 @@
 int dutyCycle;
 int day;
 int moment;
-s_user user[2];
+s_user prescription[2];
 
 /* Demo Tool */
 uint32_t color = 0;
@@ -28,27 +28,25 @@
 /* SD write Test*/
 
 s_time medicationTime;
-medicationTime.hour = 15;
-medicationTime.minute = 30;
-
 s_time outputTime;
-outputTime.day = getTime().day;
-outputTime.month = getTime().month;
-outputTime.year = getTime().year;
-outputTime.hour = getTime().hour;
-outputTime.minute = getTime().minute;
-
 s_medContainer medication;
-medication.container[0] = 1;
-medication.container[1] = 2;
-medication.container[2] = 2;
-medication.container[3] = 1;
-medication.container[4] = 1;
-medication.container[5] = 2;
+s_medContainer medInventory;
+s_time currentTime;
 
 int success = 1;
+
 char user = 0;
 
+char med1[] = "A";
+char med2[] = "B";
+char med3[] = "C";
+char med4[] = "D";
+char med5[] = "E";
+char med6[] = "F";
+
+char fail[] = "shit happens";
+/*********/
+
 void summ(void)
 {
     if(summer.read()>0) {
@@ -61,6 +59,40 @@
 
 int main()
 {
+    /* SD write Test*/
+    medicationTime.hour = 15;
+    medicationTime.minute = 30;
+
+    outputTime.day = getTime().day;
+    outputTime.month = getTime().month;
+    outputTime.year = getTime().year;
+    outputTime.hour = getTime().hour;
+    outputTime.minute = getTime().minute;
+
+
+    medication.container[0] = 1;
+    medication.container[1] = 2;
+    medication.container[2] = 2;
+    medication.container[3] = 1;
+    medication.container[4] = 1;
+    medication.container[5] = 2;
+
+
+    medInventory.container[0] = 5;
+    medInventory.container[1] = 10;
+    medInventory.container[2] = 15;
+    medInventory.container[3] = 20;
+    medInventory.container[4] = 25;
+    medInventory.container[5] = 30;
+
+
+    currentTime.day = getTime().day;
+    currentTime.month = getTime().month;
+    currentTime.year = getTime().year;
+    currentTime.hour = getTime().hour;
+    currentTime.minute = getTime().minute;
+    /************/
+
     pc.baud(460800);
     printf("start...\r\n");
 
@@ -74,44 +106,44 @@
                 printf("Hello World");
                 state = 47;
                 break;
-            case 1:
-                break;
-            case 2:
-                break;
-            case 3:
-                break;
+                /*            case 1:
+                                break;
+                            case 2:
+                                break;
+                            case 3:
+                                break;
 
-            case 10:
-                break;
-            case 11:
-                break;
+                            case 10:
+                                break;
+                            case 11:
+                                break;
 
-            case 15:
-                break;
-            case 16:
-                break;
-            case 17:
-                break;
+                            case 15:
+                                break;
+                            case 16:
+                                break;
+                            case 17:
+                                break;
 
-            case 25:
-                break;
-            case 26:
-                break;
-            case 27:
-                break;
-            case 28:
-                break;
+                            case 25:
+                                break;
+                            case 26:
+                                break;
+                            case 27:
+                                break;
+                            case 28:
+                                break;
 
 
-            case 35:
-                break;
-            case 36:
-                break;
-            case 37:
-                break;
-            case 38:
-                break;
-
+                            case 35:
+                                break;
+                            case 36:
+                                break;
+                            case 37:
+                                break;
+                            case 38:
+                                break;
+                */
                 /**************************************************************/
                 /* Test Zone */
 
@@ -151,7 +183,7 @@
                 /* Console State Switch */
             case 47:
                 printf("\n\rState Switch: Enter next State: \n\r");
-                printf("45\tset Time\n\r46\tread Time\n\r47\tState Switch\n\r48\tServo Board Test Tool\n\r49\tenable servo output\n\r50\tdisable servo output\n\r51\ttest SD Card\n\r52\tread medication\n\r53\tMedication display test tool\n\r");
+                printf("45\tset Time\n\r46\tread Time\n\r47\tState Switch\n\r48\tServo Board Test Tool\n\r49\tenable servo output\n\r50\tdisable servo output\n\r51\ttest SD Card\n\r52\tread medication\n\r53\tMedication display test tool\n\r61\write_medInventory test\n\r62\write_medError test\n\r");
                 pc.scanf("%d", &state);
                 printf("Switch to State %d\n\r",state);
                 fflush(stdin);
@@ -195,8 +227,8 @@
 
 
             case 52:
-                user[1] = readMedication(1);
-                if(user[1].valid) {
+                prescription[1] = readMedication(1);
+                if(prescription[1].valid) {
                     printf("\rread successful\r\n\n");
                 } else {
                     printf("\rread failed\r\n\n");
@@ -205,7 +237,7 @@
                 break;
 
             case 53:
-                if(user[1].valid == false) {
+                if(prescription[1].valid == false) {
                     printf("\r\nNo valid data in struct, try to run case 52\r\n\n");
                 } else {
                     printf("\r\nMedication display test tool:\r\n");
@@ -219,9 +251,9 @@
                             pc.scanf("%d", &moment);
                             printf("\r\nMedication for weekday %d Moment %d is ",day,moment);
                             for(int i=0; i<6; i++) {
-                                printf("%d", user[1].medication.day[day].moment[moment].medContainer.container[i]);
+                                printf("%d", prescription[1].medication.day[day].moment[moment].medContainer.container[i]);
                             }
-                            printf("\r\nThe alarm clock is set for %02d:%02d",user[1].medication.day[day].moment[moment].time.hour,user[1].medication.day[day].moment[moment].time.minute);
+                            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);
                         }
                         printf("\r\n");
                         fflush(stdin);
@@ -231,7 +263,7 @@
                 state = 47;
                 break;
             case 54:
-                writeMedication(0,user[1]);
+                writeMedication(0,prescription[1]);
                 state = 47;
                 break;
             case 55:
@@ -298,19 +330,29 @@
 
                 break;
 
-            case 60
-            printf("write_medProtocol\n\r");
+            case 60:
+                printf("write_medProtocol\n\r");
                 write_medProtocol(medicationTime, outputTime, medication, success, user);
-                
+                printf("done\n\r");
+                state = 47;
+
                 break;
 
-            case 61
+            case 61:
+                printf("write_medInventory\n\r");
+                write_medInventory(medInventory,currentTime,med1,med2,med3,med4,med5,med6);
+                printf("done\n\r");
+                state = 47;
 
-                    break;
+                break;
 
-            case 62
+            case 62:
+                printf("write_medError\n\r");
+                write_medError(fail, time);
+                printf("done\n\r");
+                state = 47;
 
-                    break;
+                break;
 
             default:
                 state = 47; /* Go to State Switch */