Monitor motorhome leisure battery and provide simple control of habitation
Dependencies: net lpc1768 crypto clock web fram log
settings/settings.c@10:a97a7cb7aa82, 2022-06-10 (annotated)
- Committer:
- andrewboyson
- Date:
- Fri Jun 10 18:32:21 2022 +0000
- Revision:
- 10:a97a7cb7aa82
- Parent:
- 9:d957af50fdc2
Corrected amp second count in html
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewboyson | 4:f38b5bb8adac | 1 | |
andrewboyson | 4:f38b5bb8adac | 2 | |
andrewboyson | 0:b843d647695c | 3 | #include <stdbool.h> |
andrewboyson | 0:b843d647695c | 4 | #include <stdlib.h> |
andrewboyson | 0:b843d647695c | 5 | #include <string.h> |
andrewboyson | 0:b843d647695c | 6 | |
andrewboyson | 0:b843d647695c | 7 | #include "clkgov.h" |
andrewboyson | 0:b843d647695c | 8 | #include "fram.h" |
andrewboyson | 0:b843d647695c | 9 | #include "log.h" |
andrewboyson | 0:b843d647695c | 10 | #include "net.h" |
andrewboyson | 0:b843d647695c | 11 | #include "link.h" |
andrewboyson | 0:b843d647695c | 12 | #include "dnsname.h" |
andrewboyson | 0:b843d647695c | 13 | #include "dnsquery.h" |
andrewboyson | 0:b843d647695c | 14 | #include "dnsreply.h" |
andrewboyson | 0:b843d647695c | 15 | #include "dnsserver.h" |
andrewboyson | 0:b843d647695c | 16 | #include "dnslabel.h" |
andrewboyson | 0:b843d647695c | 17 | #include "ntp.h" |
andrewboyson | 0:b843d647695c | 18 | #include "dhcp.h" |
andrewboyson | 0:b843d647695c | 19 | #include "ns.h" |
andrewboyson | 0:b843d647695c | 20 | #include "nr.h" |
andrewboyson | 0:b843d647695c | 21 | #include "ntpclient.h" |
andrewboyson | 0:b843d647695c | 22 | #include "echo4.h" |
andrewboyson | 0:b843d647695c | 23 | #include "echo6.h" |
andrewboyson | 0:b843d647695c | 24 | #include "dest6.h" |
andrewboyson | 0:b843d647695c | 25 | #include "ra.h" |
andrewboyson | 0:b843d647695c | 26 | #include "rs.h" |
andrewboyson | 0:b843d647695c | 27 | #include "ar4.h" |
andrewboyson | 0:b843d647695c | 28 | #include "ar6.h" |
andrewboyson | 0:b843d647695c | 29 | #include "arp.h" |
andrewboyson | 0:b843d647695c | 30 | #include "ip4.h" |
andrewboyson | 0:b843d647695c | 31 | #include "ip6.h" |
andrewboyson | 0:b843d647695c | 32 | #include "udp.h" |
andrewboyson | 0:b843d647695c | 33 | #include "tcp.h" |
andrewboyson | 0:b843d647695c | 34 | #include "web.h" |
andrewboyson | 0:b843d647695c | 35 | #include "tftp.h" |
andrewboyson | 0:b843d647695c | 36 | #include "dns.h" |
andrewboyson | 0:b843d647695c | 37 | #include "led.h" |
andrewboyson | 0:b843d647695c | 38 | |
andrewboyson | 0:b843d647695c | 39 | static int iClkGovSlewDivisor ; |
andrewboyson | 0:b843d647695c | 40 | static int iClkGovSlewMaxMs ; |
andrewboyson | 0:b843d647695c | 41 | static int iClkGovPpbDivisor ; |
andrewboyson | 0:b843d647695c | 42 | static int iClkGovPpbChangeMax ; |
andrewboyson | 0:b843d647695c | 43 | static int iClkGovSyncedLimitNs ; |
andrewboyson | 0:b843d647695c | 44 | static int iClkGovSyncedLimitPpb ; |
andrewboyson | 0:b843d647695c | 45 | static int iClkGovSyncedHysterisNs ; |
andrewboyson | 0:b843d647695c | 46 | static int iClkGovSyncedHysterisPpb; |
andrewboyson | 0:b843d647695c | 47 | static int iClkGovMaxOffsetSecs ; |
andrewboyson | 0:b843d647695c | 48 | static int iClkGov; |
andrewboyson | 0:b843d647695c | 49 | |
andrewboyson | 0:b843d647695c | 50 | static int iDnsSendRequestsViaIp4 ; |
andrewboyson | 0:b843d647695c | 51 | static int iNtpSendRequestsViaIp4 ; |
andrewboyson | 0:b843d647695c | 52 | static int iTftpSendRequestsViaIp4; |
andrewboyson | 0:b843d647695c | 53 | |
andrewboyson | 0:b843d647695c | 54 | static int iNetHost; |
andrewboyson | 0:b843d647695c | 55 | static int iLogUart; |
andrewboyson | 0:b843d647695c | 56 | static int iNetStack; |
andrewboyson | 0:b843d647695c | 57 | static int iNetNewLine; |
andrewboyson | 0:b843d647695c | 58 | static int iNetVerbose; |
andrewboyson | 0:b843d647695c | 59 | static int iLink; |
andrewboyson | 0:b843d647695c | 60 | static int iDnsName; |
andrewboyson | 0:b843d647695c | 61 | static int iDnsQuery; |
andrewboyson | 0:b843d647695c | 62 | static int iDnsReply; |
andrewboyson | 0:b843d647695c | 63 | static int iDnsServer; |
andrewboyson | 0:b843d647695c | 64 | static int iNtp; |
andrewboyson | 0:b843d647695c | 65 | static int iDhcp; |
andrewboyson | 0:b843d647695c | 66 | static int iNsRecvSol; |
andrewboyson | 0:b843d647695c | 67 | static int iNsRecvAdv; |
andrewboyson | 0:b843d647695c | 68 | static int iNsSendSol; |
andrewboyson | 0:b843d647695c | 69 | static int iNr4; |
andrewboyson | 0:b843d647695c | 70 | static int iNr; |
andrewboyson | 0:b843d647695c | 71 | static int iNtpClient; |
andrewboyson | 0:b843d647695c | 72 | static int iEcho4; |
andrewboyson | 0:b843d647695c | 73 | static int iEcho6; |
andrewboyson | 0:b843d647695c | 74 | static int iDest6; |
andrewboyson | 0:b843d647695c | 75 | static int iRa; |
andrewboyson | 0:b843d647695c | 76 | static int iRs; |
andrewboyson | 0:b843d647695c | 77 | static int iAr4; |
andrewboyson | 0:b843d647695c | 78 | static int iAr6; |
andrewboyson | 0:b843d647695c | 79 | static int iArp; |
andrewboyson | 0:b843d647695c | 80 | static int iIp4; |
andrewboyson | 0:b843d647695c | 81 | static int iIp6; |
andrewboyson | 0:b843d647695c | 82 | static int iUdp; |
andrewboyson | 0:b843d647695c | 83 | static int iTcp; |
andrewboyson | 0:b843d647695c | 84 | static int iHttp; |
andrewboyson | 0:b843d647695c | 85 | static int iTftp; |
andrewboyson | 0:b843d647695c | 86 | |
andrewboyson | 4:f38b5bb8adac | 87 | //Values |
andrewboyson | 4:f38b5bb8adac | 88 | static int iValuesServerName; |
andrewboyson | 4:f38b5bb8adac | 89 | void SetValuesServerName(char* value) { FramWrite(iValuesServerName, DNS_MAX_LABEL_LENGTH, value); } |
andrewboyson | 4:f38b5bb8adac | 90 | void GetValuesServerName(char* value) { FramRead (iValuesServerName, DNS_MAX_LABEL_LENGTH, value); value[DNS_MAX_LABEL_LENGTH] = 0; } |
andrewboyson | 4:f38b5bb8adac | 91 | |
andrewboyson | 4:f38b5bb8adac | 92 | static int iValuesFileName; |
andrewboyson | 4:f38b5bb8adac | 93 | void SetValuesFileName(char* value) { FramWrite(iValuesFileName, DNS_MAX_LABEL_LENGTH, value); } |
andrewboyson | 4:f38b5bb8adac | 94 | void GetValuesFileName(char* value) { FramRead (iValuesFileName, DNS_MAX_LABEL_LENGTH, value); value[DNS_MAX_LABEL_LENGTH] = 0; } |
andrewboyson | 4:f38b5bb8adac | 95 | |
andrewboyson | 4:f38b5bb8adac | 96 | static int iValuesWriteSize; |
andrewboyson | 4:f38b5bb8adac | 97 | void SetValuesWriteSize(int* pValue) { FramWrite(iValuesWriteSize, 4, pValue); } |
andrewboyson | 4:f38b5bb8adac | 98 | void GetValuesWriteSize(int* pValue) { FramRead (iValuesWriteSize, 4, pValue); } |
andrewboyson | 4:f38b5bb8adac | 99 | |
andrewboyson | 4:f38b5bb8adac | 100 | static int iValuesReadInterval; |
andrewboyson | 4:f38b5bb8adac | 101 | void SetValuesReadInterval(int* pValue) { FramWrite(iValuesReadInterval, 4, pValue); } |
andrewboyson | 4:f38b5bb8adac | 102 | void GetValuesReadInterval(int* pValue) { FramRead (iValuesReadInterval, 4, pValue); } |
andrewboyson | 4:f38b5bb8adac | 103 | |
andrewboyson | 4:f38b5bb8adac | 104 | static int iValuesStartTime; |
andrewboyson | 4:f38b5bb8adac | 105 | void SetValuesStartTime(int64_t* pValue) { FramWrite(iValuesStartTime, 8, pValue); } |
andrewboyson | 4:f38b5bb8adac | 106 | void GetValuesStartTime(int64_t* pValue) { FramRead (iValuesStartTime, 8, pValue); } |
andrewboyson | 4:f38b5bb8adac | 107 | |
andrewboyson | 4:f38b5bb8adac | 108 | static int iValuesCount; |
andrewboyson | 4:f38b5bb8adac | 109 | void SetValuesCount(int* pValue) { FramWrite(iValuesCount, 4, pValue); } |
andrewboyson | 4:f38b5bb8adac | 110 | void GetValuesCount(int* pValue) { FramRead (iValuesCount, 4, pValue); } |
andrewboyson | 4:f38b5bb8adac | 111 | |
andrewboyson | 4:f38b5bb8adac | 112 | static int iValuesData; |
andrewboyson | 4:f38b5bb8adac | 113 | void GetValuesData(int index, char* pValue) { FramRead (iValuesData + index, 1, pValue); } |
andrewboyson | 9:d957af50fdc2 | 114 | void SetValuesData(int recordLength, int count, void* pValue) { FramWrite(iValuesData + recordLength * count, recordLength, pValue); } |
andrewboyson | 9:d957af50fdc2 | 115 | int GetValuesMaxIndex() { return FRAM_SIZE - iValuesData; } |
andrewboyson | 9:d957af50fdc2 | 116 | int GetValuesMaxCount(int recordLength) { return GetValuesMaxIndex() / recordLength; } |
andrewboyson | 4:f38b5bb8adac | 117 | |
andrewboyson | 0:b843d647695c | 118 | //Clock settings |
andrewboyson | 0:b843d647695c | 119 | void SetClockSlewDivisor (int value) { ClkGovSlewDivisor = value; FramWrite(iClkGovSlewDivisor, 4, &ClkGovSlewDivisor ); } |
andrewboyson | 0:b843d647695c | 120 | void SetClockSlewMaxMs (int value) { ClkGovSlewChangeMaxMs = value; FramWrite(iClkGovSlewMaxMs, 4, &ClkGovSlewChangeMaxMs ); } |
andrewboyson | 0:b843d647695c | 121 | void SetClockPpbDivisor (int value) { ClkGovFreqDivisor = value; FramWrite(iClkGovPpbDivisor, 4, &ClkGovFreqDivisor ); } |
andrewboyson | 0:b843d647695c | 122 | void SetClockPpbChangeMax (int value) { ClkGovFreqChangeMaxPpb = value; FramWrite(iClkGovPpbChangeMax, 4, &ClkGovFreqChangeMaxPpb ); } |
andrewboyson | 0:b843d647695c | 123 | void SetClockSyncedLimitNs (int value) { ClkGovSlewSyncedLimNs = value; FramWrite(iClkGovSyncedLimitNs, 4, &ClkGovSlewSyncedLimNs ); } |
andrewboyson | 0:b843d647695c | 124 | void SetClockSyncedLimitPpb (int value) { ClkGovFreqSyncedLimPpb = value; FramWrite(iClkGovSyncedLimitPpb, 4, &ClkGovFreqSyncedLimPpb ); } |
andrewboyson | 0:b843d647695c | 125 | void SetClockSyncedHysterisNs (int value) { ClkGovSlewSyncedHysNs = value; FramWrite(iClkGovSyncedHysterisNs, 4, &ClkGovSlewSyncedHysNs ); } |
andrewboyson | 0:b843d647695c | 126 | void SetClockSyncedHysterisPpb(int value) { ClkGovFreqSyncedHysPpb = value; FramWrite(iClkGovSyncedHysterisPpb, 4, &ClkGovFreqSyncedHysPpb ); } |
andrewboyson | 0:b843d647695c | 127 | void SetClockMaxOffsetSecs (int value) { ClkGovSlewOffsetMaxSecs = value; FramWrite(iClkGovMaxOffsetSecs, 4, &ClkGovSlewOffsetMaxSecs); } |
andrewboyson | 0:b843d647695c | 128 | void ChgTraceSync () { ClkGovTrace = !ClkGovTrace ; FramWrite(iClkGov, 1, &ClkGovTrace ); } |
andrewboyson | 0:b843d647695c | 129 | |
andrewboyson | 0:b843d647695c | 130 | //Log settings |
andrewboyson | 0:b843d647695c | 131 | void ChgLogUart () { LogUart = !LogUart; FramWrite(iLogUart, 1, &LogUart ); } |
andrewboyson | 0:b843d647695c | 132 | |
andrewboyson | 0:b843d647695c | 133 | //Net settings |
andrewboyson | 0:b843d647695c | 134 | void ChgDnsSendRequestsViaIp4 () { DnsSendRequestsViaIp4 = !DnsSendRequestsViaIp4; FramWrite( iDnsSendRequestsViaIp4, 1, &DnsSendRequestsViaIp4); } |
andrewboyson | 0:b843d647695c | 135 | void ChgNtpSendRequestsViaIp4 () { NtpClientQuerySendRequestsViaIp4 = !NtpClientQuerySendRequestsViaIp4; FramWrite( iNtpSendRequestsViaIp4, 1, &NtpClientQuerySendRequestsViaIp4); } |
andrewboyson | 0:b843d647695c | 136 | void ChgTftpSendRequestsViaIp4 () { TftpSendRequestsViaIp4 = !TftpSendRequestsViaIp4; FramWrite(iTftpSendRequestsViaIp4, 1, &TftpSendRequestsViaIp4); } |
andrewboyson | 0:b843d647695c | 137 | |
andrewboyson | 0:b843d647695c | 138 | void SetTraceNetHost (char* text) |
andrewboyson | 0:b843d647695c | 139 | { |
andrewboyson | 0:b843d647695c | 140 | int value = strtol(text, NULL, 16); |
andrewboyson | 0:b843d647695c | 141 | NetTraceHost[1] = value & 0xFF; |
andrewboyson | 0:b843d647695c | 142 | NetTraceHost[0] = (value >> 8) & 0xFF; |
andrewboyson | 0:b843d647695c | 143 | FramWrite(iNetHost, 2, NetTraceHost); |
andrewboyson | 0:b843d647695c | 144 | } |
andrewboyson | 0:b843d647695c | 145 | void ChgTraceNetStack () { NetTraceStack = !NetTraceStack; FramWrite(iNetStack, 1, &NetTraceStack ); } |
andrewboyson | 0:b843d647695c | 146 | void ChgTraceNetNewLine() { NetTraceNewLine = !NetTraceNewLine; FramWrite(iNetNewLine, 1, &NetTraceNewLine); } |
andrewboyson | 0:b843d647695c | 147 | void ChgTraceNetVerbose() { NetTraceVerbose = !NetTraceVerbose; FramWrite(iNetVerbose, 1, &NetTraceVerbose); } |
andrewboyson | 0:b843d647695c | 148 | void ChgTraceLink () { LinkTrace = !LinkTrace; FramWrite(iLink, 1, &LinkTrace ); } |
andrewboyson | 0:b843d647695c | 149 | void ChgTraceDnsName () { DnsNameTrace = !DnsNameTrace; FramWrite(iDnsName, 1, &DnsNameTrace ); } |
andrewboyson | 0:b843d647695c | 150 | void ChgTraceDnsQuery () { DnsQueryTrace = !DnsQueryTrace; FramWrite(iDnsQuery, 1, &DnsQueryTrace ); } |
andrewboyson | 0:b843d647695c | 151 | void ChgTraceDnsReply () { DnsReplyTrace = !DnsReplyTrace; FramWrite(iDnsReply, 1, &DnsReplyTrace ); } |
andrewboyson | 0:b843d647695c | 152 | void ChgTraceDnsServer () { DnsServerTrace = !DnsServerTrace; FramWrite(iDnsServer, 1, &DnsServerTrace ); } |
andrewboyson | 0:b843d647695c | 153 | void ChgTraceNtp () { NtpTrace = !NtpTrace; FramWrite(iNtp, 1, &NtpTrace ); } |
andrewboyson | 0:b843d647695c | 154 | void ChgTraceDhcp () { DhcpTrace = !DhcpTrace; FramWrite(iDhcp, 1, &DhcpTrace ); } |
andrewboyson | 0:b843d647695c | 155 | void ChgTraceNsRecvSol () { NsTraceRecvSol = !NsTraceRecvSol; FramWrite(iNsRecvSol, 1, &NsTraceRecvSol); } |
andrewboyson | 0:b843d647695c | 156 | void ChgTraceNsRecvAdv () { NsTraceRecvAdv = !NsTraceRecvAdv; FramWrite(iNsRecvAdv, 1, &NsTraceRecvAdv); } |
andrewboyson | 0:b843d647695c | 157 | void ChgTraceNsSendSol () { NsTraceSendSol = !NsTraceSendSol; FramWrite(iNsSendSol, 1, &NsTraceSendSol); } |
andrewboyson | 0:b843d647695c | 158 | void ChgTraceNr4 () { Nr4Trace = !Nr4Trace ; FramWrite(iNr4, 1, &Nr4Trace ); } |
andrewboyson | 1:3a341b6ca233 | 159 | void ChgTraceNr () { NrTrace = !NrTrace ; FramWrite(iNr, 1, &NrTrace ); } |
andrewboyson | 0:b843d647695c | 160 | void ChgTraceNtpClient () { NtpClientTrace = !NtpClientTrace ; FramWrite(iNtpClient, 1, &NtpClientTrace ); } |
andrewboyson | 0:b843d647695c | 161 | void ChgTraceEcho4 () { Echo4Trace = !Echo4Trace ; FramWrite(iEcho4, 1, &Echo4Trace ); } |
andrewboyson | 0:b843d647695c | 162 | void ChgTraceEcho6 () { Echo6Trace = !Echo6Trace ; FramWrite(iEcho6, 1, &Echo6Trace ); } |
andrewboyson | 0:b843d647695c | 163 | void ChgTraceDest6 () { Dest6Trace = !Dest6Trace ; FramWrite(iDest6, 1, &Dest6Trace ); } |
andrewboyson | 0:b843d647695c | 164 | void ChgTraceRa () { RaTrace = !RaTrace ; FramWrite(iRa, 1, &RaTrace ); } |
andrewboyson | 0:b843d647695c | 165 | void ChgTraceRs () { RsTrace = !RsTrace ; FramWrite(iRs, 1, &RsTrace ); } |
andrewboyson | 0:b843d647695c | 166 | void ChgTraceAr4 () { Ar4Trace = !Ar4Trace ; FramWrite(iAr4, 1, &Ar4Trace ); } |
andrewboyson | 0:b843d647695c | 167 | void ChgTraceAr6 () { Ar6Trace = !Ar6Trace ; FramWrite(iAr6, 1, &Ar6Trace ); } |
andrewboyson | 0:b843d647695c | 168 | void ChgTraceArp () { ArpTrace = !ArpTrace ; FramWrite(iArp, 1, &ArpTrace ); } |
andrewboyson | 0:b843d647695c | 169 | void ChgTraceIp4 () { Ip4Trace = !Ip4Trace ; FramWrite(iIp4, 1, &Ip4Trace ); } |
andrewboyson | 0:b843d647695c | 170 | void ChgTraceIp6 () { Ip6Trace = !Ip6Trace ; FramWrite(iIp6, 1, &Ip6Trace ); } |
andrewboyson | 0:b843d647695c | 171 | void ChgTraceUdp () { UdpTrace = !UdpTrace ; FramWrite(iUdp, 1, &UdpTrace ); } |
andrewboyson | 0:b843d647695c | 172 | void ChgTraceTcp () { TcpTrace = !TcpTrace ; FramWrite(iTcp, 1, &TcpTrace ); } |
andrewboyson | 0:b843d647695c | 173 | void ChgTraceHttp () { WebTrace = !WebTrace ; FramWrite(iHttp, 1, &WebTrace ); } |
andrewboyson | 0:b843d647695c | 174 | void ChgTraceTftp () { TftpTrace = !TftpTrace ; FramWrite(iTftp, 1, &TftpTrace ); } |
andrewboyson | 0:b843d647695c | 175 | |
andrewboyson | 0:b843d647695c | 176 | |
andrewboyson | 0:b843d647695c | 177 | static int iServerName; |
andrewboyson | 0:b843d647695c | 178 | static int iInitialInterval; |
andrewboyson | 0:b843d647695c | 179 | static int iNormalInterval; |
andrewboyson | 0:b843d647695c | 180 | static int iRetryInterval; |
andrewboyson | 0:b843d647695c | 181 | static int iOffsetMs; |
andrewboyson | 0:b843d647695c | 182 | static int iMaxDelayMs; |
andrewboyson | 0:b843d647695c | 183 | |
andrewboyson | 0:b843d647695c | 184 | void SetNtpClientServerName ( char* value) { DnsLabelCopy(NtpClientQueryServerName, value); FramWrite(iServerName, DNS_MAX_LABEL_LENGTH, NtpClientQueryServerName ); } |
andrewboyson | 0:b843d647695c | 185 | void SetNtpClientInitialInterval ( int value) { NtpClientQueryInitialInterval = (int32_t)value ; FramWrite(iInitialInterval, 4, &NtpClientQueryInitialInterval ); } |
andrewboyson | 0:b843d647695c | 186 | void SetNtpClientNormalInterval ( int value) { NtpClientQueryNormalInterval = (int32_t)value ; FramWrite(iNormalInterval, 4, &NtpClientQueryNormalInterval ); } |
andrewboyson | 0:b843d647695c | 187 | void SetNtpClientRetryInterval ( int value) { NtpClientQueryRetryInterval = (int32_t)value ; FramWrite(iRetryInterval, 4, &NtpClientQueryRetryInterval ); } |
andrewboyson | 0:b843d647695c | 188 | void SetNtpClientOffsetMs ( int value) { NtpClientReplyOffsetMs = (int32_t)value ; FramWrite(iOffsetMs, 4, &NtpClientReplyOffsetMs ); } |
andrewboyson | 0:b843d647695c | 189 | void SetNtpClientMaxDelayMs ( int value) { NtpClientReplyMaxDelayMs = (int32_t)value ; FramWrite(iMaxDelayMs, 4, &NtpClientReplyMaxDelayMs ); } |
andrewboyson | 0:b843d647695c | 190 | |
andrewboyson | 0:b843d647695c | 191 | int SettingsNtpInit() |
andrewboyson | 0:b843d647695c | 192 | { |
andrewboyson | 0:b843d647695c | 193 | int address; |
andrewboyson | 0:b843d647695c | 194 | int32_t def4; |
andrewboyson | 0:b843d647695c | 195 | |
andrewboyson | 0:b843d647695c | 196 | def4 = 0; address = FramLoad( DNS_MAX_LABEL_LENGTH+1, NtpClientQueryServerName, NULL ); if (address < 0) return -1; iServerName = address; |
andrewboyson | 0:b843d647695c | 197 | def4 = 1; address = FramLoad( 4, &NtpClientQueryInitialInterval, &def4); if (address < 0) return -1; iInitialInterval = address; |
andrewboyson | 0:b843d647695c | 198 | def4 = 600; address = FramLoad( 4, &NtpClientQueryNormalInterval, &def4); if (address < 0) return -1; iNormalInterval = address; |
andrewboyson | 0:b843d647695c | 199 | def4 = 60; address = FramLoad( 4, &NtpClientQueryRetryInterval, &def4); if (address < 0) return -1; iRetryInterval = address; |
andrewboyson | 0:b843d647695c | 200 | def4 = 0; address = FramLoad( 4, &NtpClientReplyOffsetMs, &def4); if (address < 0) return -1; iOffsetMs = address; |
andrewboyson | 0:b843d647695c | 201 | def4 = 50; address = FramLoad( 4, &NtpClientReplyMaxDelayMs, &def4); if (address < 0) return -1; iMaxDelayMs = address; |
andrewboyson | 0:b843d647695c | 202 | |
andrewboyson | 0:b843d647695c | 203 | return 0; |
andrewboyson | 0:b843d647695c | 204 | } |
andrewboyson | 0:b843d647695c | 205 | |
andrewboyson | 0:b843d647695c | 206 | int SettingsInit() |
andrewboyson | 0:b843d647695c | 207 | { |
andrewboyson | 0:b843d647695c | 208 | int address; |
andrewboyson | 0:b843d647695c | 209 | int32_t def4; |
andrewboyson | 4:f38b5bb8adac | 210 | int64_t def8; |
andrewboyson | 0:b843d647695c | 211 | char b; |
andrewboyson | 0:b843d647695c | 212 | |
andrewboyson | 0:b843d647695c | 213 | def4 = 10; address = FramLoad( 4, &ClkGovSlewDivisor, &def4); if (address < 0) return -1; iClkGovSlewDivisor = address; |
andrewboyson | 0:b843d647695c | 214 | def4 = 20; address = FramLoad( 4, &ClkGovSlewChangeMaxMs, &def4); if (address < 0) return -1; iClkGovSlewMaxMs = address; |
andrewboyson | 0:b843d647695c | 215 | def4 = 1000; address = FramLoad( 4, &ClkGovFreqDivisor, &def4); if (address < 0) return -1; iClkGovPpbDivisor = address; |
andrewboyson | 0:b843d647695c | 216 | def4 = 10000000; address = FramLoad( 4, &ClkGovFreqChangeMaxPpb, &def4); if (address < 0) return -1; iClkGovPpbChangeMax = address; |
andrewboyson | 0:b843d647695c | 217 | def4 = 100000; address = FramLoad( 4, &ClkGovSlewSyncedLimNs, &def4); if (address < 0) return -1; iClkGovSyncedLimitNs = address; |
andrewboyson | 0:b843d647695c | 218 | def4 = 100000; address = FramLoad( 4, &ClkGovFreqSyncedLimPpb, &def4); if (address < 0) return -1; iClkGovSyncedLimitPpb = address; |
andrewboyson | 0:b843d647695c | 219 | def4 = 10000; address = FramLoad( 4, &ClkGovSlewSyncedHysNs, &def4); if (address < 0) return -1; iClkGovSyncedHysterisNs = address; |
andrewboyson | 0:b843d647695c | 220 | def4 = 1000; address = FramLoad( 4, &ClkGovFreqSyncedHysPpb, &def4); if (address < 0) return -1; iClkGovSyncedHysterisPpb = address; |
andrewboyson | 0:b843d647695c | 221 | def4 = 3; address = FramLoad( 4, &ClkGovSlewOffsetMaxSecs, &def4); if (address < 0) return -1; iClkGovMaxOffsetSecs = address; |
andrewboyson | 0:b843d647695c | 222 | address = FramLoad( 1, &b, NULL); ClkGovTrace = b; if (address < 0) return -1; iClkGov = address; |
andrewboyson | 0:b843d647695c | 223 | address = FramLoad( 1, &b, NULL); DnsSendRequestsViaIp4 = b; if (address < 0) return -1; iDnsSendRequestsViaIp4 = address; |
andrewboyson | 0:b843d647695c | 224 | address = FramLoad( 1, &b, NULL); NtpClientQuerySendRequestsViaIp4 = b; if (address < 0) return -1; iNtpSendRequestsViaIp4 = address; |
andrewboyson | 0:b843d647695c | 225 | address = FramLoad( 1, &b, NULL); TftpSendRequestsViaIp4 = b; if (address < 0) return -1; iTftpSendRequestsViaIp4 = address; |
andrewboyson | 0:b843d647695c | 226 | address = FramLoad( 1, &b, NULL); LogUart = b; if (address < 0) return -1; iLogUart = address; |
andrewboyson | 0:b843d647695c | 227 | address = FramLoad( 2, NetTraceHost, NULL) ; if (address < 0) return -1; iNetHost = address; |
andrewboyson | 0:b843d647695c | 228 | address = FramLoad( 1, &b, NULL); NetTraceStack = b; if (address < 0) return -1; iNetStack = address; |
andrewboyson | 0:b843d647695c | 229 | address = FramLoad( 1, &b, NULL); NetTraceNewLine = b; if (address < 0) return -1; iNetNewLine = address; |
andrewboyson | 0:b843d647695c | 230 | address = FramLoad( 1, &b, NULL); NetTraceVerbose = b; if (address < 0) return -1; iNetVerbose = address; |
andrewboyson | 0:b843d647695c | 231 | address = FramLoad( 1, &b, NULL); LinkTrace = b; if (address < 0) return -1; iLink = address; |
andrewboyson | 0:b843d647695c | 232 | address = FramLoad( 1, &b, NULL); DnsNameTrace = b; if (address < 0) return -1; iDnsName = address; |
andrewboyson | 0:b843d647695c | 233 | address = FramLoad( 1, &b, NULL); DnsQueryTrace = b; if (address < 0) return -1; iDnsQuery = address; |
andrewboyson | 0:b843d647695c | 234 | address = FramLoad( 1, &b, NULL); DnsReplyTrace = b; if (address < 0) return -1; iDnsReply = address; |
andrewboyson | 0:b843d647695c | 235 | address = FramLoad( 1, &b, NULL); DnsServerTrace = b; if (address < 0) return -1; iDnsServer = address; |
andrewboyson | 0:b843d647695c | 236 | address = FramLoad( 1, &b, NULL); NtpTrace = b; if (address < 0) return -1; iNtp = address; |
andrewboyson | 0:b843d647695c | 237 | address = FramLoad( 1, &b, NULL); DhcpTrace = b; if (address < 0) return -1; iDhcp = address; |
andrewboyson | 0:b843d647695c | 238 | address = FramLoad( 1, &b, NULL); NsTraceRecvSol = b; if (address < 0) return -1; iNsRecvSol = address; |
andrewboyson | 0:b843d647695c | 239 | address = FramLoad( 1, &b, NULL); NsTraceRecvAdv = b; if (address < 0) return -1; iNsRecvAdv = address; |
andrewboyson | 0:b843d647695c | 240 | address = FramLoad( 1, &b, NULL); NsTraceSendSol = b; if (address < 0) return -1; iNsSendSol = address; |
andrewboyson | 0:b843d647695c | 241 | address = FramLoad( 1, &b, NULL); Nr4Trace = b; if (address < 0) return -1; iNr4 = address; |
andrewboyson | 0:b843d647695c | 242 | address = FramLoad( 1, &b, NULL); NrTrace = b; if (address < 0) return -1; iNr = address; |
andrewboyson | 0:b843d647695c | 243 | address = FramLoad( 1, &b, NULL); NtpClientTrace = b; if (address < 0) return -1; iNtpClient = address; |
andrewboyson | 0:b843d647695c | 244 | address = FramLoad( 1, &b, NULL); Echo4Trace = b; if (address < 0) return -1; iEcho4 = address; |
andrewboyson | 0:b843d647695c | 245 | address = FramLoad( 1, &b, NULL); Echo6Trace = b; if (address < 0) return -1; iEcho6 = address; |
andrewboyson | 0:b843d647695c | 246 | address = FramLoad( 1, &b, NULL); Dest6Trace = b; if (address < 0) return -1; iDest6 = address; |
andrewboyson | 0:b843d647695c | 247 | address = FramLoad( 1, &b, NULL); RaTrace = b; if (address < 0) return -1; iRa = address; |
andrewboyson | 0:b843d647695c | 248 | address = FramLoad( 1, &b, NULL); RsTrace = b; if (address < 0) return -1; iRs = address; |
andrewboyson | 0:b843d647695c | 249 | address = FramLoad( 1, &b, NULL); Ar4Trace = b; if (address < 0) return -1; iAr4 = address; |
andrewboyson | 0:b843d647695c | 250 | address = FramLoad( 1, &b, NULL); Ar6Trace = b; if (address < 0) return -1; iAr6 = address; |
andrewboyson | 0:b843d647695c | 251 | address = FramLoad( 1, &b, NULL); ArpTrace = b; if (address < 0) return -1; iArp = address; |
andrewboyson | 0:b843d647695c | 252 | address = FramLoad( 1, &b, NULL); Ip4Trace = b; if (address < 0) return -1; iIp4 = address; |
andrewboyson | 0:b843d647695c | 253 | address = FramLoad( 1, &b, NULL); Ip6Trace = b; if (address < 0) return -1; iIp6 = address; |
andrewboyson | 0:b843d647695c | 254 | address = FramLoad( 1, &b, NULL); UdpTrace = b; if (address < 0) return -1; iUdp = address; |
andrewboyson | 0:b843d647695c | 255 | address = FramLoad( 1, &b, NULL); TcpTrace = b; if (address < 0) return -1; iTcp = address; |
andrewboyson | 0:b843d647695c | 256 | address = FramLoad( 1, &b, NULL); WebTrace = b; if (address < 0) return -1; iHttp = address; |
andrewboyson | 0:b843d647695c | 257 | address = FramLoad( 1, &b, NULL); TftpTrace = b; if (address < 0) return -1; iTftp = address; |
andrewboyson | 0:b843d647695c | 258 | |
andrewboyson | 4:f38b5bb8adac | 259 | address = FramAllocate(DNS_MAX_LABEL_LENGTH); if (address < 0) return -1; iValuesServerName = address; |
andrewboyson | 4:f38b5bb8adac | 260 | FramAllocate(1); //Spare |
andrewboyson | 4:f38b5bb8adac | 261 | address = FramAllocate(DNS_MAX_LABEL_LENGTH); if (address < 0) return -1; iValuesFileName = address; |
andrewboyson | 4:f38b5bb8adac | 262 | FramAllocate(1); //Spare |
andrewboyson | 4:f38b5bb8adac | 263 | address = FramAllocate( 4); if (address < 0) return -1; iValuesWriteSize = address; |
andrewboyson | 4:f38b5bb8adac | 264 | address = FramAllocate( 4); if (address < 0) return -1; iValuesReadInterval = address; |
andrewboyson | 4:f38b5bb8adac | 265 | address = FramAllocate( 8); if (address < 0) return -1; iValuesStartTime = address; |
andrewboyson | 4:f38b5bb8adac | 266 | address = FramAllocate( 4); if (address < 0) return -1; iValuesCount = address; |
andrewboyson | 4:f38b5bb8adac | 267 | address = FramAllocate( 1); if (address < 0) return -1; iValuesData = address; |
andrewboyson | 4:f38b5bb8adac | 268 | if (FramEmpty) |
andrewboyson | 4:f38b5bb8adac | 269 | { |
andrewboyson | 4:f38b5bb8adac | 270 | b = 0; FramWrite(iValuesServerName , 1, &b ); |
andrewboyson | 4:f38b5bb8adac | 271 | b = 0; FramWrite(iValuesFileName , 1, &b ); |
andrewboyson | 4:f38b5bb8adac | 272 | def4 = 100; FramWrite(iValuesWriteSize , 4, &def4); |
andrewboyson | 4:f38b5bb8adac | 273 | def4 = 15; FramWrite(iValuesReadInterval, 4, &def4); |
andrewboyson | 4:f38b5bb8adac | 274 | def8 = 0; FramWrite(iValuesStartTime , 8, &def8); |
andrewboyson | 4:f38b5bb8adac | 275 | def4 = 0; FramWrite(iValuesCount , 4, &def4); |
andrewboyson | 4:f38b5bb8adac | 276 | } |
andrewboyson | 4:f38b5bb8adac | 277 | |
andrewboyson | 4:f38b5bb8adac | 278 | iValuesData = FramUsed; |
andrewboyson | 4:f38b5bb8adac | 279 | |
andrewboyson | 0:b843d647695c | 280 | return 0; |
andrewboyson | 0:b843d647695c | 281 | } |
andrewboyson | 4:f38b5bb8adac | 282 | |
andrewboyson | 4:f38b5bb8adac | 283 | |
andrewboyson | 4:f38b5bb8adac | 284 |