Suga koubou
/
MyRPC_Serial
http://mbed.org/users/okini3939/notebook/RPC_jp/
MyRPC.cpp@0:9b9a9bfadf9b, 2012-06-05 (annotated)
- Committer:
- okini3939
- Date:
- Tue Jun 05 02:20:50 2012 +0000
- Revision:
- 0:9b9a9bfadf9b
Who changed what in which revision?
User | Revision | Line number | New 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 |