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:
Fri Jun 21 14:29:58 2019 +0000
Revision:
64:c736b8924574
Parent:
63:ae264156d655
Child:
67:2d379b0c5f05
Updated libraries

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 64:c736b8924574 42
andrewboyson 63:ae264156d655 43 char* m =
andrewboyson 63:ae264156d655 44 "0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
andrewboyson 63:ae264156d655 45 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
andrewboyson 63:ae264156d655 46 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00302130"
andrewboyson 63:ae264156d655 47 "0906052B0E03021A05000414A9993E364706816ABA3E25717850C26C9CD0D89D";
andrewboyson 49:9491c966dc60 48
andrewboyson 64:c736b8924574 49 uint32_t message [32];
andrewboyson 64:c736b8924574 50 uint32_t exponent[32];
andrewboyson 64:c736b8924574 51 uint32_t modulus [32];
andrewboyson 63:ae264156d655 52
andrewboyson 64:c736b8924574 53 BnParseHex1024(message, m);
andrewboyson 64:c736b8924574 54 BnParseHex1024(exponent, d);
andrewboyson 64:c736b8924574 55 BnParseHex1024(modulus, n);
andrewboyson 63:ae264156d655 56
andrewboyson 64:c736b8924574 57 static uint32_t result[32];
andrewboyson 63:ae264156d655 58
andrewboyson 63:ae264156d655 59 static bool started = false;
andrewboyson 63:ae264156d655 60 if (!started)
andrewboyson 63:ae264156d655 61 {
andrewboyson 63:ae264156d655 62 BnExpModStart(message, exponent, modulus, result);
andrewboyson 63:ae264156d655 63 started = true;
andrewboyson 63:ae264156d655 64 }
andrewboyson 63:ae264156d655 65
andrewboyson 63:ae264156d655 66 HttpAddText("<code>");
andrewboyson 63:ae264156d655 67 HttpAddText("Message\r\n");
andrewboyson 64:c736b8924574 68 BnAsHttp1024(message);
andrewboyson 63:ae264156d655 69 HttpAddText("\r\nExponent\r\n");
andrewboyson 64:c736b8924574 70 BnAsHttp1024(exponent);
andrewboyson 63:ae264156d655 71 HttpAddText("\r\nModulus\r\n");
andrewboyson 64:c736b8924574 72 BnAsHttp1024(modulus);
andrewboyson 63:ae264156d655 73 HttpAddText("\r\nResult\r\n");
andrewboyson 63:ae264156d655 74 switch(BnExpModStatus)
andrewboyson 63:ae264156d655 75 {
andrewboyson 63:ae264156d655 76 case BIGNUM_CALC_NONE:
andrewboyson 63:ae264156d655 77 HttpAddText("Not started\r\n");
andrewboyson 63:ae264156d655 78 break;
andrewboyson 63:ae264156d655 79 case BIGNUM_CALC_STARTED:
andrewboyson 63:ae264156d655 80 HttpAddF("Progress %d\r\n", BnExpModProgress);
andrewboyson 64:c736b8924574 81 BnAsHttp1024(result);
andrewboyson 63:ae264156d655 82 break;
andrewboyson 63:ae264156d655 83 case BIGNUM_CALC_FINISHED:
andrewboyson 63:ae264156d655 84 HttpAddText("Finished\r\n");
andrewboyson 64:c736b8924574 85 BnAsHttp1024(result);
andrewboyson 63:ae264156d655 86 HttpAddF("Time to multiply %llu ms\r\n", BnMulHr / 96000);
andrewboyson 63:ae264156d655 87 HttpAddF("Time to modulus %llu ms\r\n", BnModHr / 96000);
andrewboyson 63:ae264156d655 88 break;
andrewboyson 63:ae264156d655 89 }
andrewboyson 63:ae264156d655 90 HttpAddText("</code>");
andrewboyson 63:ae264156d655 91
andrewboyson 63:ae264156d655 92 WebAddEnd();
andrewboyson 49:9491c966dc60 93 }