A GPS disciplined clock
Dependencies: net lpc1768 crypto clock web log
Diff: web-this/home/web-home-query.c
- Revision:
- 59:d2d25c2265f8
- Parent:
- 55:a1bd0572c8b6
- Child:
- 90:9b8bc951c6d9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web-this/home/web-home-query.c Wed May 01 10:14:26 2019 +0000 @@ -0,0 +1,54 @@ +#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(); + } +} +