Common stuff for all my devices' web server pages: css, login, log, ipv4, ipv6, firmware update, clock, reset info etc.

Dependents:   oldheating gps motorhome heating

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers web-clock-query.c Source File

web-clock-query.c

00001 #include "http.h"
00002 #include "clkgov.h"
00003 #include "clkutc.h"
00004 #include "led.h"
00005 #include "settings.h"
00006 
00007 void WebClockQuery(char* pQuery)
00008 {
00009     while (pQuery)
00010     {
00011         char* pName;
00012         char* pValue;
00013         pQuery = HttpQuerySplit(pQuery, &pName, &pValue);
00014         int value = HttpQueryValueAsInt(pValue);
00015         
00016         if (HttpSameStr(pName, "chg-clock-leap-enable" )) ClkUtcTglNextLeapEnable ();
00017         if (HttpSameStr(pName, "chg-clock-leap-forward")) ClkUtcTglNextLeapForward();
00018         
00019         int months1970 = ClkUtcGetNextEpochMonth1970();
00020         int months     = months1970 % 12;
00021         int years      = months1970 / 12;
00022         
00023         if (HttpSameStr(pName, "set-clock-leap-year"    ))
00024         {
00025             years = value - 1970;
00026             if (years < 0) years = 0;
00027             ClkUtcSetNextEpochMonth1970(years * 12 + months);     
00028         }
00029         if (HttpSameStr(pName, "set-clock-leap-month"   ))
00030         {
00031             months = value - 1;
00032             if (months < 0) months = 0;
00033             ClkUtcSetNextEpochMonth1970(years * 12 + months);     
00034         }
00035         if (HttpSameStr(pName, "set-clock-leap-count"   ))
00036         {
00037             uint16_t leaps = value;
00038             ClkUtcSetEpochOffsetWithoutUtcChange(leaps);     
00039         }
00040         
00041         if (HttpSameStr(pName, "ppb"           )) ClkGovSetPpb               (value           );
00042         if (HttpSameStr(pName, "slewdivisor"   )) SetClockSlewDivisor        (value           );
00043         if (HttpSameStr(pName, "slewmax"       )) SetClockSlewMaxMs          (value           );
00044         if (HttpSameStr(pName, "ppbdivisor"    )) SetClockPpbDivisor         (value           );
00045         if (HttpSameStr(pName, "ppbmaxchange"  )) SetClockPpbChangeMax       (value           );
00046         if (HttpSameStr(pName, "syncedlimitns" )) SetClockSyncedLimitNs      (value * 1000000 );
00047         if (HttpSameStr(pName, "syncedhysns"   )) SetClockSyncedHysterisNs   (value * 1000000 );
00048         if (HttpSameStr(pName, "syncedlimitppb")) SetClockSyncedLimitPpb     (value           );
00049         if (HttpSameStr(pName, "syncedhysppb"  )) SetClockSyncedHysterisPpb  (value           );
00050         if (HttpSameStr(pName, "maxoffsetsecs" )) SetClockMaxOffsetSecs      (value           );
00051         if (HttpSameStr(pName, "clockgovtrace" )) ChgTraceSync();
00052         
00053         if (HttpSameStr(pName, "ntpserver"     )) SetNtpClientServerName     (pValue          );
00054         if (HttpSameStr(pName, "clockinitial"  )) SetNtpClientInitialInterval(value           );
00055         if (HttpSameStr(pName, "clocknormal"   )) SetNtpClientNormalInterval (value *      60 );
00056         if (HttpSameStr(pName, "clockretry"    )) SetNtpClientRetryInterval  (value           );
00057         if (HttpSameStr(pName, "clockoffset"   )) SetNtpClientOffsetMs       (value           );
00058         if (HttpSameStr(pName, "clockmaxdelay" )) SetNtpClientMaxDelayMs     (value           );
00059 
00060     }
00061 }
00062