Monitor motorhome leisure battery and provide simple control of habitation
Dependencies: net lpc1768 crypto clock web fram log
Diff: web-this/web-server-this.c
- Revision:
- 0:b843d647695c
- Child:
- 3:b96c6f6bbffc
diff -r 000000000000 -r b843d647695c web-this/web-server-this.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web-this/web-server-this.c Thu Jan 14 16:05:55 2021 +0000 @@ -0,0 +1,88 @@ +#include "http.h" +#include "web-pages-this.h" +#include "web.h" + +#define DO_HOME_HTML DO_THIS + 0 +#define DO_PROGRAM_HTML DO_THIS + 1 +#define DO_PROGRAM_AJAX DO_THIS + 2 +#define DO_PROGRAM_SCRIPT DO_THIS + 3 +#define DO_RADIATOR_HTML DO_THIS + 4 +#define DO_RADIATOR_AJAX DO_THIS + 5 +#define DO_RADIATOR_SCRIPT DO_THIS + 6 +#define DO_BOILER_HTML DO_THIS + 7 +#define DO_BOILER_AJAX DO_THIS + 8 +#define DO_BOILER_SCRIPT DO_THIS + 9 +#define DO_SYSTEM_HTML DO_THIS + 10 +#define DO_SYSTEM_AJAX DO_THIS + 11 +#define DO_SYSTEM_SCRIPT DO_THIS + 12 +#define DO_1WIRE_HTML DO_THIS + 13 +#define DO_1WIRE_AJAX DO_THIS + 14 +#define DO_1WIRE_SCRIPT DO_THIS + 15 + +int WebServerThisDecideWhatToDo(char *pPath, char* pLastModified) +{ + if (HttpSameStr(pPath, "/" )) return DO_HOME_HTML; + if (HttpSameStr(pPath, "/program" )) return DO_PROGRAM_HTML; + if (HttpSameStr(pPath, "/program-ajax" )) return DO_PROGRAM_AJAX; + if (HttpSameStr(pPath, "/radiator" )) return DO_RADIATOR_HTML; + if (HttpSameStr(pPath, "/radiator-ajax")) return DO_RADIATOR_AJAX; + if (HttpSameStr(pPath, "/boiler" )) return DO_BOILER_HTML; + if (HttpSameStr(pPath, "/boiler-ajax" )) return DO_BOILER_AJAX; + if (HttpSameStr(pPath, "/system" )) return DO_SYSTEM_HTML; + if (HttpSameStr(pPath, "/system-ajax" )) return DO_SYSTEM_AJAX; + if (HttpSameStr(pPath, "/1wire" )) return DO_1WIRE_HTML; + if (HttpSameStr(pPath, "/1wire-ajax" )) return DO_1WIRE_AJAX; + + if (HttpSameStr(pPath, "/program.js" )) return HttpSameDate(WebProgramScriptDate, WebProgramScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_PROGRAM_SCRIPT; + if (HttpSameStr(pPath, "/radiator.js" )) return HttpSameDate(WebRadiatorScriptDate, WebRadiatorScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_RADIATOR_SCRIPT; + if (HttpSameStr(pPath, "/boiler.js" )) return HttpSameDate(WebBoilerScriptDate, WebBoilerScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_BOILER_SCRIPT; + if (HttpSameStr(pPath, "/system.js" )) return HttpSameDate(WebSystemScriptDate, WebSystemScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_SYSTEM_SCRIPT; + if (HttpSameStr(pPath, "/1wire.js" )) return HttpSameDate(WebOneWireScriptDate, WebOneWireScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_1WIRE_SCRIPT; + + return DO_NOT_FOUND; +} + +bool WebServerThisHandleQuery(int todo, char* pQuery) +{ + switch (todo) + { + case DO_PROGRAM_AJAX: WebProgramQuery (pQuery); return true; + case DO_PROGRAM_HTML: WebProgramQuery (pQuery); return true; + case DO_RADIATOR_HTML: WebRadiatorQuery(pQuery); return true; + case DO_RADIATOR_AJAX: WebRadiatorQuery(pQuery); return true; + case DO_BOILER_HTML: WebBoilerQuery (pQuery); return true; + case DO_BOILER_AJAX: WebBoilerQuery (pQuery); return true; + case DO_SYSTEM_HTML: WebSystemQuery (pQuery); return true; + case DO_SYSTEM_AJAX: WebSystemQuery (pQuery); return true; + case DO_1WIRE_HTML: WebOneWireQuery (pQuery); return true; + case DO_1WIRE_AJAX: WebOneWireQuery (pQuery); return true; + } + return false; +} +bool WebServerThisPost(int todo, int contentLength, int contentStart, int size, char* pRequestStream, uint32_t positionInRequestStream, bool* pComplete) +{ + return false; +} +bool WebServerThisReply(int todo) +{ + switch (todo) + { + case DO_HOME_HTML: WebHomeHtml (); return true; + case DO_PROGRAM_HTML: WebProgramHtml (); return true; + case DO_PROGRAM_AJAX: WebProgramAjax (); return true; + case DO_PROGRAM_SCRIPT: WebProgramScript (); return true; + case DO_RADIATOR_HTML: WebRadiatorHtml (); return true; + case DO_RADIATOR_AJAX: WebRadiatorAjax (); return true; + case DO_RADIATOR_SCRIPT: WebRadiatorScript(); return true; + case DO_BOILER_HTML: WebBoilerHtml (); return true; + case DO_BOILER_AJAX: WebBoilerAjax (); return true; + case DO_BOILER_SCRIPT: WebBoilerScript (); return true; + case DO_SYSTEM_HTML: WebSystemHtml (); return true; + case DO_SYSTEM_AJAX: WebSystemAjax (); return true; + case DO_SYSTEM_SCRIPT: WebSystemScript (); return true; + case DO_1WIRE_HTML: WebOneWireHtml (); return true; + case DO_1WIRE_AJAX: WebOneWireAjax (); return true; + case DO_1WIRE_SCRIPT: WebOneWireScript (); return true; + } + return false; +}