Dependencies:   net lpc1768 crypto clock web log

web-derived/home/web-home-query.c

Committer:
andrewboyson
Date:
2019-04-28
Revision:
55:a1bd0572c8b6
Parent:
http-derived/home/http-home-query.c@ 43:bf39371b4576

File content as of revision 55:a1bd0572c8b6:

#include "http.h"
#include "clkgov.h"
#include "clkutc.h"
#include "led.h"
#include "settings.h"

void WebHomeQuery(char* pQuery)
{
    while (pQuery)
    {
        char* pName;
        char* pValue;
        pQuery = HttpQuerySplit(pQuery, &pName, &pValue);
        int value = HttpQueryValueAsInt(pValue);
        
        if (HttpSameStr(pName, "chg-clock-leap-enable" )) ClkUtcTglNextLeapEnable ();
        if (HttpSameStr(pName, "chg-clock-leap-forward")) ClkUtcTglNextLeapForward();
        
        int months1970 = ClkUtcGetNextEpochMonth1970();
        int months     = months1970 % 12;
        int years      = months1970 / 12;
        
        if (HttpSameStr(pName, "set-clock-leap-year"    ))
        {
            years = value - 1970;
            if (years < 0) years = 0;
            ClkUtcSetNextEpochMonth1970(years * 12 + months);     
        }
        if (HttpSameStr(pName, "set-clock-leap-month"   ))
        {
            months = value - 1;
            if (months < 0) months = 0;
            ClkUtcSetNextEpochMonth1970(years * 12 + months);     
        }
        if (HttpSameStr(pName, "set-clock-leap-count"   ))
        {
            uint16_t leaps = value;
            ClkUtcSetEpochOffset(leaps);     
        }
        
        if (HttpSameStr(pName, "ppb"           )) ClkGovSetPpb               (value           );
        if (HttpSameStr(pName, "slewdivisor"   )) SetClockSlewDivisor        (value           );
        if (HttpSameStr(pName, "slewmax"       )) SetClockSlewMaxMs          (value           );
        if (HttpSameStr(pName, "ppbdivisor"    )) SetClockPpbDivisor         (value           );
        if (HttpSameStr(pName, "ppbmaxchange"  )) SetClockPpbChangeMax       (value           );
        if (HttpSameStr(pName, "syncedlimitns" )) SetClockSyncedLimitNs      (value * 1000000 );
        if (HttpSameStr(pName, "syncedhysns"   )) SetClockSyncedHysterisNs   (value * 1000000 );
        if (HttpSameStr(pName, "syncedlimitppb")) SetClockSyncedLimitPpb     (value           );
        if (HttpSameStr(pName, "syncedhysppb"  )) SetClockSyncedHysterisPpb  (value           );
        if (HttpSameStr(pName, "maxoffsetsecs" )) SetClockMaxOffsetSecs      (value           );
        if (HttpSameStr(pName, "clockgovtrace" )) ChgTraceSync();
    }
}