This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RpcBusInOut.cpp Source File

RpcBusInOut.cpp

00001 #include "RpcHandlerBase.h"
00002 namespace MiMic
00003 {
00004     class BusInOutHandler :RpcHandlerBase
00005     {
00006     public:
00007         static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00008         {
00009             //uuuuuuuuuuuuuuuu
00010             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00011             PinName pin[16];
00012             if(getParamsAsPin(mod,i_rpc,pin,16)){
00013                 addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<BusInOut>(new BusInOut(pin)));
00014             }
00015             return NyLPC_TBool_TRUE;
00016         }
00017         static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00018         {
00019             //d return d
00020             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00021             BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc);
00022             if(inst!=NULL){
00023                 mod->putResult(i_rpc->method.id,"%d",(int)(inst->read()));
00024             }
00025             return NyLPC_TBool_TRUE;
00026         }
00027         static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00028         {
00029             //dd return void
00030             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00031             BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc);
00032             if(inst!=NULL){
00033                 int v;
00034                 if(getParamInt(mod,i_rpc,v,1)){
00035                     inst->write(v);
00036                     mod->putResult(i_rpc->method.id);
00037                 }
00038             }
00039             return NyLPC_TBool_TRUE;
00040         }
00041         static NyLPC_TBool output(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00042         {
00043             //d return void
00044             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00045             BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc);
00046             if(inst!=NULL){
00047                 inst->output();
00048                 mod->putResult(i_rpc->method.id);
00049             }
00050             return NyLPC_TBool_TRUE;
00051         }
00052         static NyLPC_TBool input(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00053         {
00054             //d return void
00055             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00056             BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc);
00057             if(inst!=NULL){
00058                 inst->input();
00059                 mod->putResult(i_rpc->method.id);
00060             }
00061             return NyLPC_TBool_TRUE;
00062         }
00063         static NyLPC_TBool mode(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00064         {
00065             //dd return void
00066             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00067             BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc);
00068             if(inst!=NULL){
00069                 int v;
00070                 if(getParamInt(mod,i_rpc,v,1)){
00071                     inst->mode(pinmodeId2PinMode(v));
00072                     mod->putResult(i_rpc->method.id);
00073                 }
00074             }
00075             return NyLPC_TBool_TRUE;
00076         }
00077     };
00078 
00079 
00080 
00081 const static struct NyLPC_TJsonRpcMethodDef func_table[]=
00082 {
00083     { "_new1"   ,"uuuuuuuuuuuuuuuuu"    ,BusInOutHandler::new1},
00084     { "read"    ,"d"    ,BusInOutHandler::read},
00085     { "write"   ,"dd"   ,BusInOutHandler::write},
00086     { "output"  ,"d"    ,BusInOutHandler::output},
00087     { "input"   ,"d"    ,BusInOutHandler::input},
00088     { "mode"    ,"dd"   ,BusInOutHandler::mode},
00089     { NULL      ,NULL   ,NULL}
00090 };
00091 
00092 const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_BUS_IN_OUT={
00093     "mbedJS","BusInOut",func_table
00094 };
00095 
00096 
00097 
00098 }