![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Un serveur web embarqué pour mbed, commande de leds, lecture potentiometre en utilisant rpc.
Dependencies: EthernetNetIf HTTPServer RPCInterface mbed
Fork of HTTPServerExample by
Pour fonctionner correctement, il est nécessaire de placer un fichier nommé index.htm (page html + javascript) dans la mémoire du mbed. Voici le fichier que j'ai utilisé
/media/uploads/LouisReynier/index.htm
HTTPServerExample.cpp
- Committer:
- LouisReynier
- Date:
- 2017-04-06
- Revision:
- 3:c2b64cce42d8
- Parent:
- 1:114e347434c1
File content as of revision 3:c2b64cce42d8:
#include "mbed.h" #include "EthernetNetIf.h" #include "HTTPServer.h" #include "SerialRPCInterface.h" // LR 2/2/17 // sur ce fichier j'ai rajouté une variable RPC count que je peux lire à distance // adresse/rpc/count/read/ DigitalOut led1(LED1, "led1"); DigitalOut led2(LED2, "led2"); DigitalOut led3(LED3, "led3"); DigitalOut led4(LED4, "led4"); AnalogIn Pot1(p19, "pot1"); int count = 0 ; RPCVariable<int> rpc_count(&count, "count"); LocalFileSystem fs("webfs"); EthernetNetIf eth; HTTPServer svr; int main() { Base::add_rpc_class<DigitalOut>(); printf("Setting up...\n"); // modif LR config IP manuelle sinon dhcp ! EthernetNetIf eth( IpAddr(192,168,1,102), // IP IpAddr(255,255,255,0), // Subnet mask IpAddr(192,168,1,1), // Gateway IpAddr(192,168,1,1) ); // DNS EthernetErr ethErr = eth.setup(); if(ethErr) { printf("Error %d in setup.\n", ethErr); return -1; } printf("Setup OK\n"); // on définit où seront stockés les fichiers ! FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path svr.addHandler<SimpleHandler>("/hello"); // http://a.b.c.d/hello : hello world ! svr.addHandler<RPCHandler>("/rpc"); svr.addHandler<FSHandler>("/files"); svr.addHandler<FSHandler>("/"); //Default handler //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm svr.bind(80); printf("Listening...\n"); Timer tm; tm.start(); //Listen indefinitely while(true) { Net::poll(); if(tm.read()>.5) { led1=!led1; //Show that we are alive count ++ ; tm.start(); } } return 0; } // http://192.168.1.102/rpc/pot1/read dans le navigateur permet de lire l'état du potard !