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

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?

UserRevisionLine numberNew 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 }