http://mbed.org/users/okini3939/notebook/RPC_jp/

Dependencies:   mbed

Committer:
okini3939
Date:
Tue Jun 05 02:20:50 2012 +0000
Revision:
0:9b9a9bfadf9b

        

Who changed what in which revision?

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