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 RpcAnalogOut.cpp Source File

RpcAnalogOut.cpp

00001 #include "RpcHandlerBase.h"
00002 namespace MiMic
00003 {
00004     class AnalogOutHandler :RpcHandlerBase
00005     {
00006     public:
00007         static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00008         {
00009             //u
00010             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00011             PinName pin;
00012             if(getParamsAsPin(mod,i_rpc,&pin,1)){
00013                 addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<AnalogOut>(new AnalogOut(pin)));
00014             }
00015             return NyLPC_TBool_TRUE;
00016         }
00017         /** 10000倍したread()の値を返す*/
00018         static NyLPC_TBool read_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00019         {
00020             //d return d
00021             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00022             AnalogOut* inst=(AnalogOut*)getObjectBatch(mod,i_rpc);
00023             if(inst!=NULL){
00024                 mod->putResult(i_rpc->method.id,"%d",(int)(inst->read()*10000));
00025             }
00026             return NyLPC_TBool_TRUE;
00027         }
00028         static NyLPC_TBool write_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00029         {
00030             //dd return void
00031             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00032             AnalogOut* inst=(AnalogOut*)getObjectBatch(mod,i_rpc);
00033             if(inst!=NULL){
00034                 int v;
00035                 if(getParamInt(mod,i_rpc,v,1)){
00036                     inst->write((float)v/10000.0f);
00037                     mod->putResult(i_rpc->method.id);
00038                 }
00039             }
00040             return NyLPC_TBool_TRUE;
00041         }
00042         static NyLPC_TBool write_u16(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
00043         {
00044             ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
00045             AnalogOut* inst=(AnalogOut*)getObjectBatch(mod,i_rpc);
00046             if(inst!=NULL){
00047                 unsigned int v;
00048                 if(getParamUInt(mod,i_rpc,v,1)){
00049                     inst->write_u16((unsigned short)v);
00050                     mod->putResult(i_rpc->method.id);
00051                 }
00052             }
00053             return NyLPC_TBool_TRUE;
00054         }
00055     };
00056 
00057 
00058 
00059 const static struct NyLPC_TJsonRpcMethodDef func_table[]=
00060 {
00061     { "_new1"       ,"u"    ,AnalogOutHandler::new1},
00062     { "read_fx"     ,"d"    ,AnalogOutHandler::read_fx},
00063     { "write_fx"    ,"dd"   ,AnalogOutHandler::write_fx},
00064     { "write_u16"   ,"du"   ,AnalogOutHandler::write_u16},
00065     { NULL      ,NULL   ,NULL}
00066 };
00067 
00068 const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_ANALOG_OUT={
00069     "mbedJS","AnalogOut",func_table
00070 };
00071 
00072 
00073 
00074 }