main reminder functionality

Dependencies:   mbed 4DGL-uLCD-SE SDFileSystem

Committer:
ashea6
Date:
Wed Dec 07 17:37:12 2016 +0000
Revision:
7:d85521f4f0c3
Parent:
1:29de429a7e15
done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
deronmai 1:29de429a7e15 1 const int REMINDER_SIZE = 17;
deronmai 1:29de429a7e15 2
deronmai 1:29de429a7e15 3
deronmai 1:29de429a7e15 4 // speech synthesis
deronmai 1:29de429a7e15 5 //1 2 3 4 5 6 7 8 9 10 11 12 15 50 40 30 20
deronmai 1:29de429a7e15 6 static const int synTime[] = {11, 19, 16, 7, 5, 21, 13, 1, 8, 14, 2, 17, 3, 4, 6, 15, 18};
deronmai 1:29de429a7e15 7 //o'clock, OH, reminder, appointment, AM, PM, Taken Meds?, Thank You
deronmai 1:29de429a7e15 8 static const int synWords[] = {9, 10, 12, 20 ,22, 24, 23, 25};
deronmai 1:29de429a7e15 9
deronmai 1:29de429a7e15 10 enum Day {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
deronmai 1:29de429a7e15 11
deronmai 0:fef6b4d65600 12 struct reminder {
deronmai 1:29de429a7e15 13 //struct tm tm_time;
deronmai 1:29de429a7e15 14 int hour;
deronmai 1:29de429a7e15 15 int min;
deronmai 0:fef6b4d65600 16 int reminder_days[7]; /* set all days to 0. If day is used, set to 1
deronmai 0:fef6b4d65600 17 If no day specified (ie every day), set all to 1 */
deronmai 0:fef6b4d65600 18 //time_t timet_time; // represents the number of seconds since the start of the Unix epoch: midnight UTC of January 1, 1970
deronmai 1:29de429a7e15 19 string notification;
deronmai 1:29de429a7e15 20 int taken;
deronmai 1:29de429a7e15 21 int nottaken;
deronmai 1:29de429a7e15 22 };
deronmai 1:29de429a7e15 23
deronmai 1:29de429a7e15 24 struct dateTime {
deronmai 1:29de429a7e15 25 int month;
deronmai 1:29de429a7e15 26 int day;
deronmai 1:29de429a7e15 27 int year;
deronmai 1:29de429a7e15 28 };
deronmai 1:29de429a7e15 29
deronmai 1:29de429a7e15 30 struct record {
deronmai 1:29de429a7e15 31 vector<struct dateTime> date;
deronmai 1:29de429a7e15 32 vector<int> data;
deronmai 1:29de429a7e15 33 int record_number;
deronmai 1:29de429a7e15 34 };
deronmai 1:29de429a7e15 35
deronmai 1:29de429a7e15 36
deronmai 1:29de429a7e15 37 class schedule
deronmai 1:29de429a7e15 38 {
deronmai 1:29de429a7e15 39 // will be ordered by time - should do this processing on the desktop
deronmai 1:29de429a7e15 40 vector<struct reminder> reminder_list;
deronmai 1:29de429a7e15 41 int size;
deronmai 1:29de429a7e15 42 int index;
deronmai 1:29de429a7e15 43 vector<struct record> schedule_record;
deronmai 1:29de429a7e15 44 public:
deronmai 1:29de429a7e15 45 schedule();
deronmai 1:29de429a7e15 46 void addReminder(reminder);
deronmai 1:29de429a7e15 47 reminder getCurrentReminder();
deronmai 1:29de429a7e15 48 reminder nextReminder();
deronmai 1:29de429a7e15 49 int getSize();
deronmai 1:29de429a7e15 50 void updateRecord(struct dateTime rDate, int dataIn);
deronmai 1:29de429a7e15 51 int getNumRecords(int recordnum);
deronmai 1:29de429a7e15 52 record getRecord(int recordnum);
deronmai 1:29de429a7e15 53 };
deronmai 1:29de429a7e15 54
deronmai 1:29de429a7e15 55 schedule::schedule()
deronmai 1:29de429a7e15 56 {
deronmai 1:29de429a7e15 57 size = 0;
deronmai 1:29de429a7e15 58 index = 0;
deronmai 1:29de429a7e15 59 }
deronmai 1:29de429a7e15 60
deronmai 1:29de429a7e15 61 void schedule::addReminder(reminder add)
deronmai 1:29de429a7e15 62 {
deronmai 1:29de429a7e15 63 reminder_list.push_back(add);
deronmai 1:29de429a7e15 64 size++;
deronmai 1:29de429a7e15 65 // create record for every new reminder
deronmai 1:29de429a7e15 66 record tmp;
deronmai 1:29de429a7e15 67 tmp.record_number = size - 1; // record numbers start at 0;
deronmai 1:29de429a7e15 68 schedule_record.push_back(tmp);
deronmai 1:29de429a7e15 69 }
deronmai 1:29de429a7e15 70
deronmai 1:29de429a7e15 71 reminder schedule::getCurrentReminder()
deronmai 1:29de429a7e15 72 {
deronmai 1:29de429a7e15 73 /*
deronmai 1:29de429a7e15 74 if (size > index) {
deronmai 1:29de429a7e15 75 index++;
deronmai 1:29de429a7e15 76 return reminder_list[index];
deronmai 1:29de429a7e15 77 }
deronmai 1:29de429a7e15 78 else {
deronmai 1:29de429a7e15 79 if (index != 0) {
deronmai 1:29de429a7e15 80 index = 0;
deronmai 1:29de429a7e15 81 return reminder_list[index];
deronmai 1:29de429a7e15 82 }
deronmai 1:29de429a7e15 83 //return -1;
deronmai 1:29de429a7e15 84 }
deronmai 1:29de429a7e15 85 // should throw error here...
deronmai 1:29de429a7e15 86 reminder emptyReminder;
deronmai 1:29de429a7e15 87 return emptyReminder;*/
deronmai 1:29de429a7e15 88 return reminder_list[index];
deronmai 1:29de429a7e15 89 }
deronmai 1:29de429a7e15 90
deronmai 1:29de429a7e15 91 int schedule::getSize()
deronmai 1:29de429a7e15 92 {
deronmai 1:29de429a7e15 93 return size;
deronmai 1:29de429a7e15 94 }
deronmai 1:29de429a7e15 95
deronmai 1:29de429a7e15 96 reminder schedule::nextReminder()
deronmai 1:29de429a7e15 97 {
deronmai 1:29de429a7e15 98 if (index < (size - 1))
deronmai 1:29de429a7e15 99 index++;
deronmai 1:29de429a7e15 100 else index = 0;
deronmai 1:29de429a7e15 101 return reminder_list[index];
deronmai 1:29de429a7e15 102 }
deronmai 1:29de429a7e15 103
deronmai 1:29de429a7e15 104 void schedule::updateRecord(struct dateTime dateIn, int dataIn)
deronmai 1:29de429a7e15 105 {
deronmai 1:29de429a7e15 106 schedule_record[index].date.push_back(dateIn);
deronmai 1:29de429a7e15 107 schedule_record[index].data.push_back(dataIn);
deronmai 1:29de429a7e15 108 }
deronmai 1:29de429a7e15 109
deronmai 1:29de429a7e15 110 int schedule::getNumRecords(int recordnum)
deronmai 1:29de429a7e15 111 // returns how many data entries are in a record
deronmai 1:29de429a7e15 112 {
deronmai 1:29de429a7e15 113 return schedule_record[recordnum].data.size();
deronmai 1:29de429a7e15 114 }
deronmai 1:29de429a7e15 115
deronmai 1:29de429a7e15 116 record schedule::getRecord(int recordnum)
deronmai 1:29de429a7e15 117 {
deronmai 1:29de429a7e15 118 return schedule_record[recordnum];
deronmai 1:29de429a7e15 119 }