Smart Clock

Dependencies:   AlarmClock DigitalClock EthernetInterface FourDigitLED HTTPClient NTPClient SDFileSystem TrainStat WeatherInfo XML_aide mbed-rtos mbed picojson wolfSSL

Committer:
takashikojo
Date:
Sun Jun 28 00:17:22 2015 +0000
Revision:
4:8a2d1544d6e0
Parent:
3:2cb03c287c22
Child:
5:e4891827f7b1
Added Weather Hacks

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takashikojo 0:0689619f2486 1 #include "mbed.h"
takashikojo 0:0689619f2486 2
takashikojo 0:0689619f2486 3 #include "EthernetInterface.h"
takashikojo 4:8a2d1544d6e0 4 #include "HTTPClient.h"
takashikojo 0:0689619f2486 5 #include "NTPClient.h"
takashikojo 0:0689619f2486 6 #include "AlarmClock.h"
takashikojo 2:bcc1a40ffa04 7 #include "TrainStat.h"
takashikojo 4:8a2d1544d6e0 8 #include "WeatherInfo.h"
takashikojo 1:1a28aaca601d 9
takashikojo 1:1a28aaca601d 10 AlarmClock alarmclock (
takashikojo 0:0689619f2486 11 /* Segment 0 - 6, Dot */ D11,D6, D3, D1, D0, D10,D4, D2 ,
takashikojo 0:0689619f2486 12 /* Digit 1 - 4 */ D5, D7, D9, D12,
takashikojo 0:0689619f2486 13 /* Alarm, Hour, Min, Tone */D13, D14, D15, PTC11
takashikojo 0:0689619f2486 14 ) ;
takashikojo 4:8a2d1544d6e0 15
takashikojo 4:8a2d1544d6e0 16 TrainStat trainstat(YAHOO_TRAIN) ;
takashikojo 4:8a2d1544d6e0 17 WeatherInfo weatherinfo(WEATHER_HACKS) ;
takashikojo 4:8a2d1544d6e0 18 HTTPClient httpClient;
takashikojo 2:bcc1a40ffa04 19
takashikojo 1:1a28aaca601d 20 static void ntp(char *site)
takashikojo 1:1a28aaca601d 21 {
takashikojo 1:1a28aaca601d 22 NTPClient ntp;
takashikojo 1:1a28aaca601d 23
takashikojo 1:1a28aaca601d 24 alarmclock.setLED(33, 33) ;
takashikojo 1:1a28aaca601d 25 if (ntp.setTime(site) == 0) {
takashikojo 1:1a28aaca601d 26 alarmclock.flashLED() ;
takashikojo 1:1a28aaca601d 27 } else {
takashikojo 1:1a28aaca601d 28 alarmclock.setLED(0, 0) ;
takashikojo 1:1a28aaca601d 29 wait(30.0) ;
takashikojo 1:1a28aaca601d 30 return ;
takashikojo 1:1a28aaca601d 31 }
takashikojo 1:1a28aaca601d 32 }
takashikojo 0:0689619f2486 33
takashikojo 0:0689619f2486 34 void clock_main(void const *av)
takashikojo 0:0689619f2486 35 {
takashikojo 3:2cb03c287c22 36
takashikojo 1:1a28aaca601d 37 alarmclock.start() ;
takashikojo 1:1a28aaca601d 38 while(1){
takashikojo 1:1a28aaca601d 39 alarmclock.poll() ;
takashikojo 1:1a28aaca601d 40 Thread::wait(100);
takashikojo 1:1a28aaca601d 41 }
takashikojo 4:8a2d1544d6e0 42 }
takashikojo 4:8a2d1544d6e0 43 #define BUFF_SIZE 1024*64
takashikojo 4:8a2d1544d6e0 44 static char recvBuff[BUFF_SIZE] ;
takashikojo 2:bcc1a40ffa04 45 void net_main(void const *av)
takashikojo 2:bcc1a40ffa04 46 {
takashikojo 2:bcc1a40ffa04 47 bool sw ;
takashikojo 4:8a2d1544d6e0 48 int count = 0 ;
takashikojo 4:8a2d1544d6e0 49
takashikojo 4:8a2d1544d6e0 50 trainstat.setBuff(recvBuff, BUFF_SIZE) ;
takashikojo 4:8a2d1544d6e0 51 weatherinfo.setBuff(recvBuff, BUFF_SIZE) ;
takashikojo 4:8a2d1544d6e0 52
takashikojo 2:bcc1a40ffa04 53 trainstat.setLine("千代田線") ;
takashikojo 2:bcc1a40ffa04 54 while(1) {
takashikojo 4:8a2d1544d6e0 55
takashikojo 2:bcc1a40ffa04 56 sw = !sw ;
takashikojo 4:8a2d1544d6e0 57 /*
takashikojo 2:bcc1a40ffa04 58 if(!trainstat.getStat())
takashikojo 2:bcc1a40ffa04 59 { printf("遅れあり\n") ; alarmclock.setBlink(true) ; }
takashikojo 2:bcc1a40ffa04 60 else
takashikojo 2:bcc1a40ffa04 61 { printf("遅れなし\n") ; alarmclock.setBlink(false) ; }
takashikojo 4:8a2d1544d6e0 62 */
takashikojo 4:8a2d1544d6e0 63 trainstat.getStat() ;
takashikojo 4:8a2d1544d6e0 64 if(count%1 ==0)
takashikojo 4:8a2d1544d6e0 65 weatherinfo.getInfo() ;
takashikojo 4:8a2d1544d6e0 66
takashikojo 2:bcc1a40ffa04 67 wait(60.0) ;
takashikojo 4:8a2d1544d6e0 68 count++ ;
takashikojo 2:bcc1a40ffa04 69 }
takashikojo 2:bcc1a40ffa04 70 }
takashikojo 2:bcc1a40ffa04 71
takashikojo 1:1a28aaca601d 72 int main() {
takashikojo 1:1a28aaca601d 73 EthernetInterface eth;
takashikojo 0:0689619f2486 74 int ret ;
takashikojo 1:1a28aaca601d 75
takashikojo 0:0689619f2486 76 alarmclock.setLED(11, 11) ;
takashikojo 0:0689619f2486 77 ret = eth.init();
takashikojo 0:0689619f2486 78 alarmclock.setLED(22, 22) ;
takashikojo 0:0689619f2486 79 while(1) {
takashikojo 0:0689619f2486 80 ret = eth.connect();
takashikojo 0:0689619f2486 81 if(ret == 0)break ;
takashikojo 0:0689619f2486 82 Thread::wait(10);
takashikojo 0:0689619f2486 83 }
takashikojo 3:2cb03c287c22 84 ntp("ntp.jst.mfeed.ad.jp") ;
takashikojo 3:2cb03c287c22 85
takashikojo 1:1a28aaca601d 86 #define NET_STACK 16000
takashikojo 1:1a28aaca601d 87 Thread t_clock(clock_main, NULL, osPriorityNormal);
takashikojo 1:1a28aaca601d 88 Thread t_net (net_main, NULL, osPriorityNormal, NET_STACK );
takashikojo 0:0689619f2486 89 while(1)Thread::wait(1000);
takashikojo 0:0689619f2486 90 }