sensor web server
Dependencies: EthernetNetIf HTTPServer mbed
Diff: SensorHandler.cpp
- Revision:
- 0:803d8094260a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SensorHandler.cpp Sun Nov 18 11:24:12 2012 +0000 @@ -0,0 +1,115 @@ +#include "SensorHandler.h" + +//#define __DEBUG +#include <dbg.h> + +AnalogIn g_ain_brightness(p15); +AnalogIn g_ain_temperature(p20); + +SensorHandler::SensorHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : HTTPRequestHandler(rootPath, path, pTCPSocket) +{ + DBG("SensorHandler()\r\n"); +} + +SensorHandler::~SensorHandler() +{ + DBG("~SensorHandler()\r\n"); +} +void SensorHandler::printString( const char* pszString ) +{ + writeData( pszString, strlen(pszString) ); +} + +double GetTemperature() +{ + double dV = g_ain_temperature * 3.3; + return dV * 100.0; +} + +int GetBrightness() +{ + double dV = g_ain_brightness * 3.3; + + double dR = 0.0; + if( 0.005 < (3.3 - dV) ) + { + dR = 10 * 1000 * dV / (3.3 - dV); + } + + if( 100000.0 < dR ) + { + return 0; + } + if( 4000.0 > dR ) + { + return 2; + } + return 1; +} + +void SensorHandler::doGet() +{ + DBG("doGet()\r\n"); + + respHeaders()["Connection"] = "close"; + + printString( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n" ); + printString( "<html lang=\"ja\">\n" ); + printString( "<head>\n" ); + printString( "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" ); + printString( "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" ); + printString( "<title></title>\n" ); + printString( "</head>\n" ); + printString( "<body>\n" ); + + printString( "Temperature : " ); + char szTemperature[10]; + sprintf( szTemperature, "%4.1f", GetTemperature() ); + printString( szTemperature ); + printString( " [degree]\n" ); + printString( "<br /><br />\n" ); + + printString( "Brightness : "); + switch( GetBrightness() ) + { + case 0: + printString("Dark"); + break; + case 1: + printString("Ordinarily"); + break; + case 2: + printString("Bright"); + break; + } + printString( "<br />\n" ); + + printString( "</body>\n" ); + printString( "</html>" ); +} + +void SensorHandler::doPost() +{ + DBG("doPost()\r\n"); +} + +void SensorHandler::doHead() +{ + DBG("doHead()\r\n"); +} + +void SensorHandler::onReadable() //Data has been read +{ + DBG("onReadable()\r\n"); +} + +void SensorHandler::onWriteable() //Data has been written & buf is free +{ + DBG("onWriteable()\r\n"); + close(); //Data written, we can close the connection +} + +void SensorHandler::onClose() //Connection is closing +{ + DBG("onClose()\r\n"); +}