web server json
Dependencies: MbedJSONValue WIZnetInterface httpServer_with_Ethernt mbed
Fork of Simple_HTTPClient_JSON by
main.cpp
- Committer:
- joon874
- Date:
- 2016-02-25
- Revision:
- 1:97cf847e16cd
- Parent:
- 0:e6cc33c4970b
File content as of revision 1:97cf847e16cd:
//#include "mbed.h"
//#include "EthernetInterface.h"
//#include "MbedJSONValue.h"
/*
MbedJSONValue parser;
EthernetInterface eth;
TCPSocketConnection sock;
int main()
{
int http_tx_msg_sz=800;
char http_tx_msg[http_tx_msg_sz];
int http_rx_msg_sz=500;
char http_rx_msg[http_rx_msg_sz];
int returnCode = 0;
// Enter a MAC address for your controller below.
uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
printf("initializing Ethernet\r\n");
// initializing MAC address
eth.init(mac_addr, "192.168.0.34", "255.255.255.0", "192.168.0.1");
// Check Ethenret Link
if(eth.link() == true) printf("- Ethernet PHY Link-Done \r\n");
else printf("- Ethernet PHY Link- Fail\r\n");
// Start Ethernet connecting: Trying to get an IP address using DHCP
if (eth.connect()<0) printf("Fail - Ethernet Connecing");
// Print your local IP address:
printf("IP=%s\n\r",eth.getIPAddress());
printf("MASK=%s\n\r",eth.getNetworkMask());
printf("GW=%s\n\r",eth.getGateway());
while(1) {
sock.connect("192.168.0.223", 8000);
snprintf(http_tx_msg, http_tx_msg_sz, "GET / HTTP/1.1\r\nHost: 192.168.0.223:8000\r\nUser-Agent: WIZwiki-W7500ECO\r\nConection: close\r\n\r\n");
sock.send_all(http_tx_msg, http_tx_msg_sz-1);
while ( (returnCode = sock.receive(http_rx_msg, http_rx_msg_sz-1)) > 0) {
http_rx_msg[returnCode] = '\0';
printf("Received %d chars from server:\n\r%s\n", returnCode, http_rx_msg);
}
sock.close();
parse(parser, http_rx_msg);
printf("name =%s\r\n" , parser["name"].get<string>().c_str());
printf("age =%d\r\n" , parser["age"].get<int>());
printf("gender =%s\r\n" , parser["gender"].get<string>().c_str());
wait(10);
}
}
*/
#include "mbed.h"
#include "EthernetInterface.h"
#include "MbedJSONValue.h"
EthernetInterface eth;
TCPSocketConnection sock;
MbedJSONValue WIZwikiREST;
MbedJSONValue GPIOs;
char ip_addr[] = "192.168.0.100";
char subnet_mask[] = "255.255.255.0";
char gateway_addr[] = "192.168.0.1";
int main() {
std::string s;
// Fill the object
WIZwikiREST["Name"] = "WIZwiki-REST-01";
WIZwikiREST["Network"]["IP"] = ip_addr;
WIZwikiREST["Network"]["SN"] = subnet_mask;
WIZwikiREST["Network"]["GW"] = gateway_addr;
WIZwikiREST["User"]["Name"] = "Lawrence";
WIZwikiREST["User"]["ID"] = "law";
WIZwikiREST["User"]["PSWD"] = "law1234";
GPIOs["P5"]["Mode"] = "DIO";
GPIOs["P6"]["Mode"] = "DIO";
WIZwikiREST["GPIOs"] = GPIOs;
// Serialize it into a JSON string
s = WIZwikiREST.serialize();
printf("json: %s\r\n", s.c_str());
string item = "Name";
printf("WIZwikiREST[item] =%s", WIZwikiREST[item].get<string>().c_str());
int http_tx_msg_sz=800;
char http_tx_msg[http_tx_msg_sz];
int http_rx_msg_sz=500;
char http_rx_msg[http_rx_msg_sz];
int returnCode = 0;
// Enter a MAC address for your controller below.
uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0xFE};
// initializing MAC address
printf("initializing Ethernet\r\n");
eth.init(mac_addr, ip_addr, subnet_mask, gateway_addr);
// Check Ethernet Link
printf("Check Ethernet Link\r\n");
while(1) //Wait link up
{
if(eth.link() == true)
break;
}
printf("Link up\r\n");
// Connect
eth.connect();
printf("Server IP Address is %s\r\n", eth.getIPAddress());
if (!svr.start(80, ð)) {
error("Server not starting !");
exit(0);
}
while(1) {
svr.poll();
}
/*
while(1) {
sock.connect("192.168.0.223", 8000);
snprintf(http_tx_msg, http_tx_msg_sz, "GET / HTTP/1.1\r\nHost: 192.168.0.223:8000\r\nUser-Agent: WIZwiki-W7500ECO\r\nConection: close\r\n\r\n");
sock.send_all(http_tx_msg, http_tx_msg_sz-1);
while ( (returnCode = sock.receive(http_rx_msg, http_rx_msg_sz-1)) > 0) {
http_rx_msg[returnCode] = '\0';
printf("Received %d chars from server:\n\r%s\n", returnCode, http_rx_msg);
}
sock.close();
parse(parser, http_rx_msg);
printf("name =%s\r\n" , parser["name"].get<string>().c_str());
printf("age =%d\r\n" , parser["age"].get<int>());
printf("gender =%s\r\n" , parser["gender"].get<string>().c_str());
wait(10);
}
*/
}
/** MbedJSONValue class
*
* Example:
* - creation of an MbedJSONValue of type TypeObject containing two others MbedJSONValue:
* -one array of one string and one integer identified by "my_array"
* -a boolean identified by "my_boolean"
* - serialization in JSON format of this object
* @code
* #include "mbed.h"
* #include "MbedJSONValue.h"
* #include <string>
*
* int main() {
*
* MbedJSONValue demo;
* std::string s;
*
* //fill the object
* demo["my_array"][0] = "demo_string";
* demo["my_array"][1] = 10;
* demo["my_boolean"] = false;
*
* //serialize it into a JSON string
* s = demo.serialize();
* printf("json: %s\r\n", s.c_str());
* }
*
* @endcode
*
* Example:
* - creation of an MbedJSONValue from a JSON string
* - extraction of different values from this existing MbedJSONValue
* @code
* #include "mbed.h"
* #include "MbedJSONValue.h"
* #include <string>
*
* int main() {
* MbedJSONValue demo;
*
* const char * json = "{\"my_array\": [\"demo_string\", 10], \"my_boolean\": true}";
*
* //parse the previous string and fill the object demo
* parse(demo, json);
*
* std::string my_str;
* int my_int;
* bool my_bool;
*
* my_str = demo["my_array"][0].get<std::string>();
* my_int = demo["my_array"][1].get<int>();
* my_bool = demo["my_boolean"].get<bool>();
*
* printf("my_str: %s\r\n", my_str.c_str());
* printf("my_int: %d\r\n", my_int);
* printf("my_bool: %s\r\n", my_bool ? "true" : "false");
* }
* @endcode
*/
