Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: PetfeederWebServer
Fork of httpServer_with_Ethernt by
Revision 2:dd293a10a772, committed 2015-09-02
- Comitter:
- justinkim
- Date:
- Wed Sep 02 02:03:22 2015 +0000
- Parent:
- 1:772534e3b627
- Child:
- 3:87bec0b34de7
- Commit message:
- network + analog in added
Changed in this revision
--- a/HTTPConnection.cpp Tue Jun 30 00:21:41 2015 +0000
+++ b/HTTPConnection.cpp Wed Sep 02 02:03:22 2015 +0000
@@ -285,3 +285,5 @@
return 0;
}
+
+
--- a/HTTPRequestHandler.cpp Tue Jun 30 00:21:41 2015 +0000
+++ b/HTTPRequestHandler.cpp Wed Sep 02 02:03:22 2015 +0000
@@ -174,3 +174,5 @@
{
INFO("Ending Response !");
}
+
+
--- a/HTTPRequestHandler.h Tue Jun 30 00:21:41 2015 +0000
+++ b/HTTPRequestHandler.h Wed Sep 02 02:03:22 2015 +0000
@@ -134,6 +134,7 @@
virtual int handlePostRequest() = 0;
void getStandardHeaders(HTTPHeaders& header, const char* fext = NULL);
+
};
#endif // __HTTPREQUESTHANDLER_H__
\ No newline at end of file
--- a/HTTPServer.cpp Tue Jun 30 00:21:41 2015 +0000
+++ b/HTTPServer.cpp Wed Sep 02 02:03:22 2015 +0000
@@ -43,6 +43,7 @@
} else {
// In the case that the ethernet interface is provided, it is assumed that a connection has already been created.
INFO("Using connection IP %s", pEthernet->getIPAddress());
+ m_pEthernet = pEthernet;
}
INFO("Binding to port %d...", port);
@@ -125,3 +126,5 @@
delete phdl;
}
}
+
+
--- a/HTTPServer.h Tue Jun 30 00:21:41 2015 +0000
+++ b/HTTPServer.h Wed Sep 02 02:03:22 2015 +0000
@@ -207,4 +207,4 @@
};
- #endif //__HTTPSERVER_H__
\ No newline at end of file
+ #endif //__HTTPSERVER_H__
--- a/Handler/FsHandler.cpp Tue Jun 30 00:21:41 2015 +0000
+++ b/Handler/FsHandler.cpp Wed Sep 02 02:03:22 2015 +0000
@@ -9,7 +9,8 @@
DigitalOut led_blue(LED3);
DigitalIn din(PC_14);
-
+AnalogIn ain0(A0);
+AnalogIn ain1(A1);
static int matchstrings(const char* one, const char* two)
{
@@ -60,30 +61,33 @@
{
}
+std::map<int, EthernetInterface*> HTTPFsRequestHandler::m_eth_list;
+
int HTTPFsRequestHandler::handleGetRequest()
{
HTTPHeaders headers;
+ EthernetInterface test_eth;
int retval = 0; //success
- uint8_t pin_state;
- if( std::string::npos != msg.uri.find("get_dio14.cgi") )
+ if( std::string::npos != msg.uri.find("get_netinfo.cgi") )
{
- if(din)
- pin_state = 1;
- else
- pin_state = 0;
+ char buf[256];
- /*
- *len = sprintf((char *)buf, "DioCallback({\"dio_p\":\"14\",\
- \"dio_s\":\"%d\"\
- });",
- pin_state // Digital io status
- );
+ sprintf(buf, "NetinfoCallback({\"mac\":\"%s\",\"ip\":\"%s\",\"sn\":\"%s\",\"gw\":\"%s\"});"
+ ,m_eth_list[0]->getMACAddress(),m_eth_list[0]->getIPAddress(),m_eth_list[0]->getNetworkMask(),m_eth_list[0]->getGateway());
+
+ tcp.send(buf, strlen(buf));
+ }
+
+ else if( std::string::npos != msg.uri.find("get_ain.cgi") )
+ {
+ char buf[256];
-
- Tcp.
- */
+ sprintf(buf, "AinCallback({\"ain_v0\":\"%.3f\",\"ain_v1\":\"%.3f\"});",ain0.read()*100, ain1.read()*100);
+
+ tcp.send(buf, strlen(buf));
}
+
else //read html pages
{
if (m_localPath.length() > 4)
@@ -209,3 +213,4 @@
return ret;
}
+
--- a/Handler/FsHandler.h Tue Jun 30 00:21:41 2015 +0000
+++ b/Handler/FsHandler.h Wed Sep 02 02:03:22 2015 +0000
@@ -25,8 +25,11 @@
#include "mbed.h"
#include "HTTPRequestHandler.h"
+#include "HTTPConnection.h"
+#include "EthernetInterface.h"
#include <map>
+#include <list>
#include <string>
/** class HTTPFsRequestHandler serves requests with file-system objects
@@ -37,6 +40,7 @@
std::string m_localPath;
public:
+
/** constructor for HTTPFsRequestHandler object and stores the request related data locally.
* the request handling will be initiated from within the constructor.
* @param rootPath : The path under which the handler was registered.
@@ -74,10 +78,15 @@
*/
static void mount(const char* requestPath, const char* localPath) { m_fsMap[requestPath] = localPath; }
+ //Test
+ //static std::list<EthernetInterface> m_eth_list;
+ static std::map<int, EthernetInterface*> m_eth_list;
+ static void mount_eth(EthernetInterface* eth) { m_eth_list[0] = eth; }
+
/** Parse a uri string for uri file name and argument:value pairs
*/
int parseUriArgs(string uri, map<string, string>& args);
uint32_t get_http_param_value(char* param_name);
};
-#endif // __FSHANDLER_H__
\ No newline at end of file
+#endif // __FSHANDLER_H__
