Central Heating controller using the real time clock, PHY module for internet, 1-wire interface for temperature sensors, a system log and a configuration file
Dependencies: net 1-wire lpc1768 crypto clock web fram log
/media/uploads/andrewboyson/heating.sch
/media/uploads/andrewboyson/heating.brd
/media/uploads/andrewboyson/eagle.epf
web-this/system/web-system-html.c@63:ae264156d655, 2019-06-19 (annotated)
- Committer:
- andrewboyson
- Date:
- Wed Jun 19 15:38:07 2019 +0000
- Revision:
- 63:ae264156d655
- Parent:
- 53:c1bf7d9db507
- Child:
- 64:c736b8924574
Made changes to the system web page
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewboyson | 49:9491c966dc60 | 1 | #include <stdio.h> |
andrewboyson | 49:9491c966dc60 | 2 | |
andrewboyson | 49:9491c966dc60 | 3 | #include "http.h" |
andrewboyson | 53:c1bf7d9db507 | 4 | #include "web-nav-this.h" |
andrewboyson | 51:c7c6ce0d57ad | 5 | #include "web-add.h" |
andrewboyson | 63:ae264156d655 | 6 | #include "bignum.h" |
andrewboyson | 49:9491c966dc60 | 7 | |
andrewboyson | 49:9491c966dc60 | 8 | void WebSystemHtml() |
andrewboyson | 49:9491c966dc60 | 9 | { |
andrewboyson | 49:9491c966dc60 | 10 | HttpOk("text/html; charset=UTF-8", "no-cache", NULL, NULL); |
andrewboyson | 51:c7c6ce0d57ad | 11 | WebAddHeader("System", "settings.css", "system.js"); |
andrewboyson | 51:c7c6ce0d57ad | 12 | WebAddNav(SYSTEM_PAGE); |
andrewboyson | 51:c7c6ce0d57ad | 13 | WebAddH1("System"); |
andrewboyson | 49:9491c966dc60 | 14 | |
andrewboyson | 51:c7c6ce0d57ad | 15 | WebAddH2("TFTP"); |
andrewboyson | 51:c7c6ce0d57ad | 16 | WebAddAjaxInput ("Server url", 5, "ajax-server-name", "tftpserver" ); |
andrewboyson | 51:c7c6ce0d57ad | 17 | WebAddAjaxInput ("File (strftime)", 11, "ajax-file-name", "tftpfilename" ); |
andrewboyson | 51:c7c6ce0d57ad | 18 | WebAddAjaxInput ("Interval (secs) 0=no", 5, "ajax-read-interval", "tftpreadint" ); |
andrewboyson | 51:c7c6ce0d57ad | 19 | WebAddAjaxInput ("Records per backup 0=no", 5, "ajax-write-size", "tftpwriteint" ); |
andrewboyson | 51:c7c6ce0d57ad | 20 | WebAddAjaxLabelled("Count", "ajax-count" ); |
andrewboyson | 51:c7c6ce0d57ad | 21 | WebAddAjaxLabelled("Started", "ajax-start-time" ); |
andrewboyson | 49:9491c966dc60 | 22 | |
andrewboyson | 51:c7c6ce0d57ad | 23 | WebAddH2("FRAM"); |
andrewboyson | 51:c7c6ce0d57ad | 24 | WebAddAjaxLabelled("Used", "ajax-fram-used" ); |
andrewboyson | 49:9491c966dc60 | 25 | |
andrewboyson | 51:c7c6ce0d57ad | 26 | WebAddH2("Compiler"); |
andrewboyson | 51:c7c6ce0d57ad | 27 | WebAddLabelledInt("Version Vvvbbbb", __ARMCC_VERSION); |
andrewboyson | 49:9491c966dc60 | 28 | |
andrewboyson | 63:ae264156d655 | 29 | WebAddH2("Big num test"); |
andrewboyson | 63:ae264156d655 | 30 | |
andrewboyson | 63:ae264156d655 | 31 | char* n = |
andrewboyson | 63:ae264156d655 | 32 | "E08973398DD8F5F5E88776397F4EB005BB5383DE0FB7ABDC7DC775290D052E6D" |
andrewboyson | 63:ae264156d655 | 33 | "12DFA68626D4D26FAA5829FC97ECFA82510F3080BEB1509E4644F12CBBD832CF" |
andrewboyson | 63:ae264156d655 | 34 | "C6686F07D9B060ACBEEE34096A13F5F7050593DF5EBA3556D961FF197FC981E6" |
andrewboyson | 63:ae264156d655 | 35 | "F86CEA874070EFAC6D2C749F2DFA553AB9997702A648528C4EF357385774575F"; |
andrewboyson | 63:ae264156d655 | 36 | |
andrewboyson | 63:ae264156d655 | 37 | char* d = |
andrewboyson | 63:ae264156d655 | 38 | "00A403C327477634346CA686B57949014B2E8AD2C862B2C7D748096A8B91F736" |
andrewboyson | 63:ae264156d655 | 39 | "F275D6E8CD15906027314735644D95CD6763CEB49F56AC2F376E1CEE0EBF282D" |
andrewboyson | 63:ae264156d655 | 40 | "F439906F34D86E085BD5656AD841F313D72D395EFE33CBFF29E4030B3D05A28F" |
andrewboyson | 63:ae264156d655 | 41 | "B7F18EA27637B07957D32F2BDE8706227D04665EC91BAF8B1AC3EC9144AB7F21"; |
andrewboyson | 63:ae264156d655 | 42 | char* m = |
andrewboyson | 63:ae264156d655 | 43 | "0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" |
andrewboyson | 63:ae264156d655 | 44 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" |
andrewboyson | 63:ae264156d655 | 45 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00302130" |
andrewboyson | 63:ae264156d655 | 46 | "0906052B0E03021A05000414A9993E364706816ABA3E25717850C26C9CD0D89D"; |
andrewboyson | 49:9491c966dc60 | 47 | |
andrewboyson | 63:ae264156d655 | 48 | uint32_t message[64]; |
andrewboyson | 63:ae264156d655 | 49 | uint32_t exponent[64]; |
andrewboyson | 63:ae264156d655 | 50 | uint32_t modulus[64]; |
andrewboyson | 63:ae264156d655 | 51 | |
andrewboyson | 63:ae264156d655 | 52 | BnParseHex(message, m); |
andrewboyson | 63:ae264156d655 | 53 | BnParseHex(exponent, d); |
andrewboyson | 63:ae264156d655 | 54 | BnParseHex(modulus, n); |
andrewboyson | 63:ae264156d655 | 55 | |
andrewboyson | 63:ae264156d655 | 56 | static uint32_t result[64]; |
andrewboyson | 63:ae264156d655 | 57 | |
andrewboyson | 63:ae264156d655 | 58 | static bool started = false; |
andrewboyson | 63:ae264156d655 | 59 | if (!started) |
andrewboyson | 63:ae264156d655 | 60 | { |
andrewboyson | 63:ae264156d655 | 61 | BnExpModStart(message, exponent, modulus, result); |
andrewboyson | 63:ae264156d655 | 62 | started = true; |
andrewboyson | 63:ae264156d655 | 63 | } |
andrewboyson | 63:ae264156d655 | 64 | |
andrewboyson | 63:ae264156d655 | 65 | HttpAddText("<code>"); |
andrewboyson | 63:ae264156d655 | 66 | HttpAddText("Message\r\n"); |
andrewboyson | 63:ae264156d655 | 67 | BnAsHttp(message); |
andrewboyson | 63:ae264156d655 | 68 | HttpAddText("\r\nExponent\r\n"); |
andrewboyson | 63:ae264156d655 | 69 | BnAsHttp(exponent); |
andrewboyson | 63:ae264156d655 | 70 | HttpAddText("\r\nModulus\r\n"); |
andrewboyson | 63:ae264156d655 | 71 | BnAsHttp(modulus); |
andrewboyson | 63:ae264156d655 | 72 | HttpAddText("\r\nResult\r\n"); |
andrewboyson | 63:ae264156d655 | 73 | switch(BnExpModStatus) |
andrewboyson | 63:ae264156d655 | 74 | { |
andrewboyson | 63:ae264156d655 | 75 | case BIGNUM_CALC_NONE: |
andrewboyson | 63:ae264156d655 | 76 | HttpAddText("Not started\r\n"); |
andrewboyson | 63:ae264156d655 | 77 | break; |
andrewboyson | 63:ae264156d655 | 78 | case BIGNUM_CALC_STARTED: |
andrewboyson | 63:ae264156d655 | 79 | HttpAddF("Progress %d\r\n", BnExpModProgress); |
andrewboyson | 63:ae264156d655 | 80 | BnAsHttp(result); |
andrewboyson | 63:ae264156d655 | 81 | break; |
andrewboyson | 63:ae264156d655 | 82 | case BIGNUM_CALC_FINISHED: |
andrewboyson | 63:ae264156d655 | 83 | HttpAddText("Finished\r\n"); |
andrewboyson | 63:ae264156d655 | 84 | BnAsHttp(result); |
andrewboyson | 63:ae264156d655 | 85 | HttpAddF("Time to multiply %llu ms\r\n", BnMulHr / 96000); |
andrewboyson | 63:ae264156d655 | 86 | HttpAddF("Time to modulus %llu ms\r\n", BnModHr / 96000); |
andrewboyson | 63:ae264156d655 | 87 | break; |
andrewboyson | 63:ae264156d655 | 88 | } |
andrewboyson | 63:ae264156d655 | 89 | HttpAddText("</code>"); |
andrewboyson | 63:ae264156d655 | 90 | |
andrewboyson | 63:ae264156d655 | 91 | WebAddEnd(); |
andrewboyson | 49:9491c966dc60 | 92 | } |