RPC over HTTP to control mbed application

Dependencies:   EthernetInterface HTTPServer mbed-rpc mbed-rtos mbed

Fork of RPC_HTTP by Sarah Marsh

Committer:
MohamadNazrin
Date:
Tue Feb 13 06:17:07 2018 +0000
Revision:
6:15e566d10c16
Parent:
5:5322cbfd7c01
RPC HTTP

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sarahmarshy 2:33d3bcad6a90 1 /*
sarahmarshy 2:33d3bcad6a90 2 Copyright (c) 2010 ARM Ltd
sarahmarshy 2:33d3bcad6a90 3
sarahmarshy 2:33d3bcad6a90 4 Permission is hereby granted, free of charge, to any person obtaining a copy
sarahmarshy 2:33d3bcad6a90 5 of this software and associated documentation files (the "Software"), to deal
sarahmarshy 2:33d3bcad6a90 6 in the Software without restriction, including without limitation the rights
sarahmarshy 2:33d3bcad6a90 7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
sarahmarshy 2:33d3bcad6a90 8 copies of the Software, and to permit persons to whom the Software is
sarahmarshy 2:33d3bcad6a90 9 furnished to do so, subject to the following conditions:
sarahmarshy 2:33d3bcad6a90 10
sarahmarshy 2:33d3bcad6a90 11 The above copyright notice and this permission notice shall be included in
sarahmarshy 2:33d3bcad6a90 12 all copies or substantial portions of the Software.
sarahmarshy 2:33d3bcad6a90 13
sarahmarshy 2:33d3bcad6a90 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
sarahmarshy 2:33d3bcad6a90 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
sarahmarshy 2:33d3bcad6a90 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
sarahmarshy 2:33d3bcad6a90 17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
sarahmarshy 2:33d3bcad6a90 18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
sarahmarshy 2:33d3bcad6a90 19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
sarahmarshy 2:33d3bcad6a90 20 THE SOFTWARE.
sarahmarshy 2:33d3bcad6a90 21 */
sarahmarshy 2:33d3bcad6a90 22 #include "mbed.h"
sarahmarshy 2:33d3bcad6a90 23 #include "EthernetInterface.h"
sarahmarshy 2:33d3bcad6a90 24 #include "HTTPServer.h"
sarahmarshy 2:33d3bcad6a90 25 #include "mbed_rpc.h"
sarahmarshy 2:33d3bcad6a90 26
sarahmarshy 4:a1b6651dd2ae 27 RpcDigitalOut led1(LED1,"led1");
MohamadNazrin 6:15e566d10c16 28 RpcDigitalOut led2(p21,"led2");
sarahmarshy 2:33d3bcad6a90 29
sarahmarshy 2:33d3bcad6a90 30 EthernetInterface eth;
sarahmarshy 2:33d3bcad6a90 31 HTTPServer svr;
sarahmarshy 2:33d3bcad6a90 32
sarahmarshy 2:33d3bcad6a90 33 int main() {
sarahmarshy 5:5322cbfd7c01 34 //Turn the LEDs off
MohamadNazrin 6:15e566d10c16 35 led1.write(0);
MohamadNazrin 6:15e566d10c16 36 led2.write(0);
sarahmarshy 2:33d3bcad6a90 37
sarahmarshy 2:33d3bcad6a90 38 RPC::add_rpc_class<RpcDigitalOut>();
sarahmarshy 2:33d3bcad6a90 39
sarahmarshy 2:33d3bcad6a90 40 printf("Setting up...\n");
sarahmarshy 2:33d3bcad6a90 41 eth.init();
sarahmarshy 2:33d3bcad6a90 42 int ethErr = eth.connect();
sarahmarshy 2:33d3bcad6a90 43 if(ethErr < 0)
sarahmarshy 2:33d3bcad6a90 44 {
sarahmarshy 2:33d3bcad6a90 45 printf("Error %d in setup.\n", ethErr);
sarahmarshy 2:33d3bcad6a90 46 return -1;
sarahmarshy 2:33d3bcad6a90 47 }
sarahmarshy 2:33d3bcad6a90 48
sarahmarshy 2:33d3bcad6a90 49 svr.addHandler<HTTPRpcRequestHandler>("/rpc");
sarahmarshy 2:33d3bcad6a90 50
sarahmarshy 2:33d3bcad6a90 51 //attach server to port 80
sarahmarshy 2:33d3bcad6a90 52 svr.start(80, &eth);
sarahmarshy 2:33d3bcad6a90 53
sarahmarshy 2:33d3bcad6a90 54 printf("Listening...\n");
sarahmarshy 2:33d3bcad6a90 55
sarahmarshy 2:33d3bcad6a90 56 Timer tm;
sarahmarshy 2:33d3bcad6a90 57 tm.start();
sarahmarshy 2:33d3bcad6a90 58 //Listen indefinitely
sarahmarshy 2:33d3bcad6a90 59 while(true)
sarahmarshy 2:33d3bcad6a90 60 {
sarahmarshy 2:33d3bcad6a90 61 svr.poll();
sarahmarshy 2:33d3bcad6a90 62 if(tm.read()>.5)
sarahmarshy 2:33d3bcad6a90 63 {
sarahmarshy 2:33d3bcad6a90 64 tm.start();
sarahmarshy 2:33d3bcad6a90 65 }
sarahmarshy 2:33d3bcad6a90 66 }
sarahmarshy 2:33d3bcad6a90 67
sarahmarshy 2:33d3bcad6a90 68 }