Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Shed.cpp
00001 #include "mbed.h" 00002 #include "Shed.h" 00003 #include "Datetime.h" 00004 using namespace std; 00005 00006 Shed::Shed(string json) { 00007 /* Voorbeeld json input 00008 " 00009 "id":"7", 00010 "lokaal":"2.85", 00011 "start":"2019-03-22 15:45:00", 00012 "einde":"2019-03-28 18:45:00", 00013 "prof":"J. Lannoo", 00014 "klasgroep":"1e Bachelor ME", 00015 "vak":"Sterkteleer", 00016 "comments":"Extra lokaal 4.20 via video" 00017 " 00018 */ 00019 string start_str = ""; 00020 string einde_str = ""; 00021 int param = 0; 00022 bool startCmd = false; 00023 bool endCmd = false; 00024 bool startParam = false; 00025 bool endParam = false; 00026 for(int i = 0; i < json.length(); i++) { 00027 char c = json.at(i); 00028 if(c == '"') { 00029 //Eerste keer is er nog geen startCmd, vanaf dan is deze altijd true 00030 //als dan de endParam true is, is het de volgende cmd eigenlijk dus alles herinitialiseren 00031 if(!startCmd || endParam) { 00032 endCmd = false; 00033 startParam = false; 00034 endParam = false; 00035 startCmd = true; 00036 param++; 00037 } else if(!endCmd) { 00038 endCmd = true; 00039 } else if(!startParam) { 00040 startParam = true; 00041 } else if(!endParam) { 00042 endParam = true; 00043 } 00044 } else { 00045 if(startParam && !endParam) { 00046 //Waarde aan het lezen 00047 switch(param) { 00048 case 1: { 00049 //id 00050 //Not needed 00051 } break; 00052 case 2: { 00053 //lokaal 00054 this->lokaal += c; 00055 } break; 00056 case 3: { 00057 //start 00058 start_str += c; 00059 } break; 00060 case 4: { 00061 //einde 00062 einde_str += c; 00063 } break; 00064 case 5: { 00065 //prof 00066 this->prof += c; 00067 } break; 00068 case 6: { 00069 //klasgroep 00070 this->klasgroep += c; 00071 } break; 00072 case 7: { 00073 //vak 00074 this->vak += c; 00075 } break; 00076 case 8: { 00077 //comments 00078 this->comments += c; 00079 } break; 00080 default: { 00081 //Error 00082 } 00083 } 00084 }/* else if(startCmd && !endCmd) { 00085 //Commando aan het lezen 00086 //Not needed 00087 }*/ 00088 } 00089 } 00090 //Save start & einde as Datetime 00091 this->start = new Datetime(start_str); 00092 this->einde = new Datetime(einde_str); 00093 } 00094 00095 Shed::~Shed() { 00096 //strings are freed automatically 00097 //Needed for datetime (found on: https://stackoverflow.com/a/677661) 00098 //but this freezes the mbed without errors, so don't? 00099 //delete this->start; 00100 //delete this->einde; 00101 } 00102 00103 string Shed::getLokaal () { 00104 return lokaal; 00105 } 00106 00107 Datetime* Shed::getStart () { 00108 return start; 00109 } 00110 00111 Datetime* Shed::getEinde () { 00112 return einde; 00113 } 00114 00115 string Shed::getProf () { 00116 return prof; 00117 } 00118 00119 string Shed::getKlasgroep () { 00120 return klasgroep; 00121 } 00122 00123 string Shed::getVak () { 00124 return vak; 00125 } 00126 00127 string Shed::getComments () { 00128 return comments; 00129 } 00130 00131 //Er mag hier geen static voor staan als je een pointer wil gebruiken als return. Er staat wel een static voor in de header hiermee weet de main genoeg 00132 vector<Shed>* Shed::getShedVector (vector<string> jsons) { 00133 vector<Shed> sheds; 00134 for(int i = 0; i < jsons.size(); i++) { 00135 sheds.push_back(Shed(jsons[i])); 00136 } 00137 return &sheds; 00138 }
Generated on Thu Jul 14 2022 00:56:38 by
1.7.2