BowlerKernel
BcsRpcNamespaceImp.java
Go to the documentation of this file.
1 package com.neuronrobotics.sdk.common.device.server.bcs.rpc;
2 
3 import com.neuronrobotics.sdk.common.BowlerDataType;
4 import com.neuronrobotics.sdk.common.BowlerMethod;
5 import com.neuronrobotics.sdk.common.ByteList;
6 import com.neuronrobotics.sdk.common.MACAddress;
7 import com.neuronrobotics.sdk.common.RpcEncapsulation;
8 import com.neuronrobotics.sdk.common.device.server.BowlerAbstractDeviceServerNamespace;
9 import com.neuronrobotics.sdk.common.device.server.BowlerAbstractServer;
10 import com.neuronrobotics.sdk.common.device.server.IBowlerCommandProcessor;
11 
12 // TODO: Auto-generated Javadoc
17 
20 
28  super( mac,"bcs.rpc.*;;");
29  this.server = s;
30 
31  rpc.add(new RpcEncapsulation(1,
32  getNamespace() ,
33  "_rpc",
35  new BowlerDataType[]{ BowlerDataType.I08,//namespace index
36  BowlerDataType.I08}, //rpc index
38  new BowlerDataType[]{ BowlerDataType.I08,//namespace index
39  BowlerDataType.I08,//rpc index
40  BowlerDataType.I08,// number of RPC's
41  BowlerDataType.ASCII},
43 
44  @Override
45  public Object[] process(Object[] data) {
46  int nsIndex = (Integer) data[0];
47  int rpcIndex = (Integer) data[1];
48  Object[] back = new Object[4];
49 
50  back[0] = new Integer(nsIndex);
51  back[1] = new Integer(rpcIndex);
52 
53  back[2] = new Integer(server.getNamespaces().get(nsIndex).getRpcList().size());
54  back[3] = server.getNamespaces().get(nsIndex).getRpcList().get(rpcIndex).getRpc();
55  return back;
56  }
57  }));//RPC
58 
59  rpc.add(new RpcEncapsulation(1,
60  getNamespace() ,
61  "args",
63  new BowlerDataType[]{ BowlerDataType.I08,//namespace index
64  BowlerDataType.I08}, //rpc index
66  new BowlerDataType[]{ BowlerDataType.I08,//namespace index
67  BowlerDataType.I08,//rpc index
68  BowlerDataType.I08,//Downstream method
69  BowlerDataType.STR,//downstream arguments
70  BowlerDataType.I08,//upstream method
73 
74  @Override
75  public Object[] process(Object[] data) {
76  int nsIndex = (Integer) data[0];
77  int rpcIndex = (Integer) data[1];
78  Object[] back = new Object[6];
79  RpcEncapsulation myRpc = server.getNamespaces().get(nsIndex).getRpcList().get(rpcIndex );
80 
81  back[0] = new Integer(nsIndex);
82  back[1] = new Integer(rpcIndex);
83 
84  back[2] = new Integer(myRpc.getDownstreamMethod().getValue());
85  back[3] = new ByteList(myRpc.getDownstreamArguments());
86  back[4] = new Integer(myRpc.getUpStreamMethod().getValue());
87  back[5] = new ByteList( myRpc.getUpstreamArguments());
88  return back;
89  }
90  }));//upstream arguments
91 
92  }
93 
94 
95 }
ArrayList< BowlerAbstractDeviceServerNamespace > getNamespaces()