Jun Furutani / libMiMic

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Fri Jul 04 14:28:46 2014 +0000
Revision:
85:416f8bbbdf54
Parent:
77:8651d3c19a55
RPC???I2C/Slave/Memory/Serial???; ?????????????RPC????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 77:8651d3c19a55 1 #include "RpcHandlerBase.h"
nyatla 77:8651d3c19a55 2
nyatla 72:c118a7aa37a3 3 namespace MiMic
nyatla 72:c118a7aa37a3 4 {
nyatla 72:c118a7aa37a3 5 class DigitalOutHandler :RpcHandlerBase
nyatla 72:c118a7aa37a3 6 {
nyatla 72:c118a7aa37a3 7 public:
nyatla 72:c118a7aa37a3 8 static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 72:c118a7aa37a3 9 {
nyatla 77:8651d3c19a55 10 //u
nyatla 85:416f8bbbdf54 11 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 77:8651d3c19a55 12 PinName pin;
nyatla 77:8651d3c19a55 13 if(getParamsAsPin(mod,i_rpc,&pin,1)){
nyatla 77:8651d3c19a55 14 addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalOut>(new DigitalOut(pin)));
nyatla 72:c118a7aa37a3 15 }
nyatla 72:c118a7aa37a3 16 return NyLPC_TBool_TRUE;
nyatla 72:c118a7aa37a3 17 }
nyatla 72:c118a7aa37a3 18 static NyLPC_TBool new2(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 72:c118a7aa37a3 19 {
nyatla 77:8651d3c19a55 20 //ud return iid
nyatla 85:416f8bbbdf54 21 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 77:8651d3c19a55 22 PinName pin;
nyatla 77:8651d3c19a55 23 if(getParamsAsPin(mod,i_rpc,&pin,1)){
nyatla 77:8651d3c19a55 24 int v;
nyatla 77:8651d3c19a55 25 if(getParamInt(mod,i_rpc,v,1)){
nyatla 77:8651d3c19a55 26 addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalOut>(new DigitalOut(pin,v)));
nyatla 77:8651d3c19a55 27 }
nyatla 72:c118a7aa37a3 28 }
nyatla 77:8651d3c19a55 29 return NyLPC_TBool_TRUE;
nyatla 72:c118a7aa37a3 30 }
nyatla 72:c118a7aa37a3 31 static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 72:c118a7aa37a3 32 {
nyatla 77:8651d3c19a55 33 //dd return void
nyatla 85:416f8bbbdf54 34 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 77:8651d3c19a55 35 DigitalOut* inst=(DigitalOut*)getObjectBatch(mod,i_rpc);
nyatla 77:8651d3c19a55 36 if(inst!=NULL){
nyatla 77:8651d3c19a55 37 int v;
nyatla 77:8651d3c19a55 38 if(getParamInt(mod,i_rpc,v,1)){
nyatla 77:8651d3c19a55 39 inst->write(v);
nyatla 85:416f8bbbdf54 40 mod->putResult(i_rpc->method.id);
nyatla 72:c118a7aa37a3 41 }
nyatla 72:c118a7aa37a3 42 }
nyatla 72:c118a7aa37a3 43 return NyLPC_TBool_TRUE;
nyatla 72:c118a7aa37a3 44 }
nyatla 72:c118a7aa37a3 45 static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 72:c118a7aa37a3 46 {
nyatla 77:8651d3c19a55 47 //d return d
nyatla 85:416f8bbbdf54 48 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 77:8651d3c19a55 49 DigitalOut* inst=(DigitalOut*)getObjectBatch(mod,i_rpc);
nyatla 77:8651d3c19a55 50 if(inst!=NULL){
nyatla 77:8651d3c19a55 51 mod->putResult(i_rpc->method.id,"%d",(int)(inst->read()));
nyatla 72:c118a7aa37a3 52 }
nyatla 77:8651d3c19a55 53 return NyLPC_TBool_TRUE;
nyatla 72:c118a7aa37a3 54 }
nyatla 72:c118a7aa37a3 55 };
nyatla 72:c118a7aa37a3 56
nyatla 72:c118a7aa37a3 57
nyatla 72:c118a7aa37a3 58
nyatla 75:2a18df0ef111 59 const static struct NyLPC_TJsonRpcMethodDef func_table[]=
nyatla 75:2a18df0ef111 60 {
nyatla 75:2a18df0ef111 61 { "_new1" ,"u" ,DigitalOutHandler::new1},
nyatla 75:2a18df0ef111 62 { "_new2" ,"ud" ,DigitalOutHandler::new2},
nyatla 75:2a18df0ef111 63 { "write" ,"dd" ,DigitalOutHandler::write},
nyatla 75:2a18df0ef111 64 { "read" ,"d" ,DigitalOutHandler::read},
nyatla 75:2a18df0ef111 65 { NULL ,NULL ,NULL}
nyatla 75:2a18df0ef111 66 };
nyatla 75:2a18df0ef111 67
nyatla 75:2a18df0ef111 68 const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_DIGITAL_OUT={
nyatla 75:2a18df0ef111 69 "mbedJS","DigitalOut",func_table
nyatla 75:2a18df0ef111 70 };
nyatla 72:c118a7aa37a3 71
nyatla 72:c118a7aa37a3 72
nyatla 72:c118a7aa37a3 73
nyatla 72:c118a7aa37a3 74 }