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

Committer:
andrewboyson
Date:
2019-06-19
Revision:
63:ae264156d655
Parent:
53:c1bf7d9db507
Child:
64:c736b8924574

File content as of revision 63:ae264156d655:

#include <stdio.h>

#include "http.h"
#include "web-nav-this.h"
#include "web-add.h"
#include "bignum.h"

void WebSystemHtml()
{
    HttpOk("text/html; charset=UTF-8", "no-cache", NULL, NULL);
    WebAddHeader("System", "settings.css", "system.js");
    WebAddNav(SYSTEM_PAGE);
    WebAddH1("System");

    WebAddH2("TFTP");
    WebAddAjaxInput   ("Server url",                      5, "ajax-server-name",   "tftpserver"   );
    WebAddAjaxInput   ("File (strftime)",                11, "ajax-file-name",     "tftpfilename" );
    WebAddAjaxInput   ("Interval (secs) 0=no",            5, "ajax-read-interval", "tftpreadint"  );
    WebAddAjaxInput   ("Records per backup 0=no",         5, "ajax-write-size",    "tftpwriteint" );
    WebAddAjaxLabelled("Count",                              "ajax-count"                         );
    WebAddAjaxLabelled("Started",                            "ajax-start-time"                    );

    WebAddH2("FRAM");
    WebAddAjaxLabelled("Used",                               "ajax-fram-used"                     );
    
    WebAddH2("Compiler");
    WebAddLabelledInt("Version Vvvbbbb", __ARMCC_VERSION);
    
    WebAddH2("Big num test");

    char* n =
"E08973398DD8F5F5E88776397F4EB005BB5383DE0FB7ABDC7DC775290D052E6D"
"12DFA68626D4D26FAA5829FC97ECFA82510F3080BEB1509E4644F12CBBD832CF"
"C6686F07D9B060ACBEEE34096A13F5F7050593DF5EBA3556D961FF197FC981E6"
"F86CEA874070EFAC6D2C749F2DFA553AB9997702A648528C4EF357385774575F";

    char* d =
"00A403C327477634346CA686B57949014B2E8AD2C862B2C7D748096A8B91F736"
"F275D6E8CD15906027314735644D95CD6763CEB49F56AC2F376E1CEE0EBF282D"
"F439906F34D86E085BD5656AD841F313D72D395EFE33CBFF29E4030B3D05A28F"
"B7F18EA27637B07957D32F2BDE8706227D04665EC91BAF8B1AC3EC9144AB7F21";
    char* m =
"0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00302130"
"0906052B0E03021A05000414A9993E364706816ABA3E25717850C26C9CD0D89D";

    uint32_t message[64];
    uint32_t exponent[64];
    uint32_t modulus[64];
    
    BnParseHex(message,  m);
    BnParseHex(exponent, d);
    BnParseHex(modulus,  n);
    
    static uint32_t result[64];
    
    static bool started = false;
    if (!started)
    {
        BnExpModStart(message, exponent, modulus, result);
        started = true;
    }
    
    HttpAddText("<code>");
    HttpAddText("Message\r\n");
    BnAsHttp(message);
    HttpAddText("\r\nExponent\r\n");
    BnAsHttp(exponent);
    HttpAddText("\r\nModulus\r\n");
    BnAsHttp(modulus);
    HttpAddText("\r\nResult\r\n");
    switch(BnExpModStatus)
    {
        case BIGNUM_CALC_NONE:
            HttpAddText("Not started\r\n");
            break;
        case BIGNUM_CALC_STARTED:
            HttpAddF("Progress %d\r\n", BnExpModProgress);
            BnAsHttp(result);
            break;
        case BIGNUM_CALC_FINISHED:
            HttpAddText("Finished\r\n");
            BnAsHttp(result);
            HttpAddF("Time to multiply %llu ms\r\n", BnMulHr / 96000);
            HttpAddF("Time to modulus %llu ms\r\n", BnModHr / 96000);
            break;
    }
    HttpAddText("</code>");
    
    WebAddEnd();
}