The program uses RPC over http to open a garage door over the internet. On a htm page is a link that calls a RPC function

Dependencies:   EthernetNetIf NTPClient_NetServices mbed HTTPServer

Revision:
1:71c0a02e6587
Parent:
0:8c69f4c2bb0e
Child:
2:fb8f5c072e24
--- a/myGarageDoorOpenerHTTPServerExample.cpp	Fri Jun 10 21:20:19 2011 +0000
+++ b/myGarageDoorOpenerHTTPServerExample.cpp	Sat Jun 11 21:46:32 2011 +0000
@@ -2,6 +2,7 @@
 #include "EthernetNetIf.h"
 #include "HTTPServer.h"
 #include "RPCFunction.h"
+#include "NTPClient.h"
 
 DigitalOut led1(LED1, "led1");
 DigitalOut led2(LED2, "led2");
@@ -10,6 +11,7 @@
 DigitalOut rfout(p22,"rfout");
 
 LocalFileSystem fs("webfs");// Create the local filesystem under the name "local"
+LocalFileSystem local("local");
 
 EthernetNetIf eth(
     IpAddr(192,168,1,100), //IP Address
@@ -18,6 +20,8 @@
     IpAddr(192,168,1,254)  //DNS
 );
 HTTPServer svr;
+NTPClient ntp;
+    time_t ctTime;
 
 void sendbit(char a);
 void open(char * input, char * output);//Open garage door
@@ -44,7 +48,7 @@
     }
     printf("Setup OK\n");
 
-    FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
+    //FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
     FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
 
     svr.addHandler<SimpleHandler>("/hello");
@@ -55,6 +59,15 @@
     svr.bind(80);
     printf("Listening...\n");
 
+
+    Host server(IpAddr(), 123, "0.uk.pool.ntp.org");
+    ntp.setTime(server);
+    ctTime = time(NULL);
+    printf("Internet time is (UTC): %s\n", ctime(&ctTime));
+    FILE *fp = fopen("/local/test.txt", "a");
+    fprintf(fp,"Mbed restart (UTC): %s \r\n", ctime(&ctTime));
+    fclose(fp);
+
     Timer tm;
     tm.start();
     while (true) {
@@ -89,23 +102,29 @@
     }
 }
 
-    void open(char * input, char * output) {
-        led4=1;
-        for (char i = 0; i<20; i++) {
-            sendbit(1);//address A1
-            sendbit(0);//address A2
-            sendbit(0);//address A3
-            sendbit(0);//address A4
-            sendbit(1);//address A5
-            sendbit(0);//address A6 /data D6
-            sendbit(1);//address A7 /data D7
-            sendbit(0);//address A8 /data D8
-            sendbit(1);//address A9 /data D9
-            wait_ms(14);
-        }
-        led4=0;
-        sprintf(output, "<html><head><meta http-equiv=refresh content='5; url=../../index.htm'></head><body BGCOLOR=#A1F9FF>Opening,wait...</body></html>");
+void open(char * input, char * output) {
+    led4=1;
+    for (char i = 0; i<20; i++) {
+        sendbit(1);//address A1
+        sendbit(0);//address A2
+        sendbit(0);//address A3
+        sendbit(0);//address A4
+        sendbit(1);//address A5
+        sendbit(0);//address A6 /data D6
+        sendbit(1);//address A7 /data D7
+        sendbit(0);//address A8 /data D8
+        sendbit(1);//address A9 /data D9
+        wait_ms(14);
     }
+    led4=0;
+
+    FILE *fp = fopen("/local/test.txt", "a");
+    ctTime = time(NULL);
+    fprintf(fp,"Open sesame (UTC): %s \n", ctime(&ctTime));
+    fclose(fp);
+
+    sprintf(output, "<html><head><meta http-equiv=refresh content='5; url=../../index.htm'></head><body BGCOLOR=#A1F9FF>Opening,wait...</body></html>");
+}