HTTPServer example with additional functions: * Link status indication (LED4); * Local file system (create index.htm page on MBED!); * RPC-able class (myrpc, allows remote function call that blinks LED1 N times);

Dependencies:   mbed lwip

Committer:
iva2k
Date:
Wed Dec 09 01:55:06 2009 +0000
Revision:
0:5e068c08724a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iva2k 0:5e068c08724a 1 // myrpc.cpp
iva2k 0:5e068c08724a 2 //
iva2k 0:5e068c08724a 3 // Based on:
iva2k 0:5e068c08724a 4 // http://mbed.org/projects/cookbook/svn/Servo/trunk/Servo.h
iva2k 0:5e068c08724a 5 // http://mbed.org/projects/cookbook/svn/Servo/trunk/Servo.cpp
iva2k 0:5e068c08724a 6 // http://mbed.org/forum/topic/234/
iva2k 0:5e068c08724a 7
iva2k 0:5e068c08724a 8 #include "myrpc.h"
iva2k 0:5e068c08724a 9 #ifdef MBED_RPC
iva2k 0:5e068c08724a 10 #include "rpc.h"
iva2k 0:5e068c08724a 11 #endif
iva2k 0:5e068c08724a 12
iva2k 0:5e068c08724a 13 namespace mbed {
iva2k 0:5e068c08724a 14
iva2k 0:5e068c08724a 15 myrpc::myrpc(PinName pin, const char *name) : Base(name), _pin(pin) {}
iva2k 0:5e068c08724a 16
iva2k 0:5e068c08724a 17 void myrpc::blink(int n) {
iva2k 0:5e068c08724a 18 for (int i=0; i<n; i++) {
iva2k 0:5e068c08724a 19 _pin = 1;
iva2k 0:5e068c08724a 20 wait(0.2);
iva2k 0:5e068c08724a 21 _pin = 0;
iva2k 0:5e068c08724a 22 wait(0.2);
iva2k 0:5e068c08724a 23 }
iva2k 0:5e068c08724a 24 }
iva2k 0:5e068c08724a 25
iva2k 0:5e068c08724a 26 #ifdef MBED_RPC
iva2k 0:5e068c08724a 27 const rpc_method *myrpc::get_rpc_methods() {
iva2k 0:5e068c08724a 28 static const rpc_method rpc_methods[] = {
iva2k 0:5e068c08724a 29 { "blink", rpc_method_caller<myrpc, int, &myrpc::blink> },
iva2k 0:5e068c08724a 30 RPC_METHOD_SUPER(Base)
iva2k 0:5e068c08724a 31 };
iva2k 0:5e068c08724a 32 return rpc_methods;
iva2k 0:5e068c08724a 33 }
iva2k 0:5e068c08724a 34 rpc_class *myrpc::get_rpc_class() {
iva2k 0:5e068c08724a 35 static const rpc_function funcs[] = {
iva2k 0:5e068c08724a 36 "new", rpc_function_caller<const char*, PinName, const char*, &Base::construct<myrpc,PinName,const char*> >,
iva2k 0:5e068c08724a 37 RPC_METHOD_END
iva2k 0:5e068c08724a 38 };
iva2k 0:5e068c08724a 39 static rpc_class c = { "myrpc", funcs, NULL };
iva2k 0:5e068c08724a 40 return &c;
iva2k 0:5e068c08724a 41 }
iva2k 0:5e068c08724a 42 #endif
iva2k 0:5e068c08724a 43
iva2k 0:5e068c08724a 44 } // namespace mbed