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

Fork of libMiMic by Ryo Iizuka

Committer:
furutani
Date:
Fri Feb 24 04:43:41 2017 +0000
Revision:
115:fa79286d8ea4
Parent:
85:416f8bbbdf54
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 85:416f8bbbdf54 1 #include "RpcHandlerBase.h"
nyatla 85:416f8bbbdf54 2 namespace MiMic
nyatla 85:416f8bbbdf54 3 {
nyatla 85:416f8bbbdf54 4 class I2CHandler :RpcHandlerBase
nyatla 85:416f8bbbdf54 5 {
nyatla 85:416f8bbbdf54 6 public:
nyatla 85:416f8bbbdf54 7 static NyLPC_TBool new1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 8 {
nyatla 85:416f8bbbdf54 9 //u
nyatla 85:416f8bbbdf54 10 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 11 PinName pins[2];
nyatla 85:416f8bbbdf54 12 if(getParamsAsPin(mod,i_rpc,pins,2)){
nyatla 85:416f8bbbdf54 13 addNewObjectBatch(mod,i_rpc->method.id,new ModJsonRpc::RpcObject<I2C>(new I2C(pins[0],pins[1])));
nyatla 85:416f8bbbdf54 14 }
nyatla 85:416f8bbbdf54 15 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 16 }
nyatla 85:416f8bbbdf54 17 static NyLPC_TBool frequency(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 18 {
nyatla 85:416f8bbbdf54 19 //d return d
nyatla 85:416f8bbbdf54 20 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 21 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 22 if(inst!=NULL){
nyatla 85:416f8bbbdf54 23 int v;
nyatla 85:416f8bbbdf54 24 if(getParamInt(mod,i_rpc,v,1)){
nyatla 85:416f8bbbdf54 25 inst->frequency(v);
nyatla 85:416f8bbbdf54 26 mod->putResult(i_rpc->method.id);
nyatla 85:416f8bbbdf54 27 }
nyatla 85:416f8bbbdf54 28 }
nyatla 85:416f8bbbdf54 29 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 30 }
nyatla 85:416f8bbbdf54 31 static NyLPC_TBool read1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 32 {
nyatla 85:416f8bbbdf54 33 //ddd return dB
nyatla 85:416f8bbbdf54 34 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 35 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 36 if(inst!=NULL){
nyatla 85:416f8bbbdf54 37 int addr;
nyatla 85:416f8bbbdf54 38 unsigned char repeated,len;
nyatla 85:416f8bbbdf54 39 if(getParamInt(mod,i_rpc,addr,1)){
nyatla 85:416f8bbbdf54 40 if(getParamByte(mod,i_rpc,len,2)){
nyatla 85:416f8bbbdf54 41 if(getParamByte(mod,i_rpc,repeated,3)){
nyatla 85:416f8bbbdf54 42 char* data=new char[len];
nyatla 85:416f8bbbdf54 43 int r=inst->read(addr,data,len,repeated?true:false);
nyatla 85:416f8bbbdf54 44 mod->putResult(i_rpc->method.id,"%d,\"%.*B\"",r,(int)len,data);
nyatla 85:416f8bbbdf54 45 delete[] data;
nyatla 85:416f8bbbdf54 46 }
nyatla 85:416f8bbbdf54 47 }
nyatla 85:416f8bbbdf54 48 }
nyatla 85:416f8bbbdf54 49 }
nyatla 85:416f8bbbdf54 50 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 51 }
nyatla 85:416f8bbbdf54 52 static NyLPC_TBool read2(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 53 {
nyatla 85:416f8bbbdf54 54 //dd return d
nyatla 85:416f8bbbdf54 55 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 56 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 57 if(inst!=NULL){
nyatla 85:416f8bbbdf54 58 int ack;
nyatla 85:416f8bbbdf54 59 if(getParamInt(mod,i_rpc,ack,1)){
nyatla 85:416f8bbbdf54 60 mod->putResult(i_rpc->method.id,"%d",inst->read(ack));
nyatla 85:416f8bbbdf54 61 }
nyatla 85:416f8bbbdf54 62 }
nyatla 85:416f8bbbdf54 63 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 64 }
nyatla 85:416f8bbbdf54 65 static NyLPC_TBool write1(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 66 {
nyatla 85:416f8bbbdf54 67 //ddBd return d
nyatla 85:416f8bbbdf54 68 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 69 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 70 if(inst!=NULL){
nyatla 85:416f8bbbdf54 71 int addr;
nyatla 85:416f8bbbdf54 72 const unsigned char* data;
nyatla 85:416f8bbbdf54 73 unsigned char repeated,len;
nyatla 85:416f8bbbdf54 74 if(getParamInt(mod,i_rpc,addr,1)){
nyatla 85:416f8bbbdf54 75 if(getParamByteArray(mod,i_rpc,data,len,2)){
nyatla 85:416f8bbbdf54 76 if(getParamByte(mod,i_rpc,repeated,3)){
nyatla 85:416f8bbbdf54 77 mod->putResult(i_rpc->method.id,"%d",inst->write(addr,(const char*)data,len,repeated?true:false));
nyatla 85:416f8bbbdf54 78 }
nyatla 85:416f8bbbdf54 79 }
nyatla 85:416f8bbbdf54 80 }
nyatla 85:416f8bbbdf54 81 }
nyatla 85:416f8bbbdf54 82 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 83 }
nyatla 85:416f8bbbdf54 84 static NyLPC_TBool write2(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 85 {
nyatla 85:416f8bbbdf54 86 //dd return d
nyatla 85:416f8bbbdf54 87 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 88 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 89 if(inst!=NULL){
nyatla 85:416f8bbbdf54 90 int ack;
nyatla 85:416f8bbbdf54 91 if(getParamInt(mod,i_rpc,ack,1)){
nyatla 85:416f8bbbdf54 92 mod->putResult(i_rpc->method.id,"%d",inst->write(ack));
nyatla 85:416f8bbbdf54 93 }
nyatla 85:416f8bbbdf54 94 }
nyatla 85:416f8bbbdf54 95 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 96 }
nyatla 85:416f8bbbdf54 97 static NyLPC_TBool start(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 98 {
nyatla 85:416f8bbbdf54 99 //d return d
nyatla 85:416f8bbbdf54 100 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 101 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 102 if(inst!=NULL){
nyatla 85:416f8bbbdf54 103 inst->start();
nyatla 85:416f8bbbdf54 104 mod->putResult(i_rpc->method.id);
nyatla 85:416f8bbbdf54 105 }
nyatla 85:416f8bbbdf54 106 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 107 }
nyatla 85:416f8bbbdf54 108 static NyLPC_TBool stop(const union NyLPC_TJsonRpcParserResult* i_rpc,void* i_param)
nyatla 85:416f8bbbdf54 109 {
nyatla 85:416f8bbbdf54 110 //d return d
nyatla 85:416f8bbbdf54 111 ModJsonRpc* mod=((ModJsonRpc::TcJsonRpcEx_t*)i_param)->cppmod_ptr;
nyatla 85:416f8bbbdf54 112 I2C* inst=(I2C*)getObjectBatch(mod,i_rpc);
nyatla 85:416f8bbbdf54 113 if(inst!=NULL){
nyatla 85:416f8bbbdf54 114 inst->stop();
nyatla 85:416f8bbbdf54 115 mod->putResult(i_rpc->method.id);
nyatla 85:416f8bbbdf54 116 }
nyatla 85:416f8bbbdf54 117 return NyLPC_TBool_TRUE;
nyatla 85:416f8bbbdf54 118 }
nyatla 85:416f8bbbdf54 119 };
nyatla 85:416f8bbbdf54 120
nyatla 85:416f8bbbdf54 121
nyatla 85:416f8bbbdf54 122 const static struct NyLPC_TJsonRpcMethodDef func_table[]=
nyatla 85:416f8bbbdf54 123 {
nyatla 85:416f8bbbdf54 124 { "_new1" ,"uu" ,I2CHandler::new1},
nyatla 85:416f8bbbdf54 125 { "frequency" ,"dd" ,I2CHandler::frequency},
nyatla 85:416f8bbbdf54 126 { "read1" ,"ddbb" ,I2CHandler::read1},
nyatla 85:416f8bbbdf54 127 { "read2" ,"dd" ,I2CHandler::read2},
nyatla 85:416f8bbbdf54 128 { "write1" ,"ddBb" ,I2CHandler::write1},
nyatla 85:416f8bbbdf54 129 { "write2" ,"dd" ,I2CHandler::write2},
nyatla 85:416f8bbbdf54 130 { "start" ,"d" ,I2CHandler::start},
nyatla 85:416f8bbbdf54 131 { "stop" ,"d" ,I2CHandler::stop},
nyatla 85:416f8bbbdf54 132 { NULL ,NULL ,NULL}
nyatla 85:416f8bbbdf54 133 };
nyatla 85:416f8bbbdf54 134
nyatla 85:416f8bbbdf54 135 const struct NyLPC_TJsonRpcClassDef MbedJsApi::RPC_MBED_I2C={
nyatla 85:416f8bbbdf54 136 "mbedJS","I2C",func_table
nyatla 85:416f8bbbdf54 137 };
nyatla 85:416f8bbbdf54 138 }
nyatla 85:416f8bbbdf54 139