This application translates HTTP GET requests into the proper RS232 commands to control a Sharp Aquos TV
Dependencies: EthernetInterface mbed-rtos mbed
Diff: AquosHTTP.cpp
- 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