BowlerKernel
BowlerAbstractDeviceServerNamespace.java
Go to the documentation of this file.
1 package com.neuronrobotics.sdk.common.device.server;
2 
3 import java.util.ArrayList;
4 
5 import com.neuronrobotics.sdk.common.BowlerAbstractCommand;
6 import com.neuronrobotics.sdk.common.BowlerDatagram;
7 import com.neuronrobotics.sdk.common.BowlerDatagramFactory;
8 import com.neuronrobotics.sdk.common.BowlerMethod;
9 import com.neuronrobotics.sdk.common.MACAddress;
10 import com.neuronrobotics.sdk.common.RpcEncapsulation;
11 
12 // TODO: Auto-generated Javadoc
16 public abstract class BowlerAbstractDeviceServerNamespace {
17 
19  protected ArrayList<RpcEncapsulation> rpc=new ArrayList<RpcEncapsulation>();
20 
22  protected final String ns ;
23 
25  private final MACAddress mac ;
26 
28  private int namespaceIndex=0;
29 
36  public BowlerAbstractDeviceServerNamespace( MACAddress addr, String namespaceString){
37  this.ns = namespaceString;
38  this.mac = addr;
39  }
40 
47  public boolean checkRpc(BowlerDatagram data){
48  for(RpcEncapsulation enc: getRpcList()){
49  if(data.getRPC().contains(enc.getRpc()) && enc.getDownstreamMethod() == data.getMethod()){
50  return true;
51  }
52  }
53  return false;
54  }
55 
56 
62  public String getNamespace() {
63  return ns;
64  }
65 
71  public ArrayList<RpcEncapsulation> getRpcList() {
72 
73  return rpc;
74  }
75 
76 
82  public void addRpc(RpcEncapsulation newRpc) {
83  rpc.add(newRpc);
84  }
85 
92  return mac;
93  }
94 
102  Object [] dataParsed=null;
103  RpcEncapsulation parser=null;
104  for(RpcEncapsulation enc: getRpcList()){
105  if(enc.getRpc().contains(data.getRPC())&& enc.getDownstreamMethod() == data.getMethod()){
106  parser = enc;
107  }
108  }
109  if(parser == null)
110  return null;
111  dataParsed = parser.parseResponseDownstream(data);
112 
113  Object [] backData = parser.getProcessor().process(dataParsed);
114 
115  BowlerAbstractCommand back = parser.getCommandUpstream(backData);
116 
117  return BowlerDatagramFactory.build(getAddress(), back);
118 
119  }
120 
126  public int getNamespaceIndex() {
127  return namespaceIndex;
128  }
129 
135  public void setNamespaceIndex(int ns){
136  namespaceIndex = ns;
137  }
138 
139 
140 }
Object[] parseResponseDownstream(BowlerDatagram datagram)
BowlerAbstractCommand getCommandUpstream(Object[] doswnstreamData)