NNN40 run a HTTP server with RPC using Soft AP mode
Dependencies: WIFI_API_32kRAM mbed
Fork of HTTP-Server by
The sample code will run as a WiFi Soft AP mode with given AP configuration setting including SSID name and password. IP address (fixed to 192.168.2.1 for the current version of WIFI_API)of AP router will be print out once Soft AP mode is operating.
User can open their web browser and go to http://192.168.2.1/. and have a try on switch on a led. Firstly, we need to create an object to control a led
Then, led can be switch on using RPC command
More information cab be found from the links below
https://developer.mbed.org/users/feb11/code/HTTP-Server/
https://developer.mbed.org/cookbook/Interfacing-Using-RPC
RequestHandler.cpp
- Committer:
- feb11
- Date:
- 2013-07-17
- Revision:
- 0:9e4bcb10b3e3
- Child:
- 7:838d7ea07e18
File content as of revision 0:9e4bcb10b3e3:
#include "RequestHandler.h" #include "mbed_rpc.h" #include "RPCObjectManager.h" #include "RPCCommand.h" void GetRequestHandler::handle(const RPCCommand& cmd, char *reply) { switch(cmd.get_type()) { case DELETE: strcat(reply, "You must send a DELETE request to remove an object "); break; case FUNCTION_CALL: RPC::call(cmd.get_cmd(), reply); break; case CREATE: strcat(reply, "You must send a PUT request to call a function"); break; default: strcat(reply, "Invalid RPC command"); break; } } void PutRequestHandler::handle(const RPCCommand& cmd, char *reply) { switch(cmd.get_type()) { case DELETE: strcat(reply, "You must send a DELETE request to remove an object "); break; case FUNCTION_CALL: strcat(reply, "You must send a GET request to call a function"); break; case CREATE: RPC::call(cmd.get_cmd(), reply); if(strlen(reply) > 0) { RPCObjectManager::instance().store_object(reply); strcat(reply, " has been created"); } else strcat(reply, "Error while creating object."); break; default: strcat(reply, "Invalid RPC command"); break; } } void DeleteRequestHandler::handle(const RPCCommand& cmd, char *reply) { switch(cmd.get_type()) { case CREATE: strcat(reply, "You must send a PUT request to remove an object "); break; case FUNCTION_CALL: strcat(reply, "You must send a GET request to call a function"); break; case DELETE: RPC::call(cmd.get_cmd(), reply); RPCObjectManager::instance().remove_object(cmd.get_obj_name()); strcat(reply, "Deleted object "); strcat(reply, cmd.get_obj_name()); break; default: strcat(reply, "Invalid RPC command"); break; } } void ComplexRequestHandler::handle(const RPCCommand& cmd, char *reply) { switch(cmd.get_type()) { case CREATE : putHandler.handle(cmd, reply); break; case DELETE : deleteHandler.handle(cmd, reply); break; case FUNCTION_CALL : getHandler.handle(cmd, reply); break; default : strcat(reply, "Invalid RPC command"); break; } }