This version has the index file and data pages on a SD card (512Mbyte) it does not suffer from the autorun problem when directly writtin to the mbed flash memory It makes readings from one solar panel for open and loaded voltages every 'interval' seconds Every readingsPerPage a new web page is created and indexed on a readings web page Activty is shown by the flashing blue led (0.5s) means it is connected and output via the serial over usb port. Data is preserved on subsequent power ups by incrementing file number. PMR 15/9/10 */

Dependencies:   EthernetNetIf NTPClient_NetServices mbed SDFileSystem

Committer:
pmr1
Date:
Sat Sep 18 13:31:41 2010 +0000
Revision:
0:d6b2d5c4c48f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmr1 0:d6b2d5c4c48f 1
pmr1 0:d6b2d5c4c48f 2 /*
pmr1 0:d6b2d5c4c48f 3 Copyright (c) 2010 Donatien Garnier (donatiengar [at] gmail [dot] com)
pmr1 0:d6b2d5c4c48f 4
pmr1 0:d6b2d5c4c48f 5 Permission is hereby granted, free of charge, to any person obtaining a copy
pmr1 0:d6b2d5c4c48f 6 of this software and associated documentation files (the "Software"), to deal
pmr1 0:d6b2d5c4c48f 7 in the Software without restriction, including without limitation the rights
pmr1 0:d6b2d5c4c48f 8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
pmr1 0:d6b2d5c4c48f 9 copies of the Software, and to permit persons to whom the Software is
pmr1 0:d6b2d5c4c48f 10 furnished to do so, subject to the following conditions:
pmr1 0:d6b2d5c4c48f 11
pmr1 0:d6b2d5c4c48f 12 The above copyright notice and this permission notice shall be included in
pmr1 0:d6b2d5c4c48f 13 all copies or substantial portions of the Software.
pmr1 0:d6b2d5c4c48f 14
pmr1 0:d6b2d5c4c48f 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
pmr1 0:d6b2d5c4c48f 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
pmr1 0:d6b2d5c4c48f 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
pmr1 0:d6b2d5c4c48f 18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
pmr1 0:d6b2d5c4c48f 19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
pmr1 0:d6b2d5c4c48f 20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
pmr1 0:d6b2d5c4c48f 21 THE SOFTWARE.
pmr1 0:d6b2d5c4c48f 22 */
pmr1 0:d6b2d5c4c48f 23
pmr1 0:d6b2d5c4c48f 24 #ifndef HTTP_REQUEST_DISPATCHER_H
pmr1 0:d6b2d5c4c48f 25 #define HTTP_REQUEST_DISPATCHER_H
pmr1 0:d6b2d5c4c48f 26
pmr1 0:d6b2d5c4c48f 27 class HTTPServer;
pmr1 0:d6b2d5c4c48f 28
pmr1 0:d6b2d5c4c48f 29 #include "api/TCPSocket.h"
pmr1 0:d6b2d5c4c48f 30 #include "HTTPServer.h"
pmr1 0:d6b2d5c4c48f 31 #include "core/netservice.h"
pmr1 0:d6b2d5c4c48f 32
pmr1 0:d6b2d5c4c48f 33 #include "mbed.h"
pmr1 0:d6b2d5c4c48f 34
pmr1 0:d6b2d5c4c48f 35 #define HTTP_REQUEST_TIMEOUT 5000
pmr1 0:d6b2d5c4c48f 36
pmr1 0:d6b2d5c4c48f 37 #include <string>
pmr1 0:d6b2d5c4c48f 38 using std::string;
pmr1 0:d6b2d5c4c48f 39
pmr1 0:d6b2d5c4c48f 40 class HTTPRequestDispatcher : public NetService
pmr1 0:d6b2d5c4c48f 41 {
pmr1 0:d6b2d5c4c48f 42 public:
pmr1 0:d6b2d5c4c48f 43 HTTPRequestDispatcher(HTTPServer* pSvr, TCPSocket* pTCPSocket);
pmr1 0:d6b2d5c4c48f 44 virtual ~HTTPRequestDispatcher();
pmr1 0:d6b2d5c4c48f 45
pmr1 0:d6b2d5c4c48f 46 private:
pmr1 0:d6b2d5c4c48f 47
pmr1 0:d6b2d5c4c48f 48 enum HTTP_METH
pmr1 0:d6b2d5c4c48f 49 {
pmr1 0:d6b2d5c4c48f 50 HTTP_GET,
pmr1 0:d6b2d5c4c48f 51 HTTP_POST,
pmr1 0:d6b2d5c4c48f 52 HTTP_HEAD
pmr1 0:d6b2d5c4c48f 53 };
pmr1 0:d6b2d5c4c48f 54
pmr1 0:d6b2d5c4c48f 55 void dispatchRequest();
pmr1 0:d6b2d5c4c48f 56
pmr1 0:d6b2d5c4c48f 57 virtual void close(); //Close TCPSocket and destroy data
pmr1 0:d6b2d5c4c48f 58
pmr1 0:d6b2d5c4c48f 59 void onTCPSocketEvent(TCPSocketEvent e);
pmr1 0:d6b2d5c4c48f 60
pmr1 0:d6b2d5c4c48f 61 void onTimeout(); //Connection has timed out
pmr1 0:d6b2d5c4c48f 62
pmr1 0:d6b2d5c4c48f 63 bool getRequest(string* path, string* meth);
pmr1 0:d6b2d5c4c48f 64
pmr1 0:d6b2d5c4c48f 65 HTTPServer* m_pSvr;
pmr1 0:d6b2d5c4c48f 66 TCPSocket* m_pTCPSocket;
pmr1 0:d6b2d5c4c48f 67
pmr1 0:d6b2d5c4c48f 68 Timeout m_watchdog;
pmr1 0:d6b2d5c4c48f 69 bool m_closed;
pmr1 0:d6b2d5c4c48f 70 };
pmr1 0:d6b2d5c4c48f 71
pmr1 0:d6b2d5c4c48f 72 #endif