This application translates HTTP GET requests into the proper RS232 commands to control a Sharp Aquos TV

Dependencies:   EthernetInterface mbed-rtos mbed

Revision:
2:3637af74f7f0
Parent:
0:427a14ebab60
--- a/AquosHTTP.cpp	Tue Jul 29 23:10:14 2014 +0000
+++ b/AquosHTTP.cpp	Sat Sep 06 23:47:21 2014 +0000
@@ -1,8 +1,9 @@
  #include "AquosHTTP.h"
  
   
-AquosHTTP::AquosHTTP(DebugPort *dbg) { 
+AquosHTTP::AquosHTTP(DebugPort *dbg, AquosTV* tv) { 
      m_dbg = dbg;
+     m_tv = tv;
     init(); 
 }
 
@@ -30,15 +31,20 @@
         m_dbg->send("\n\r");
     }
     
-    wait(0.1);
-    m_eth.connect(1000);  //usually fails, so no throw
-    wait(0.1); 
-    //m_server.set_blocking(true);
-    ret = m_server.bind(80);
-    if(ret<0) m_dbg->send("Server failed to bind",1);
-    ret = m_server.listen(1);
-    if(ret<0) m_dbg->send("Server failed to listen",1);
-    
+    ret = -1;
+    while(ret<0) {
+        wait(0.1);
+        m_eth.connect(1000);  //usually fails, so no throw
+        wait(0.1); 
+        //m_server.set_blocking(true);
+        ret = m_server.bind(80);
+        if(ret<0) {
+             m_dbg->send("Server failed to bind");
+        } else {
+            ret = m_server.listen(1);
+            if(ret<0) m_dbg->send("Server failed to listen");
+        }
+    }
     return *this;
 }
     
@@ -78,6 +84,8 @@
     return *this;
 }
 
+
+
 AquosHTTP& AquosHTTP::returnFailure() {
     int msglen = setResponse("FAILED!");
     char* buf = new char[msglen + 256];
@@ -86,4 +94,14 @@
     m_client.close(); 
     delete [] buf;
     return *this;
+}
+
+AquosHTTP& AquosHTTP::returnHelp() {
+    int helplen = strlen(gblHelp);
+    char* buf = new char[helplen+256];
+    snprintf(buf,helplen+255,"HTTP/1.1 200 OK\r\nContent-Length: %i\r\nConnection: close\r\nContent-type: text/html\r\n\r\n%s",helplen,gblHelp);
+    m_client.send(buf,strlen(buf));
+    m_client.close();
+    delete [] buf;
+    return *this;
 }
\ No newline at end of file