sensor web server
Dependencies: EthernetNetIf HTTPServer mbed
SensorHandler.cpp@0:803d8094260a, 2012-11-18 (annotated)
- Committer:
- nobuki
- Date:
- Sun Nov 18 11:24:12 2012 +0000
- Revision:
- 0:803d8094260a
version1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nobuki | 0:803d8094260a | 1 | #include "SensorHandler.h" |
nobuki | 0:803d8094260a | 2 | |
nobuki | 0:803d8094260a | 3 | //#define __DEBUG |
nobuki | 0:803d8094260a | 4 | #include <dbg.h> |
nobuki | 0:803d8094260a | 5 | |
nobuki | 0:803d8094260a | 6 | AnalogIn g_ain_brightness(p15); |
nobuki | 0:803d8094260a | 7 | AnalogIn g_ain_temperature(p20); |
nobuki | 0:803d8094260a | 8 | |
nobuki | 0:803d8094260a | 9 | SensorHandler::SensorHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : HTTPRequestHandler(rootPath, path, pTCPSocket) |
nobuki | 0:803d8094260a | 10 | { |
nobuki | 0:803d8094260a | 11 | DBG("SensorHandler()\r\n"); |
nobuki | 0:803d8094260a | 12 | } |
nobuki | 0:803d8094260a | 13 | |
nobuki | 0:803d8094260a | 14 | SensorHandler::~SensorHandler() |
nobuki | 0:803d8094260a | 15 | { |
nobuki | 0:803d8094260a | 16 | DBG("~SensorHandler()\r\n"); |
nobuki | 0:803d8094260a | 17 | } |
nobuki | 0:803d8094260a | 18 | void SensorHandler::printString( const char* pszString ) |
nobuki | 0:803d8094260a | 19 | { |
nobuki | 0:803d8094260a | 20 | writeData( pszString, strlen(pszString) ); |
nobuki | 0:803d8094260a | 21 | } |
nobuki | 0:803d8094260a | 22 | |
nobuki | 0:803d8094260a | 23 | double GetTemperature() |
nobuki | 0:803d8094260a | 24 | { |
nobuki | 0:803d8094260a | 25 | double dV = g_ain_temperature * 3.3; |
nobuki | 0:803d8094260a | 26 | return dV * 100.0; |
nobuki | 0:803d8094260a | 27 | } |
nobuki | 0:803d8094260a | 28 | |
nobuki | 0:803d8094260a | 29 | int GetBrightness() |
nobuki | 0:803d8094260a | 30 | { |
nobuki | 0:803d8094260a | 31 | double dV = g_ain_brightness * 3.3; |
nobuki | 0:803d8094260a | 32 | |
nobuki | 0:803d8094260a | 33 | double dR = 0.0; |
nobuki | 0:803d8094260a | 34 | if( 0.005 < (3.3 - dV) ) |
nobuki | 0:803d8094260a | 35 | { |
nobuki | 0:803d8094260a | 36 | dR = 10 * 1000 * dV / (3.3 - dV); |
nobuki | 0:803d8094260a | 37 | } |
nobuki | 0:803d8094260a | 38 | |
nobuki | 0:803d8094260a | 39 | if( 100000.0 < dR ) |
nobuki | 0:803d8094260a | 40 | { |
nobuki | 0:803d8094260a | 41 | return 0; |
nobuki | 0:803d8094260a | 42 | } |
nobuki | 0:803d8094260a | 43 | if( 4000.0 > dR ) |
nobuki | 0:803d8094260a | 44 | { |
nobuki | 0:803d8094260a | 45 | return 2; |
nobuki | 0:803d8094260a | 46 | } |
nobuki | 0:803d8094260a | 47 | return 1; |
nobuki | 0:803d8094260a | 48 | } |
nobuki | 0:803d8094260a | 49 | |
nobuki | 0:803d8094260a | 50 | void SensorHandler::doGet() |
nobuki | 0:803d8094260a | 51 | { |
nobuki | 0:803d8094260a | 52 | DBG("doGet()\r\n"); |
nobuki | 0:803d8094260a | 53 | |
nobuki | 0:803d8094260a | 54 | respHeaders()["Connection"] = "close"; |
nobuki | 0:803d8094260a | 55 | |
nobuki | 0:803d8094260a | 56 | printString( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n" ); |
nobuki | 0:803d8094260a | 57 | printString( "<html lang=\"ja\">\n" ); |
nobuki | 0:803d8094260a | 58 | printString( "<head>\n" ); |
nobuki | 0:803d8094260a | 59 | printString( "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" ); |
nobuki | 0:803d8094260a | 60 | printString( "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" ); |
nobuki | 0:803d8094260a | 61 | printString( "<title></title>\n" ); |
nobuki | 0:803d8094260a | 62 | printString( "</head>\n" ); |
nobuki | 0:803d8094260a | 63 | printString( "<body>\n" ); |
nobuki | 0:803d8094260a | 64 | |
nobuki | 0:803d8094260a | 65 | printString( "Temperature : " ); |
nobuki | 0:803d8094260a | 66 | char szTemperature[10]; |
nobuki | 0:803d8094260a | 67 | sprintf( szTemperature, "%4.1f", GetTemperature() ); |
nobuki | 0:803d8094260a | 68 | printString( szTemperature ); |
nobuki | 0:803d8094260a | 69 | printString( " [degree]\n" ); |
nobuki | 0:803d8094260a | 70 | printString( "<br /><br />\n" ); |
nobuki | 0:803d8094260a | 71 | |
nobuki | 0:803d8094260a | 72 | printString( "Brightness : "); |
nobuki | 0:803d8094260a | 73 | switch( GetBrightness() ) |
nobuki | 0:803d8094260a | 74 | { |
nobuki | 0:803d8094260a | 75 | case 0: |
nobuki | 0:803d8094260a | 76 | printString("Dark"); |
nobuki | 0:803d8094260a | 77 | break; |
nobuki | 0:803d8094260a | 78 | case 1: |
nobuki | 0:803d8094260a | 79 | printString("Ordinarily"); |
nobuki | 0:803d8094260a | 80 | break; |
nobuki | 0:803d8094260a | 81 | case 2: |
nobuki | 0:803d8094260a | 82 | printString("Bright"); |
nobuki | 0:803d8094260a | 83 | break; |
nobuki | 0:803d8094260a | 84 | } |
nobuki | 0:803d8094260a | 85 | printString( "<br />\n" ); |
nobuki | 0:803d8094260a | 86 | |
nobuki | 0:803d8094260a | 87 | printString( "</body>\n" ); |
nobuki | 0:803d8094260a | 88 | printString( "</html>" ); |
nobuki | 0:803d8094260a | 89 | } |
nobuki | 0:803d8094260a | 90 | |
nobuki | 0:803d8094260a | 91 | void SensorHandler::doPost() |
nobuki | 0:803d8094260a | 92 | { |
nobuki | 0:803d8094260a | 93 | DBG("doPost()\r\n"); |
nobuki | 0:803d8094260a | 94 | } |
nobuki | 0:803d8094260a | 95 | |
nobuki | 0:803d8094260a | 96 | void SensorHandler::doHead() |
nobuki | 0:803d8094260a | 97 | { |
nobuki | 0:803d8094260a | 98 | DBG("doHead()\r\n"); |
nobuki | 0:803d8094260a | 99 | } |
nobuki | 0:803d8094260a | 100 | |
nobuki | 0:803d8094260a | 101 | void SensorHandler::onReadable() //Data has been read |
nobuki | 0:803d8094260a | 102 | { |
nobuki | 0:803d8094260a | 103 | DBG("onReadable()\r\n"); |
nobuki | 0:803d8094260a | 104 | } |
nobuki | 0:803d8094260a | 105 | |
nobuki | 0:803d8094260a | 106 | void SensorHandler::onWriteable() //Data has been written & buf is free |
nobuki | 0:803d8094260a | 107 | { |
nobuki | 0:803d8094260a | 108 | DBG("onWriteable()\r\n"); |
nobuki | 0:803d8094260a | 109 | close(); //Data written, we can close the connection |
nobuki | 0:803d8094260a | 110 | } |
nobuki | 0:803d8094260a | 111 | |
nobuki | 0:803d8094260a | 112 | void SensorHandler::onClose() //Connection is closing |
nobuki | 0:803d8094260a | 113 | { |
nobuki | 0:803d8094260a | 114 | DBG("onClose()\r\n"); |
nobuki | 0:803d8094260a | 115 | } |