
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);
myrpc.cpp@0:5e068c08724a, 2009-12-09 (annotated)
- Committer:
- iva2k
- Date:
- Wed Dec 09 01:55:06 2009 +0000
- Revision:
- 0:5e068c08724a
Who changed what in which revision?
User | Revision | Line number | New 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 |