
ControllerBox directs electromechanical equipment in restaurants to display information.
Dependencies: TextLCD MbedJSONValue libMotiv picojson mbed-rtos mbed
Fork of Mbed_MotiVControllerBox by
libMotiv/Controller.cpp@5:e22a1ae893d2, 2015-01-06 (annotated)
- Committer:
- TimWoo
- Date:
- Tue Jan 06 22:18:27 2015 +0000
- Revision:
- 5:e22a1ae893d2
- Parent:
- 3:21c8adb97c8f
- Child:
- 6:32e6f0048bf1
Malloc call needed for picojson hangs the program silently... Don't see how to debug.; ; Going to try MbedJSONValue library instead
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TimWoo | 3:21c8adb97c8f | 1 | #include <string> |
TimWoo | 3:21c8adb97c8f | 2 | #include <stdlib.h> |
TimWoo | 3:21c8adb97c8f | 3 | #include "TextLCD.h" |
TimWoo | 3:21c8adb97c8f | 4 | #include "Controller.h" |
TimWoo | 3:21c8adb97c8f | 5 | #include "Device.h" |
TimWoo | 3:21c8adb97c8f | 6 | #include "Table.h" |
TimWoo | 3:21c8adb97c8f | 7 | #include "Flower.h" |
TimWoo | 5:e22a1ae893d2 | 8 | #include "picojson.h" |
TimWoo | 5:e22a1ae893d2 | 9 | #include "MotiVAPI.h" |
TimWoo | 5:e22a1ae893d2 | 10 | #include "EthernetInterface.h" |
TimWoo | 5:e22a1ae893d2 | 11 | #include "HTTPClient.h" |
TimWoo | 3:21c8adb97c8f | 12 | |
TimWoo | 3:21c8adb97c8f | 13 | #include <exception> |
TimWoo | 3:21c8adb97c8f | 14 | #include <iostream> |
TimWoo | 5:e22a1ae893d2 | 15 | #include <sstream> |
TimWoo | 5:e22a1ae893d2 | 16 | |
TimWoo | 3:21c8adb97c8f | 17 | //Flower commands |
TimWoo | 3:21c8adb97c8f | 18 | // fRESET = 0, |
TimWoo | 3:21c8adb97c8f | 19 | // fPETAL_SPD = 1, |
TimWoo | 3:21c8adb97c8f | 20 | // fBLINK_SPD = 2, |
TimWoo | 3:21c8adb97c8f | 21 | // fBLINK_PERIOD = 3, |
TimWoo | 3:21c8adb97c8f | 22 | // fLED_INTENSITY = 4, |
TimWoo | 3:21c8adb97c8f | 23 | // fPETAL_POS = 10, |
TimWoo | 3:21c8adb97c8f | 24 | // fLED_TABLE_FREE = 20, |
TimWoo | 3:21c8adb97c8f | 25 | // fLED_TABLE_RES = 21, |
TimWoo | 3:21c8adb97c8f | 26 | // fLED_FOOD = 22, |
TimWoo | 3:21c8adb97c8f | 27 | // fLED_DRINK = 23, |
TimWoo | 3:21c8adb97c8f | 28 | // fLED_SERVICE = 24, |
TimWoo | 3:21c8adb97c8f | 29 | // fLED_CLR = 29, |
TimWoo | 3:21c8adb97c8f | 30 | //// Flower version 2 commands n/a for now. |
TimWoo | 3:21c8adb97c8f | 31 | //// fPISTIL_SPD = 3, |
TimWoo | 3:21c8adb97c8f | 32 | //// fPETAL1_POS = 11, |
TimWoo | 3:21c8adb97c8f | 33 | //// fPETAL2_POS = 12, |
TimWoo | 3:21c8adb97c8f | 34 | //// fPETAL3_POS = 13, |
TimWoo | 3:21c8adb97c8f | 35 | //// fPETAL4_POS = 14, |
TimWoo | 3:21c8adb97c8f | 36 | //// fPETAL5_POS = 15, |
TimWoo | 3:21c8adb97c8f | 37 | //// fPETAL6_POS = 16, |
TimWoo | 3:21c8adb97c8f | 38 | //// fPISTIL_POS_FOOD = 30, |
TimWoo | 3:21c8adb97c8f | 39 | //// fPISTIL_POS_DRINKS = 31, |
TimWoo | 3:21c8adb97c8f | 40 | //// fPISTIL_POS_SERVICE = 32 |
TimWoo | 3:21c8adb97c8f | 41 | // fTABLE_FREE = 50, |
TimWoo | 3:21c8adb97c8f | 42 | // fTABLE_ACTIVE = 51, |
TimWoo | 3:21c8adb97c8f | 43 | // fTABLE_RES = 52, |
TimWoo | 3:21c8adb97c8f | 44 | // fTABLE_END = 53, |
TimWoo | 3:21c8adb97c8f | 45 | // fFOOD_ORDERED = 54, |
TimWoo | 3:21c8adb97c8f | 46 | // fDRINKS_ORDERED = 55, |
TimWoo | 3:21c8adb97c8f | 47 | // fSERVICE_REQ = 56, |
TimWoo | 3:21c8adb97c8f | 48 | // fPETALS_CLOSE = 60, |
TimWoo | 3:21c8adb97c8f | 49 | // fLAMP_ACT = 100, |
TimWoo | 3:21c8adb97c8f | 50 | // fDEMO1 = 101, |
TimWoo | 3:21c8adb97c8f | 51 | // fDEMO2 = 102 |
TimWoo | 3:21c8adb97c8f | 52 | //Flower commands v2 |
TimWoo | 3:21c8adb97c8f | 53 | //Functie Waarde(n) Doel |
TimWoo | 3:21c8adb97c8f | 54 | // |
TimWoo | 3:21c8adb97c8f | 55 | //Primaire functies |
TimWoo | 3:21c8adb97c8f | 56 | // |
TimWoo | 3:21c8adb97c8f | 57 | //0* 0 Reset (Zet alle waarden terug naar default) |
TimWoo | 3:21c8adb97c8f | 58 | //1* 0 – 100 Zet bewegingssnelheid van de bladeren (0 langzaam, 100 snel) |
TimWoo | 3:21c8adb97c8f | 59 | //2 0 – 100 Zet knippersnelheid van de verlichting (in %) |
TimWoo | 3:21c8adb97c8f | 60 | //3 0 – 255 Zet knipperlengte van de verlichting (in sec) |
TimWoo | 3:21c8adb97c8f | 61 | //4 0 – 100 Zet de lichtintensiteit van de LEDstrip (0 – 100 %) |
TimWoo | 3:21c8adb97c8f | 62 | //5 0 – 100 Zet bewegingssnelheid van de stampers (Niet beschikbaar in bloem versie 1) |
TimWoo | 3:21c8adb97c8f | 63 | //6 0 – 255 Zet tijd |
TimWoo | 3:21c8adb97c8f | 64 | //10* 0 – 100 Zet de positie van de bloembladeren (0 dicht, 100 open) |
TimWoo | 3:21c8adb97c8f | 65 | //11 – 18 0 – 100 Zet de positie van (max. 8) individuele bloembladeren (0 dicht, 100 open) (Niet beschikbaar in bloem versie 1) |
TimWoo | 3:21c8adb97c8f | 66 | //20* 0 … 1 Zet led “tafel vrij” |
TimWoo | 3:21c8adb97c8f | 67 | //21* 0 … 1 Zet led “tafel gereserveerd” |
TimWoo | 3:21c8adb97c8f | 68 | //22* 0 … 1 Zet led F(ood) |
TimWoo | 3:21c8adb97c8f | 69 | //23* 0 … 1 Zet led D(rink) |
TimWoo | 3:21c8adb97c8f | 70 | //24* 0 … 1 Zet led S(ervice) |
TimWoo | 3:21c8adb97c8f | 71 | //29 0 … 1 Zet led verlichting (standaard wit) |
TimWoo | 3:21c8adb97c8f | 72 | //30 0 – 100 Zet hoogte van stamper F(ood) (Niet beschikbaar in bloem versie 1) |
TimWoo | 3:21c8adb97c8f | 73 | //31 0 – 100 Zet hoogte van stamper D(rink) (Niet beschikbaar in bloem versie 1) |
TimWoo | 3:21c8adb97c8f | 74 | //32 0 – 100 Zet hoogte van stamper S(ervice) (Niet beschikbaar in bloem versie 1) |
TimWoo | 3:21c8adb97c8f | 75 | //Complexe functies |
TimWoo | 3:21c8adb97c8f | 76 | //50* 1 Zet bloem naar stand “Tafel vrij” (Gesloten groen) |
TimWoo | 3:21c8adb97c8f | 77 | //51* 1 Zet bloem naar stand “Tafel in gebruik” (Open groen) |
TimWoo | 3:21c8adb97c8f | 78 | //52* 1 Zet bloem naar stand “Tafel gereserveerd” (Gesloten rood) |
TimWoo | 3:21c8adb97c8f | 79 | //53* 1 Zet bloem naar stand “Zittingstijd om” (Open rood) |
TimWoo | 3:21c8adb97c8f | 80 | //54* 0 – 100 Zet bloem naar stand “Eten besteld” met x% bestelstatus |
TimWoo | 3:21c8adb97c8f | 81 | //55* 0 – 100 Zet bloem naar stand “Drank besteld” met x% bestelstatus |
TimWoo | 3:21c8adb97c8f | 82 | //56* 0 – 100 Zet bloem naar stand “Bediening gevraagd” met x% bestelstatus |
TimWoo | 3:21c8adb97c8f | 83 | //60 1 Bloem sluit al naar gelang de ingestelde tijd |
TimWoo | 3:21c8adb97c8f | 84 | //61 1 Zet bloem naar status “zittingstijd om”. (“Gereserveerd rood knipperen”) |
TimWoo | 3:21c8adb97c8f | 85 | //100 1 Lampfunctie (Bloem opent een klein beetje en fungeert als lamp) |
TimWoo | 3:21c8adb97c8f | 86 | //101 1 Demostand 1 (Bloem gaat continu open en dicht en alle leds wisselen) |
TimWoo | 3:21c8adb97c8f | 87 | //102 0 – 100 Demostand 2 (Bloem opent naar stand X en statusleds wisselen) |
TimWoo | 3:21c8adb97c8f | 88 | |
TimWoo | 3:21c8adb97c8f | 89 | //#include "MotiVAPI.h" |
TimWoo | 3:21c8adb97c8f | 90 | |
TimWoo | 5:e22a1ae893d2 | 91 | |
TimWoo | 5:e22a1ae893d2 | 92 | |
TimWoo | 5:e22a1ae893d2 | 93 | |
TimWoo | 5:e22a1ae893d2 | 94 | |
TimWoo | 3:21c8adb97c8f | 95 | //Test endpoint: http://demo.motiv.jvanbaarsen.com/demo/test |
TimWoo | 3:21c8adb97c8f | 96 | using namespace std; |
TimWoo | 3:21c8adb97c8f | 97 | |
TimWoo | 5:e22a1ae893d2 | 98 | |
TimWoo | 5:e22a1ae893d2 | 99 | void debug_build_number() |
TimWoo | 3:21c8adb97c8f | 100 | { |
TimWoo | 5:e22a1ae893d2 | 101 | printf("\r\n\r\nBuild "); |
TimWoo | 5:e22a1ae893d2 | 102 | printf(__DATE__); |
TimWoo | 5:e22a1ae893d2 | 103 | printf(" - "); |
TimWoo | 5:e22a1ae893d2 | 104 | printf(__TIME__); |
TimWoo | 5:e22a1ae893d2 | 105 | printf("\r\n\r\n"); |
TimWoo | 5:e22a1ae893d2 | 106 | } |
TimWoo | 3:21c8adb97c8f | 107 | |
TimWoo | 5:e22a1ae893d2 | 108 | Controller::Controller() |
TimWoo | 5:e22a1ae893d2 | 109 | {} |
TimWoo | 3:21c8adb97c8f | 110 | |
TimWoo | 5:e22a1ae893d2 | 111 | Controller::Controller(TextLCD *lcd/*, EthernetInterface *eth*/) |
TimWoo | 5:e22a1ae893d2 | 112 | : initialized(false), |
TimWoo | 5:e22a1ae893d2 | 113 | lcd(lcd), |
TimWoo | 5:e22a1ae893d2 | 114 | status(WAITING) |
TimWoo | 5:e22a1ae893d2 | 115 | { |
TimWoo | 5:e22a1ae893d2 | 116 | debug_build_number(); //show build info |
TimWoo | 5:e22a1ae893d2 | 117 | printf("Controller constructor\r\n"); |
TimWoo | 3:21c8adb97c8f | 118 | |
TimWoo | 5:e22a1ae893d2 | 119 | mAPI = new MotiVAPI("http://core.motiv.jvanbaarsen.com/v1/"); //Initialize API |
TimWoo | 3:21c8adb97c8f | 120 | |
TimWoo | 5:e22a1ae893d2 | 121 | setStatus(WAITING); |
TimWoo | 5:e22a1ae893d2 | 122 | displayStatus(); |
TimWoo | 5:e22a1ae893d2 | 123 | } |
TimWoo | 3:21c8adb97c8f | 124 | |
TimWoo | 5:e22a1ae893d2 | 125 | void Controller::init() |
TimWoo | 5:e22a1ae893d2 | 126 | { |
TimWoo | 5:e22a1ae893d2 | 127 | initialized = true; |
TimWoo | 5:e22a1ae893d2 | 128 | mAPI->init(); |
TimWoo | 5:e22a1ae893d2 | 129 | |
TimWoo | 5:e22a1ae893d2 | 130 | initTables(); |
TimWoo | 3:21c8adb97c8f | 131 | } |
TimWoo | 3:21c8adb97c8f | 132 | |
TimWoo | 3:21c8adb97c8f | 133 | void Controller::printDesc(int c) |
TimWoo | 3:21c8adb97c8f | 134 | { |
TimWoo | 3:21c8adb97c8f | 135 | // string desc = flower->getCommandDesc(c); |
TimWoo | 3:21c8adb97c8f | 136 | // lcdWriteLine(2, desc); |
TimWoo | 3:21c8adb97c8f | 137 | } |
TimWoo | 3:21c8adb97c8f | 138 | |
TimWoo | 3:21c8adb97c8f | 139 | Controller::cStatus Controller::getStatus() |
TimWoo | 3:21c8adb97c8f | 140 | { |
TimWoo | 3:21c8adb97c8f | 141 | return this->status; |
TimWoo | 3:21c8adb97c8f | 142 | } |
TimWoo | 3:21c8adb97c8f | 143 | |
TimWoo | 3:21c8adb97c8f | 144 | string Controller::statusString() |
TimWoo | 3:21c8adb97c8f | 145 | { |
TimWoo | 3:21c8adb97c8f | 146 | switch(status) { |
TimWoo | 3:21c8adb97c8f | 147 | case READY: |
TimWoo | 3:21c8adb97c8f | 148 | return "ready"; |
TimWoo | 3:21c8adb97c8f | 149 | |
TimWoo | 3:21c8adb97c8f | 150 | case WAITING: |
TimWoo | 3:21c8adb97c8f | 151 | return "waiting"; |
TimWoo | 3:21c8adb97c8f | 152 | |
TimWoo | 3:21c8adb97c8f | 153 | case BUSY: |
TimWoo | 3:21c8adb97c8f | 154 | return "busy"; |
TimWoo | 3:21c8adb97c8f | 155 | |
TimWoo | 3:21c8adb97c8f | 156 | case ERROR: |
TimWoo | 3:21c8adb97c8f | 157 | return "error"; |
TimWoo | 3:21c8adb97c8f | 158 | |
TimWoo | 3:21c8adb97c8f | 159 | case INIT: |
TimWoo | 3:21c8adb97c8f | 160 | return "intializing"; |
TimWoo | 3:21c8adb97c8f | 161 | |
TimWoo | 3:21c8adb97c8f | 162 | default: |
TimWoo | 3:21c8adb97c8f | 163 | return "unknown"; |
TimWoo | 3:21c8adb97c8f | 164 | } |
TimWoo | 3:21c8adb97c8f | 165 | } |
TimWoo | 3:21c8adb97c8f | 166 | |
TimWoo | 3:21c8adb97c8f | 167 | void Controller::setStatus(cStatus status) |
TimWoo | 3:21c8adb97c8f | 168 | { |
TimWoo | 3:21c8adb97c8f | 169 | this->status = status; |
TimWoo | 3:21c8adb97c8f | 170 | displayStatus(); |
TimWoo | 3:21c8adb97c8f | 171 | } |
TimWoo | 3:21c8adb97c8f | 172 | |
TimWoo | 3:21c8adb97c8f | 173 | void Controller::displayStatus() |
TimWoo | 3:21c8adb97c8f | 174 | { |
TimWoo | 5:e22a1ae893d2 | 175 | printf("Controller::displayStatus()\r\n"); |
TimWoo | 3:21c8adb97c8f | 176 | this->lcd->locate(0,0); |
TimWoo | 3:21c8adb97c8f | 177 | this->lcd->clearLine(); |
TimWoo | 3:21c8adb97c8f | 178 | this->lcd->locate(0,0); |
TimWoo | 3:21c8adb97c8f | 179 | this->lcd->printf("Status: %s", statusString()); |
TimWoo | 3:21c8adb97c8f | 180 | } |
TimWoo | 3:21c8adb97c8f | 181 | |
TimWoo | 3:21c8adb97c8f | 182 | |
TimWoo | 3:21c8adb97c8f | 183 | void Controller::lcdWriteLine(int row, string str) |
TimWoo | 3:21c8adb97c8f | 184 | { |
TimWoo | 3:21c8adb97c8f | 185 | this->lcd->locate(0,row); |
TimWoo | 3:21c8adb97c8f | 186 | this->lcd->clearLine(); |
TimWoo | 3:21c8adb97c8f | 187 | this->lcd->locate(0,row); |
TimWoo | 3:21c8adb97c8f | 188 | this->lcd->printf("%s", str); |
TimWoo | 3:21c8adb97c8f | 189 | } |
TimWoo | 3:21c8adb97c8f | 190 | |
TimWoo | 3:21c8adb97c8f | 191 | //void Controller::nextCommand() |
TimWoo | 3:21c8adb97c8f | 192 | //{ |
TimWoo | 3:21c8adb97c8f | 193 | // std::vector<MCommand>::iterator it; |
TimWoo | 3:21c8adb97c8f | 194 | // it = commandList->begin(); |
TimWoo | 3:21c8adb97c8f | 195 | // it = commandList->insert(it, commandList->back()); |
TimWoo | 3:21c8adb97c8f | 196 | // it = commandList->begin(); |
TimWoo | 3:21c8adb97c8f | 197 | // commandList->pop_back(); |
TimWoo | 3:21c8adb97c8f | 198 | // it = commandList->begin(); |
TimWoo | 3:21c8adb97c8f | 199 | // MCommand command = *it; |
TimWoo | 3:21c8adb97c8f | 200 | // printDesc(command->getCmd()); |
TimWoo | 3:21c8adb97c8f | 201 | //} |
TimWoo | 3:21c8adb97c8f | 202 | |
TimWoo | 3:21c8adb97c8f | 203 | void Controller::prevCommand() |
TimWoo | 3:21c8adb97c8f | 204 | { |
TimWoo | 3:21c8adb97c8f | 205 | |
TimWoo | 3:21c8adb97c8f | 206 | } |
TimWoo | 3:21c8adb97c8f | 207 | |
TimWoo | 3:21c8adb97c8f | 208 | void Controller::sendCommandDem() |
TimWoo | 3:21c8adb97c8f | 209 | { |
TimWoo | 3:21c8adb97c8f | 210 | |
TimWoo | 3:21c8adb97c8f | 211 | } |
TimWoo | 3:21c8adb97c8f | 212 | |
TimWoo | 3:21c8adb97c8f | 213 | void Controller::printCommandList() |
TimWoo | 3:21c8adb97c8f | 214 | { |
TimWoo | 5:e22a1ae893d2 | 215 | if(!initialized) |
TimWoo | 5:e22a1ae893d2 | 216 | { |
TimWoo | 5:e22a1ae893d2 | 217 | printf("Error: Controller must be initialized before calling %s!\r\n", __PRETTY_FUNCTION__); |
TimWoo | 5:e22a1ae893d2 | 218 | return; |
TimWoo | 5:e22a1ae893d2 | 219 | } |
TimWoo | 3:21c8adb97c8f | 220 | printf("\r\nCommand list printing\r\n\r\n"); |
TimWoo | 3:21c8adb97c8f | 221 | if(commandList.size()) { |
TimWoo | 5:e22a1ae893d2 | 222 | printf("The command list contains %d commands\r\n", commandList.size()); |
TimWoo | 3:21c8adb97c8f | 223 | for(std::vector<MCommand>::iterator it = commandList.begin(); it != commandList.end(); ++it) { |
TimWoo | 3:21c8adb97c8f | 224 | /* std::cout << *it; ... */ |
TimWoo | 3:21c8adb97c8f | 225 | it->print(); |
TimWoo | 3:21c8adb97c8f | 226 | } |
TimWoo | 5:e22a1ae893d2 | 227 | } else { |
TimWoo | 5:e22a1ae893d2 | 228 | printf("Command list empty\r\n"); |
TimWoo | 3:21c8adb97c8f | 229 | } |
TimWoo | 3:21c8adb97c8f | 230 | } |
TimWoo | 5:e22a1ae893d2 | 231 | |
TimWoo | 5:e22a1ae893d2 | 232 | void Controller::initTables() |
TimWoo | 5:e22a1ae893d2 | 233 | { |
TimWoo | 5:e22a1ae893d2 | 234 | printf("initTables\r\n"); |
TimWoo | 5:e22a1ae893d2 | 235 | picojson::array allTables = mAPI->getTablesAll().get("tables").get<picojson::array>(); |
TimWoo | 5:e22a1ae893d2 | 236 | printf("get first table\r\n"); |
TimWoo | 5:e22a1ae893d2 | 237 | picojson::value table = (picojson::value)allTables.begin(); |
TimWoo | 5:e22a1ae893d2 | 238 | int tableId = table.get("id"); |
TimWoo | 5:e22a1ae893d2 | 239 | printf("First table id is %d\r\n", tableId); |
TimWoo | 5:e22a1ae893d2 | 240 | //for (picojson::array::iterator iter = list.begin(); iter != list.end(); ++iter) { |
TimWoo | 5:e22a1ae893d2 | 241 | // printf("menu item value =%s\r\n", (*iter).get("v").get<string>().c_str()); |
TimWoo | 5:e22a1ae893d2 | 242 | // } |
TimWoo | 5:e22a1ae893d2 | 243 | } |
TimWoo | 5:e22a1ae893d2 | 244 | |
TimWoo | 5:e22a1ae893d2 | 245 | |
TimWoo | 5:e22a1ae893d2 | 246 | void Controller::testRequest() |
TimWoo | 5:e22a1ae893d2 | 247 | { |
TimWoo | 5:e22a1ae893d2 | 248 | mAPI->getTablesAll(); |
TimWoo | 5:e22a1ae893d2 | 249 | |
TimWoo | 5:e22a1ae893d2 | 250 | } |
TimWoo | 5:e22a1ae893d2 | 251 | |
TimWoo | 5:e22a1ae893d2 | 252 | |
TimWoo | 5:e22a1ae893d2 | 253 | |
TimWoo | 5:e22a1ae893d2 | 254 | |
TimWoo | 5:e22a1ae893d2 | 255 | |
TimWoo | 5:e22a1ae893d2 | 256 | |
TimWoo | 5:e22a1ae893d2 | 257 | |
TimWoo | 5:e22a1ae893d2 | 258 | |
TimWoo | 5:e22a1ae893d2 | 259 | |
TimWoo | 5:e22a1ae893d2 | 260 | |
TimWoo | 5:e22a1ae893d2 | 261 | |
TimWoo | 5:e22a1ae893d2 | 262 | |
TimWoo | 5:e22a1ae893d2 | 263 | |
TimWoo | 5:e22a1ae893d2 | 264 | |
TimWoo | 5:e22a1ae893d2 | 265 | |
TimWoo | 5:e22a1ae893d2 | 266 | //Controller::Controller(TextLCD *lcd): |
TimWoo | 5:e22a1ae893d2 | 267 | // status(WAITING), |
TimWoo | 5:e22a1ae893d2 | 268 | // lcd(lcd) |
TimWoo | 5:e22a1ae893d2 | 269 | //{ |
TimWoo | 5:e22a1ae893d2 | 270 | // debug_build_number(); |
TimWoo | 5:e22a1ae893d2 | 271 | // printf("Controller constructor\r\n"); |
TimWoo | 5:e22a1ae893d2 | 272 | //// this->lcd = lcd; |
TimWoo | 5:e22a1ae893d2 | 273 | // //setStatus(WAITING); |
TimWoo | 5:e22a1ae893d2 | 274 | //// mAPI = new MotiVAPI("http://core.motiv.jvanbaarsen.com/v1/"); |
TimWoo | 5:e22a1ae893d2 | 275 | // displayStatus(); |
TimWoo | 5:e22a1ae893d2 | 276 | //// devices.push_back(new <Device>Flower(1)); |
TimWoo | 5:e22a1ae893d2 | 277 | //// devices.append(new Flower(2)); |
TimWoo | 5:e22a1ae893d2 | 278 | //// devices.append(new Flower(3)); |
TimWoo | 5:e22a1ae893d2 | 279 | // |
TimWoo | 5:e22a1ae893d2 | 280 | //// tables.append(new Table(1)); |
TimWoo | 5:e22a1ae893d2 | 281 | //// tables.append(new Table(2)); |
TimWoo | 5:e22a1ae893d2 | 282 | //// tables.append(new Table(3)); |
TimWoo | 5:e22a1ae893d2 | 283 | // |
TimWoo | 5:e22a1ae893d2 | 284 | // //tables stores Tables |
TimWoo | 5:e22a1ae893d2 | 285 | // //Tables can be updated with information |
TimWoo | 5:e22a1ae893d2 | 286 | // //Tables can be asked for commands to send |
TimWoo | 5:e22a1ae893d2 | 287 | // //Tables will check changes between new info (this API update) and old info (previous API update) |
TimWoo | 5:e22a1ae893d2 | 288 | // //Tables can use the Flower interface to build commands |
TimWoo | 5:e22a1ae893d2 | 289 | // |
TimWoo | 5:e22a1ae893d2 | 290 | // |
TimWoo | 5:e22a1ae893d2 | 291 | // //Would like to have: |
TimWoo | 5:e22a1ae893d2 | 292 | // //Sending commands in different thread than receiving api update |
TimWoo | 5:e22a1ae893d2 | 293 | // //Commands then put into shared object commandQueue (FIFO) |
TimWoo | 5:e22a1ae893d2 | 294 | // |
TimWoo | 5:e22a1ae893d2 | 295 | //// initTables(); |
TimWoo | 5:e22a1ae893d2 | 296 | // |
TimWoo | 5:e22a1ae893d2 | 297 | //// Test |
TimWoo | 5:e22a1ae893d2 | 298 | //// Table table(1); |
TimWoo | 5:e22a1ae893d2 | 299 | //// Table table2(2); |
TimWoo | 5:e22a1ae893d2 | 300 | //// vector<MCommand> insertVector; |
TimWoo | 5:e22a1ae893d2 | 301 | //// insertVector = table.update(1,0,0,0); |
TimWoo | 5:e22a1ae893d2 | 302 | //// printf("Updated first table\r\n"); |
TimWoo | 5:e22a1ae893d2 | 303 | //// commandList.insert(commandList.begin(), insertVector.begin(), insertVector.end()); |
TimWoo | 5:e22a1ae893d2 | 304 | //// printCommandList(); |
TimWoo | 5:e22a1ae893d2 | 305 | //// insertVector = table2.update(2,0,0,0); |
TimWoo | 5:e22a1ae893d2 | 306 | //// printf("Updated second table\r\n"); |
TimWoo | 5:e22a1ae893d2 | 307 | //// commandList.insert(commandList.begin(), insertVector.begin(), insertVector.end()); |
TimWoo | 5:e22a1ae893d2 | 308 | //} |