forked from stuartpittaway/nanodesmapvmonitor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWebSiteService.ino
88 lines (66 loc) · 2.33 KB
/
WebSiteService.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
NANODE SMA PV MONITOR
Latest version found at https://github.com/stuartpittaway/nanodesmapvmonitor
Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
http://creativecommons.org/licenses/by-nc-sa/3.0/
You are free:
to Share — to copy, distribute and transmit the work
to Remix — to adapt the work
Under the following conditions:
Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Noncommercial — You may not use this work for commercial purposes.
Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
All code is copyright Stuart Pittaway, (c)2012.
*/
void WebSiteService::CountDown () {
if (this->minutecountdownvalue > 0) {
this->minutecountdownvalue-=1;
}
}//end function
void WebSiteService::begin() {
//Service always fires on first call...
minutecountdownvalue=0;
lookupDNSHostIP();
}
void WebSiteService::lookupDNSHostIP() {
debugMsgln("DNS lkup");
if (this->dnsLookup())
{
ether.copyIp(this->hostip,ether.hisip);
//ether.printIp("SRV:", hostip);
}
else {
debugMsgln("DNS fail");
error();
}
}//end function
void WebSiteService::resetCountDownTimer() {
this->minutecountdownvalue=getTimerResetValue();
}
void WebSiteService::setIPAddress() {
ether.copyIp(ether.hisip, this->hostip);
}
void WebSiteService::stashPrintTwoDigits(byte num)
{
stash.write('0' + (num / 10));
stash.write('0' + (num % 10));
}
void WebSiteService::CountDownAndUpload(unsigned long totalkWhGenerated,unsigned long spotTotalPowerAC,unsigned long spotTotalPowerDC, time_t dt)
{
CountDown();
if (this->minutecountdownvalue<=0) {
this->resetCountDownTimer();
this->setIPAddress();
this->preparePacket(totalkWhGenerated,spotTotalPowerAC,spotTotalPowerDC, dt) ;
// send the packet - this also releases all stash buffers once done
ether.tcpSend();
//Wait for a bit to process any possible replies, ideally we
//would like to wait here for a successful HTTP 200 message
//or timeout/error condition
for(int i=0; i<150; i++)
{
delay(10);
ether.packetLoop(ether.packetReceive());
}
}
}//end function