Code written by Paul Rabbat, Angel Daruna, Jarel Hawkins, and Cordel Williams
Dependencies: 4DGL-uLCD-SE EthernetInterface HTTPClient NTPClient PinDetect SDFileSystem mbed-rpc mbed-rtos mbed wave_player
Fork of ECE4180_FinalProject by
Formatter.cpp
- Committer:
- prabbat3
- Date:
- 2014-12-07
- Revision:
- 12:a99989062fee
- Parent:
- 11:1c3bc07daabf
File content as of revision 12:a99989062fee:
#include "Formatter.h" #include "mbed.h" #include "RPCObjectManager.h" #include "EthernetInterface.h" #include "alarmContainer.h" #include <string> const char *SIMPLE_HTML_CODE = "\ <!DOCTYPE html>\ <html>\ <head>\ <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\ <title>Your AC</title>\ </head>\ <body>"; const char* INTERACTIVE_HTML_CODE_1 = "\ <!DOCTYPE html> \ <html>\ <head>\ <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\ <title>Your Alarm Clock</title>\ <script type=\"text/javascript\">\ var ip = \"%s\";\ function submitCreateForm()\ {\ var url = \"http://\" + ip + \"/Alarm/\" + \"new?name=Alarm\";\ location.href= url;\ }\ function submitCallFuncForm()\ {\ var command = document.getElementById(\"command\").value;\ if(command === \"\") \ return; \ var tmp = command.split(\' \');\ var url = tmp[0];\ if(tmp.length > 1)\ url += \"?\";\ for(var i = 1; i < tmp.length; ++i)\ {\ url += \"arg\" + i + \"=\" + tmp[i];\ if(i+1 < tmp.length)\ url += \"&\";\ }\ location.href = url;\ }\ function submitAlarmPreferences()\ {\ var h = document.getElementById(\"hour\").value;\ var m = document.getElementById(\"minute\").value;\ var a = document.getElementById(\"ampm\").value;\ var url = \"/Alarm/updateAlarmPreference?arg1=\" + h + \"&arg2=\" + m + \"&arg2=\" + a;\ location.href = url;\ }\ function setAlarm()\ {\ var url = \"/Alarm/setAlarm\";\ location.href = url;\ }\ </script>\ </head> \ <body>"; const char* INTERACTIVE_HTML_CODE_2 = "</body> \ </html>"; static char chunk[4096]; Formatter::Formatter(int nb): currentChunk(0), nbChunk(nb) { } char* Formatter::get_page(char *reply) { chunk[0] = '\0'; if(currentChunk < nbChunk) { get_chunk(currentChunk, reply); currentChunk++; } else currentChunk = 0; return chunk; } void Formatter::get_chunk(const int c, char *reply) { strcat(chunk, reply); } SimpleHTMLFormatter::SimpleHTMLFormatter(): Formatter() { } void SimpleHTMLFormatter::get_chunk(const int c, char* reply) { strcat(chunk, SIMPLE_HTML_CODE); if(!RPCObjectManager::instance().is_empty()) { strcat(chunk, "<ul>"); for(std::list<char*>::iterator itor = RPCObjectManager::instance().begin(); itor != RPCObjectManager::instance().end(); ++itor) { strcat(chunk, "<li>"); strcat(chunk, *itor); strcat(chunk, "</li>"); } strcat(chunk, "</ul>"); } strcat(chunk, "</body></html>"); } InteractiveHTMLFormatter::InteractiveHTMLFormatter(): Formatter(3) { } void InteractiveHTMLFormatter::get_chunk(const int c, char *reply) { int alarmCreated = 0; if(c == 0) sprintf(chunk, INTERACTIVE_HTML_CODE_1, EthernetInterface::getIPAddress()); else if(c == 1){ if(!RPCObjectManager::instance().is_empty()){ alarmCreated = 1; } strcat(chunk, " "); if(!alarmCreated){ strcat(chunk, "<p><input type=\"button\" value=\"Create Alarm\" onclick=\"javascript:submitCreateForm();\"></p>"); }else{ strcat(chunk, "<h3>Set Your Alarm:</h3>"); strcat(chunk, "<form>"); /******* HOUR *******/ strcat(chunk, "<select id=\"hour\">"); strcat(chunk, "<option "); if(_alarm.hours == 1){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"1\">1</option>"); strcat(chunk, "<option "); if(_alarm.hours == 2){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"2\">2</option>"); strcat(chunk, "<option "); if(_alarm.hours == 3){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"3\">3</option>"); strcat(chunk, "<option "); if(_alarm.hours == 4){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"4\">4</option>"); strcat(chunk, "<option "); if(_alarm.hours == 5){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"5\">5</option>"); strcat(chunk, "<option "); if(_alarm.hours == 6){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"6\">6</option>"); strcat(chunk, "<option "); if(_alarm.hours == 7){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"7\">7</option>"); strcat(chunk, "<option "); if(_alarm.hours == 8){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"8\">8</option>"); strcat(chunk, "<option "); if(_alarm.hours == 9){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"9\">9</option>"); strcat(chunk, "<option "); if(_alarm.hours == 10){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"10\">10</option>"); strcat(chunk, "<option "); if(_alarm.hours == 11){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"11\">11</option>"); strcat(chunk, "<option "); if(_alarm.hours == 12 || _alarm.hours == 0){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"12\">12</option>"); strcat(chunk, "</select>"); strcat(chunk, ":"); /******* MINUTE *******/ strcat(chunk, "<select id=\"minute\">"); strcat(chunk, "<option "); if(_alarm.minutes == 0){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"0\">00</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 1){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"1\">01</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 2){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"2\">02</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 3){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"3\">03</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 4){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"4\">04</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 5){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"5\">05</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 6){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"6\">06</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 7){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"7\">07</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 8){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"8\">08</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 9){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"9\">09</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 10){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"10\">10</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 11){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"11\">11</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 12){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"12\">12</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 13){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"13\">13</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 14){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"14\">14</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 15){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"15\">15</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 16){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"16\">16</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 17){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"17\">17</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 18){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"18\">18</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 19){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"19\">19</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 20){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"20\">20</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 21){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"21\">21</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 22){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"22\">22</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 23){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"23\">23</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 24){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"24\">24</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 25){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"25\">25</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 26){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"26\">26</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 27){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"27\">27</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 28){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"28\">28</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 29){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"29\">29</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 30){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"30\">30</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 31){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"31\">31</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 32){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"32\">32</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 33){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"33\">33</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 34){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"34\">34</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 35){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"35\">35</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 36){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"36\">36</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 37){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"37\">37</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 38){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"38\">38</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 39){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"39\">39</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 40){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"40\">40</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 41){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"41\">41</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 42){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"42\">42</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 43){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"43\">43</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 44){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"44\">44</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 45){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"45\">45</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 46){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"46\">46</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 47){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"47\">47</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 48){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"48\">48</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 49){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"49\">49</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 50){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"50\">50</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 51){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"51\">51</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 52){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"52\">52</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 53){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"53\">53</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 54){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"54\">54</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 55){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"55\">55</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 56){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"56\">56</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 57){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"57\">57</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 58){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"58\">58</option>"); strcat(chunk, "<option "); if(_alarm.minutes == 59){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"59\">59</option>"); strcat(chunk, "</select>"); /******* AM PM *******/ strcat(chunk, "<select id=\"ampm\">"); strcat(chunk, "<option "); if(strcmp(_alarm.amPm,"AM") == 0){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"0\">AM</option>"); strcat(chunk, "<option "); if(strcmp(_alarm.amPm,"PM") == 0){ strcat(chunk, "selected=\"selected\""); } strcat(chunk, "value=\"1\">PM</option>"); strcat(chunk, "</select>"); strcat(chunk, "<br><p>"); strcat(chunk, "<input type=\"button\" value=\"Save\" onclick=\"javascript:submitAlarmPreferences();\">"); strcat(chunk, "<input type=\"button\" value=\"Set\" onclick=\"javascript:setAlarm();\">"); strcat(chunk, "</p><br></form>"); } } else if(c == 2) strcat(chunk, INTERACTIVE_HTML_CODE_2); }