This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
Revision 77:8651d3c19a55, committed 2014-06-20
- Comitter:
- nyatla
- Date:
- Fri Jun 20 15:38:30 2014 +0000
- Parent:
- 76:b375b3d750d8
- Child:
- 78:8cdb8fc7eda8
- Commit message:
- MiMicCore??363????; mbed/jsonrpc?????????
Changed in this revision
--- a/core/NyLPC_cMiMicEnv.c Sat Jun 14 17:42:11 2014 +0000 +++ b/core/NyLPC_cMiMicEnv.c Fri Jun 20 15:38:30 2014 +0000 @@ -1,7 +1,7 @@ #include "NyLPC_cMiMicEnv.h" #include "../uip/NyLPC_cUipService_protected.h" -const static char* VERSION="MiMic/1.5.5"; +const static char* VERSION="MiMic/1.5.6"; #if NyLPC_MCU==NyLPC_MCU_LPC4088 const static char* MCU="LPC4088";
--- a/core/http/json/NyLPC_cJsonRpcParser.h Sat Jun 14 17:42:11 2014 +0000 +++ b/core/http/json/NyLPC_cJsonRpcParser.h Fri Jun 20 15:38:30 2014 +0000 @@ -71,12 +71,12 @@ #define NyLPC_TJsonRpcParserResult_TYPE_METHOD 2 /** NyLPC_TJsonRpcParserResultが格納できる引数の最大数。パラメータの最大数に等しくなります。*/ -#define NyLPC_TJsonRpcParserResult_NUMBER_OF_PARAM_INDEX 16 +#define NyLPC_TJsonRpcParserResult_NUMBER_OF_PARAM_INDEX 32 /** * NyLPC_TJsonRpcParserResultが格納できるパラメータの総バイト数。 * (文字数+1)+(uint32|int32)*4+uint8の合計値です。 */ -#define NyLPC_TJsonRpcParserResult_PARAM_BUF 128 +#define NyLPC_TJsonRpcParserResult_PARAM_BUF 256 /** * JSONRPC構文のパース結果を格納します。
--- a/mbed/jsonrpc/MbedJsApi.h Sat Jun 14 17:42:11 2014 +0000 +++ b/mbed/jsonrpc/MbedJsApi.h Fri Jun 20 15:38:30 2014 +0000 @@ -5,11 +5,17 @@ { class MbedJsApi{ public: - /** - * MiMicRPCの定義するピンIDをmbedピンIDへ変換します。 - */ - static PinName pinId2PinName(unsigned int i_id); - public: const static struct NyLPC_TJsonRpcClassDef RPC_MBED_DIGITAL_OUT; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_DIGITAL_IN; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_ANALOG_IN; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_ANALOG_OUT; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_BUS_IN; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_BUS_OUT; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_BUS_IN_OUT; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_PWM_OUT; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_PORT_OUT; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_PORT_IN; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_SPI; + const static struct NyLPC_TJsonRpcClassDef RPC_MBED_SPI_SLAVE; }; }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/PortIn.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,48 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class PortInHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //ud + ModJsonRpc* mod=(ModJsonRpc*)i_param; + unsigned int port; + int mask; + if(getParamUInt(mod,i_rpc,port,0)){ + if(getParamInt(mod,i_rpc,mask,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<PortIn>(new PortIn(portId2PortName(port),mask))); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PortIn* inst=(PortIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"ud" ,PortInHandler::new1}, + { "read" ,"d" ,PortInHandler::read}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_PORT_IN={ + "mbedJS","PortIn",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/PortOut.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,63 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class PortOutHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //ud + ModJsonRpc* mod=(ModJsonRpc*)i_param; + unsigned int port; + int mask; + if(getParamUInt(mod,i_rpc,port,0)){ + if(getParamInt(mod,i_rpc,mask,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<PortOut>(new PortOut(portId2PortName(port),mask))); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PortOut* inst=(PortOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PortOut* inst=(PortOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->write(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"ud" ,PortOutHandler::new1}, + { "read" ,"d" ,PortOutHandler::read}, + { "write" ,"dd" ,PortOutHandler::write}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_PORT_OUT={ + "mbedJS","PortOut",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/PwmOut.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,151 @@ +#include "RpcHandlerBase.h" + +namespace MiMic +{ + class PwmOutHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //u + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin; + if(getParamsAsPin(mod,i_rpc,&pin,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<PwmOut>(new PwmOut(pin))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->write((float)v/10000.f); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read()*10000)); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool period_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->period((float)v/10000.f); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool period_ms(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->period_ms(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool period_us(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->period_us(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool pulsewidth_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->pulsewidth((float)v/10000.0f); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool pulsewidth_ms(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->pulsewidth_ms(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool pulsewidth_us(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PwmOut* inst=(PwmOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->pulsewidth_us(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"u" ,PwmOutHandler::new1}, + { "write_fx" ,"dd" ,PwmOutHandler::write_fx}, + { "read_fx" ,"d" ,PwmOutHandler::read_fx}, + { "period" ,"dd" ,PwmOutHandler::period_fx}, + { "period_ms" ,"dd" ,PwmOutHandler::period_ms}, + { "period_us" ,"dd" ,PwmOutHandler::period_us}, + { "pulsewidth_fx" ,"dd" ,PwmOutHandler::pulsewidth_fx}, + { "pulsewidth_ms" ,"dd" ,PwmOutHandler::pulsewidth_ms}, + { "pulsewidth_us" ,"dd" ,PwmOutHandler::pulsewidth_us}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_PWM_OUT={ + "mbedJS","PwmOut",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcAnalogIn.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,57 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class AnalogInHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //u + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin; + if(getParamsAsPin(mod,i_rpc,&pin,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<AnalogIn>(new AnalogIn(pin))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read_u16(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + AnalogIn* inst=(AnalogIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read_u16())); + } + return NyLPC_TBool_TRUE; + } + /** 10000倍したread()の値を返す*/ + static NyLPC_TBool read_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + AnalogIn* inst=(AnalogIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read()*10000)); + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"u" ,AnalogInHandler::new1}, + { "read_u16" ,"d" ,AnalogInHandler::read_u16}, + { "read_fx" ,"d" ,AnalogInHandler::read_fx}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_ANALOG_IN={ + "mbedJS","AnalogIn",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcAnalogOut.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,75 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class AnalogOutHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //u + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin; + if(getParamsAsPin(mod,i_rpc,&pin,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<AnalogOut>(new AnalogOut(pin))); + } + return NyLPC_TBool_TRUE; + } + /** 10000倍したread()の値を返す*/ + static NyLPC_TBool read_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + AnalogOut* inst=(AnalogOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read()*10000)); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write_fx(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + AnalogOut* inst=(AnalogOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->write((float)v/10000.0f); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write_u16(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + ModJsonRpc* mod=(ModJsonRpc*)i_param; + AnalogOut* inst=(AnalogOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + unsigned int v; + if(getParamUInt(mod,i_rpc,v,1)){ + inst->write((unsigned int)v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"u" ,AnalogOutHandler::new1}, + { "read_fx" ,"d" ,AnalogOutHandler::read_fx}, + { "write_fx" ,"dd" ,AnalogOutHandler::write_fx}, + { "write_u16" ,"du" ,AnalogOutHandler::write_u16}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_ANALOG_OUT={ + "mbedJS","AnalogOut",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcBusIn.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,60 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class BusInHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //uuuuuuuuuuuuuuuu + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin[16]; + if(getParamsAsPin(mod,i_rpc,pin,16)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<BusIn>(new BusIn(pin))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusIn* inst=(BusIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool mode(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusIn* inst=(BusIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->mode(pinmodeId2PinMode(v)); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"uuuuuuuuuuuuuuuu",BusInHandler::new1}, + { "read" ,"d" ,BusInHandler::read}, + { "mode" ,"dd" ,BusInHandler::mode}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_BUS_IN={ + "mbedJS","BusIn",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcBusInOut.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,99 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class BusInOutHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //uuuuuuuuuuuuuuuu + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin[16]; + if(getParamsAsPin(mod,i_rpc,pin,16)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<BusInOut>(new BusInOut(pin))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->write(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool output(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + inst->output(); + mod->putResult(i_rpc->method.id,""); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool input(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + inst->input(); + mod->putResult(i_rpc->method.id,""); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool mode(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusInOut* inst=(BusInOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->mode(pinmodeId2PinMode(v)); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"uuuuuuuuuuuuuuuu" ,BusInOutHandler::new1}, + { "read" ,"d" ,BusInOutHandler::read}, + { "write" ,"dd" ,BusInOutHandler::write}, + { "output" ,"d" ,BusInOutHandler::output}, + { "input" ,"d" ,BusInOutHandler::input}, + { "mode" ,"dd" ,BusInOutHandler::mode}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_BUS_IN_OUT={ + "mbedJS","BusInOut",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcBusOut.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,61 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class BusOutHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //uuuuuuuuuuuuuuuu + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin[16]; + if(getParamsAsPin(mod,i_rpc,pin,16)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<BusOut>(new BusOut(pin))); + } + return NyLPC_TBool_TRUE; + } + + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusOut* inst=(BusOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + BusOut* inst=(BusOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->write(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"uuuuuuuuuuuuuuuu" ,BusOutHandler::new1}, + { "read" ,"d" ,BusOutHandler::read}, + { "write" ,"dd" ,BusOutHandler::write}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_BUS_OUT={ + "mbedJS","BusOut",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcDigitalIn.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,61 @@ +#include "RpcHandlerBase.h" + +namespace MiMic +{ + class DigitalInHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //u + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin; + if(getParamsAsPin(mod,i_rpc,&pin,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalIn>(new DigitalIn(pin))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //d return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + DigitalIn* inst=(DigitalIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool mode(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + DigitalIn* inst=(DigitalIn*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->mode(pinmodeId2PinMode(v)); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"u" ,DigitalInHandler::new1}, + { "read" ,"d" ,DigitalInHandler::read}, + { "mode" ,"dd" ,DigitalInHandler::mode}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_DIGITAL_IN={ + "mbedJS","DigitalIn",func_table +}; + + + +} +
--- a/mbed/jsonrpc/RpcDigitalOut.cpp Sat Jun 14 17:42:11 2014 +0000 +++ b/mbed/jsonrpc/RpcDigitalOut.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -1,75 +1,42 @@ -#include "mod/ModJsonRpc.h" -#include "MbedJsApi.h" -#include "mbed.h" +#include "RpcHandlerBase.h" + namespace MiMic { - - - class RpcHandlerBase - { - public: - static void addNewObjectBatch(ModJsonRpc& i_mod,unsigned int i_id,ModJsonRpc::BasicRpcObject* i_new_object) - { - int i=i_mod.addObject(i_new_object); - if(i<0){ - delete i_new_object; - i_mod.putError(i_id,ModJsonRpc::INVALID_PARAMS); - return; - } - i_mod.putResult(i_id,"%d",i); - return; - } - static void* getObjectBatch(ModJsonRpc& i_mod,unsigned int i_id,int i_iid) - { - void* ret=i_mod.getObject(i_iid); - if(ret==NULL){ - i_mod.putError(i_id,ModJsonRpc::INTERNAL_ERROR); - } - return ret; - } - }; - class DigitalOutHandler :RpcHandlerBase { public: static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) { + //u ModJsonRpc* mod=(ModJsonRpc*)i_param; - NyLPC_TUInt32 pin; - if(!NyLPC_TJsonRpcParserResult_getUInt32(i_rpc,0,&pin)){ - mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); - }else{ - addNewObjectBatch(*mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalOut>(new DigitalOut(MbedJsApi::pinId2PinName(pin)))); + PinName pin; + if(getParamsAsPin(mod,i_rpc,&pin,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalOut>(new DigitalOut(pin))); } return NyLPC_TBool_TRUE; } static NyLPC_TBool new2(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) { + //ud return iid ModJsonRpc* mod=(ModJsonRpc*)i_param; - NyLPC_TUInt32 pin; - NyLPC_TInt32 value; - //pin number - if( (!NyLPC_TJsonRpcParserResult_getUInt32(i_rpc,0,&pin)) || - (!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,1,&value))) - { - mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); - }else{ - addNewObjectBatch(*mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalOut>(new DigitalOut(MbedJsApi::pinId2PinName(pin),value))); + PinName pin; + if(getParamsAsPin(mod,i_rpc,&pin,1)){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<DigitalOut>(new DigitalOut(pin,v))); + } } - return NyLPC_TBool_TRUE; + return NyLPC_TBool_TRUE; } static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) { + //dd return void ModJsonRpc* mod=(ModJsonRpc*)i_param; - NyLPC_TInt32 iid,value; - if( (!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,0,&iid)) || - (!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,1,&value))) - { - mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); - }else{ - DigitalOut* inst=(DigitalOut*)getObjectBatch(*mod,i_rpc->method.id,iid); - if(inst!=NULL){ - inst->write(value); + DigitalOut* inst=(DigitalOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->write(v); mod->putResult(i_rpc->method.id,""); } } @@ -77,19 +44,13 @@ } static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) { + //d return d ModJsonRpc* mod=(ModJsonRpc*)i_param; - NyLPC_TInt32 iid; - if( (!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,0,&iid))) - { - mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); - }else{ - DigitalOut* inst=(DigitalOut*)getObjectBatch(*mod,i_rpc->method.id,iid); - if(inst!=NULL){ - int v=inst->read(); - mod->putResult(i_rpc->method.id,"%d",v); - } + DigitalOut* inst=(DigitalOut*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); } - return NyLPC_TBool_TRUE; + return NyLPC_TBool_TRUE; } };
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/RpcHandlerBase.h Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,107 @@ +#include "mod/ModJsonRpc.h" +#include "MbedJsApi.h" +#include "mbed.h" +namespace MiMic +{ + + /** + * JSONRPCハンドラのベースクラス。 + * よく使う関数群を定義します。 + */ + class RpcHandlerBase + { + public: + /** + * MiMicRPCの定義するピンIDをmbedピンIDへ変換します。 + * ターゲットごとに実装します。 + */ + static PinName pinId2PinName(unsigned int i_id); + static PinMode pinmodeId2PinMode(unsigned int i_id); + static PortName portId2PortName(unsigned int i_id); + + /** + * Websocketコネクションに同期したオブジェクトリストにnewオブジェクトを登録します。 + * 登録するオブジェクトは、{@link BasicRpcObject}でラップする必要があります。 + */ + static void addNewObjectBatch(ModJsonRpc* i_mod,unsigned int i_id,ModJsonRpc::BasicRpcObject* i_new_object) + { + int i=i_mod->addObject(i_new_object); + if(i<0){ + delete i_new_object; + i_mod->putError(i_id,ModJsonRpc::INVALID_PARAMS); + return; + } + i_mod->putResult(i_id,"%d",i); + return; + } + /** i_idx番目のRPCパラメータをiidとしてインスタンスを取得します。*/ + static void* getObjectBatch(ModJsonRpc* i_mod,const union NyLPC_TJsonRpcParserResult* i_rpc,int i_idx=0) + { + NyLPC_TInt32 v; + if(!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,i_idx,&v)){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); + return NULL; + } + void* ret=i_mod->getObject(v); + if(ret==NULL){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INTERNAL_ERROR); + return NULL; + } + return ret; + } + + /** u...パラメータをN個のPinIDと解釈して返す。失敗した場合は終了処理も行う。 + */ + static bool getParamsAsPin(ModJsonRpc* i_mod,const union NyLPC_TJsonRpcParserResult* i_rpc,PinName* o_pins,int i_num_of_pins) + { + for(int i=0;i<i_num_of_pins;i++){ + NyLPC_TUInt32 p; + if(!NyLPC_TJsonRpcParserResult_getUInt32(i_rpc,i,&p)){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); + return false; + } + o_pins[i]=pinId2PinName(p); + } + return true; + } + static bool getParamInt(ModJsonRpc* i_mod,const union NyLPC_TJsonRpcParserResult* i_rpc,int& o_val,int i_idx) + { + if(!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,i_idx,((NyLPC_TInt32*)&o_val))){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); + return false; + } + return true; + } + static bool getParamUInt(ModJsonRpc* i_mod,const union NyLPC_TJsonRpcParserResult* i_rpc,unsigned int& o_val,int i_idx) + { + if(!NyLPC_TJsonRpcParserResult_getUInt32(i_rpc,i_idx,((NyLPC_TUInt32*)&o_val))){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); + return false; + } + return true; + } + static bool getParamsInt(ModJsonRpc* i_mod,const union NyLPC_TJsonRpcParserResult* i_rpc,int* o_val,int i_num_ofparams,int i_start=0) + { + for(int i=0;i<i_num_ofparams;i++){ + if(!NyLPC_TJsonRpcParserResult_getInt32(i_rpc,i_start+i,(NyLPC_TInt32*)(o_val+i))){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); + return false; + } + } + return true; + } + static bool getParamsUInt(ModJsonRpc* i_mod,const union NyLPC_TJsonRpcParserResult* i_rpc,unsigned int* o_val,int i_num_ofparams,int i_start=0) + { + for(int i=0;i<i_num_ofparams;i++){ + if(!NyLPC_TJsonRpcParserResult_getUInt32(i_rpc,i_start+i,(NyLPC_TUInt32*)(o_val+i))){ + i_mod->putError(i_rpc->method.id,ModJsonRpc::INVALID_PARAMS); + return false; + } + } + return true; + } + + }; + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/SPI.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,76 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class SPIHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //uuuu + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin[4]; + if(getParamsAsPin(mod,i_rpc,pin,4)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<SPI>(new SPI(pin[0],pin[1],pin[2],pin[3]))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool format(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //ddd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPI* inst=(SPI*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int p[2]; + if(getParamsInt(mod,i_rpc,p,2,1)){ + inst->format(p[0],p[1]); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool frequency(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPI* inst=(SPI*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->frequency(v); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool write(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPI* inst=(SPI*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->write(v))); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"uuuu" ,SPIHandler::new1}, + { "format" ,"ddd" ,SPIHandler::format}, + { "frequency" ,"dd" ,SPIHandler::frequency}, + { "write" ,"dd" ,SPIHandler::write}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_SPI={ + "mbedJS","SPI",func_table +}; + + + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed/jsonrpc/SPISlave.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -0,0 +1,99 @@ +#include "RpcHandlerBase.h" +namespace MiMic +{ + class SPISlaveHandler :RpcHandlerBase + { + public: + static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //uuuu + ModJsonRpc* mod=(ModJsonRpc*)i_param; + PinName pin[4]; + if(getParamsAsPin(mod,i_rpc,pin,4)){ + addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<SPISlave>(new SPISlave(pin[0],pin[1],pin[2],pin[3]))); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool format(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //ddd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPISlave* inst=(SPISlave*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int p[2]; + if(getParamsInt(mod,i_rpc,p,2,1)){ + inst->format(p[0],p[1]); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool frequency(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return void + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPISlave* inst=(SPISlave*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->frequency(v); + } + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool read(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPISlave* inst=(SPISlave*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->read())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool receive(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPISlave* inst=(SPISlave*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + mod->putResult(i_rpc->method.id,"%d",(int)(inst->receive())); + } + return NyLPC_TBool_TRUE; + } + static NyLPC_TBool reply(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param) + { + //dd return d + ModJsonRpc* mod=(ModJsonRpc*)i_param; + SPISlave* inst=(SPISlave*)getObjectBatch(mod,i_rpc); + if(inst!=NULL){ + int v; + if(getParamInt(mod,i_rpc,v,1)){ + inst->reply(v); + mod->putResult(i_rpc->method.id,""); + } + } + return NyLPC_TBool_TRUE; + } + }; + + + +const static struct NyLPC_TJsonRpcMethodDef func_table[]= +{ + { "_new1" ,"uuuu" ,SPISlaveHandler::new1}, + { "format" ,"ddd" ,SPISlaveHandler::format}, + { "frequency" ,"dd" ,SPISlaveHandler::frequency}, + { "read" ,"d" ,SPISlaveHandler::read}, + { "receive" ,"d" ,SPISlaveHandler::receive}, + { "reply" ,"dd" ,SPISlaveHandler::reply}, + { NULL ,NULL ,NULL} +}; + +const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_SPI_SLAVE={ + "mbedJS","SPISlave",func_table +}; + + + +} +
--- a/mbed/jsonrpc/TargetTypes.h Sat Jun 14 17:42:11 2014 +0000 +++ b/mbed/jsonrpc/TargetTypes.h Fri Jun 20 15:38:30 2014 +0000 @@ -27,10 +27,20 @@ #define PINID_USER 0x40000000 #define PINID_NC 0x7fffffff +#define PINMODEID 0x00010000 +#define PORTID 0x00010000 struct TPinNameMapItem{ PinName name; unsigned int id; }; +struct TPinModeMapItem{ + PinMode mode; + unsigned int id; +}; +struct TPortNameMapItem{ + PortName port; + unsigned int id; +}; + } -
--- a/mbed/jsonrpc/Target_LPC176x.cpp Sat Jun 14 17:42:11 2014 +0000 +++ b/mbed/jsonrpc/Target_LPC176x.cpp Fri Jun 20 15:38:30 2014 +0000 @@ -3,7 +3,7 @@ * LPC176xのターゲットテーブルです。 */ #include "TargetTypes.h" -#include "MbedJsApi.h" +#include "RpcHandlerBase.h" #ifdef TARGET_LPC1768 namespace MiMic { @@ -15,7 +15,7 @@ #define NS_LPC_PIN_4 (NS_LPC_PIN_2+32) #define NS_LPC_PIN_5 (NS_LPC_PIN_2+32) -const static struct TPinNameMapItem table[]={ +const static struct TPinNameMapItem pin_table[]={ {P0_0 ,NS_LPC_PIN_0+0}, {P0_1 ,NS_LPC_PIN_0+1}, {P0_2 ,NS_LPC_PIN_0+2}, {P0_3 ,NS_LPC_PIN_0+3}, {P0_4 ,NS_LPC_PIN_0+4}, {P0_5 ,NS_LPC_PIN_0+5}, {P0_6 ,NS_LPC_PIN_0+6}, {P0_7 ,NS_LPC_PIN_0+7}, {P0_8 ,NS_LPC_PIN_0+8}, {P0_9 ,NS_LPC_PIN_0+9}, {P0_10 ,NS_LPC_PIN_0+10}, {P0_11 ,NS_LPC_PIN_0+11}, @@ -94,15 +94,51 @@ {NC,PINID_NC} }; -PinName MbedJsApi::pinId2PinName(unsigned int i_id) +const static struct TPinModeMapItem pinmode_table[]= +{ + {PullUp ,PINMODEID+0}, + {PullDown ,PINMODEID+1}, + {PullNone ,PINMODEID+2}, + {OpenDrain ,PINMODEID+3}, + {PullDefault,PINMODEID+4} +}; +const static struct TPortNameMapItem portname_table[]= { - for(int i=0;table[i].name!=NC;i++){ - if(i_id==table[i].id){ - return table[i].name; + {Port0 ,PORTID+0}, + {Port1 ,PORTID+1}, + {Port2 ,PORTID+2}, + {Port3 ,PORTID+3}, + {Port4 ,PORTID+4} +}; + +PinName RpcHandlerBase::pinId2PinName(unsigned int i_id) +{ + for(int i=0;pin_table[i].name!=NC;i++){ + if(i_id==pin_table[i].id){ + return pin_table[i].name; } } return NC; } + +PinMode RpcHandlerBase::pinmodeId2PinMode(unsigned int i_id) +{ + for(int i=0;pinmode_table[i].mode!=PullDefault;i++){ + if(i_id==pinmode_table[i].id){ + return pinmode_table[i].mode; + } + } + return PullDefault; +} +PortName RpcHandlerBase::portId2PortName(unsigned int i_id) +{ + for(int i=0;portname_table[i].port!=Port4;i++){ + if(i_id==portname_table[i].id){ + return portname_table[i].port; + } + } + return Port0; +} + } #endif -