BowlerKernel
PidDeviceServerNamespace.java
Go to the documentation of this file.
1 package com.neuronrobotics.sdk.namespace.bcs.pid;
2 
3 import com.neuronrobotics.sdk.common.BowlerDataType;
4 import com.neuronrobotics.sdk.common.BowlerMethod;
5 import com.neuronrobotics.sdk.common.Log;
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.IBowlerCommandProcessor;
10 import com.neuronrobotics.sdk.pid.IPIDEventListener;
11 import com.neuronrobotics.sdk.pid.PDVelocityConfiguration;
12 import com.neuronrobotics.sdk.pid.PIDChannel;
13 import com.neuronrobotics.sdk.pid.PIDCommandException;
14 import com.neuronrobotics.sdk.pid.PIDConfiguration;
15 
16 
17 // TODO: Auto-generated Javadoc
22 
25 
33  super(addr, "bcs.pid.*;1.0;;");
34  this.device = device;
36  getNamespace() ,
37  "apid",
39  new BowlerDataType[]{},
41  new BowlerDataType[]{BowlerDataType.I32STR},
43  @Override
44  public Object[] process(Object[] data) {
45  float [] current = GetAllPIDPosition();
46  Integer [] d = new Integer[current.length];
47  for(int i=0;i<current.length;i++){
48  d[i]=new Integer((int)current[i]);
49  }
50  return new Object[]{d};
51  }
52  }));//Name
53 
54 
55 
56 
58  getNamespace() ,
59  "_pid",
65  @Override
66  public Object[] process(Object[] data) {
67  //anythign
68  return new Object[]{data[0],new Integer((int)GetPIDPosition((Integer) data[0]))};
69  }
70  }));//Name
71 
72 
73 
75  getNamespace() ,
76  "cpid",
93  },
95  @Override
96  public Object[] process(Object[] data) {
97  PIDConfiguration conf = getPIDConfiguration((Integer)data[0]);
98  return conf.getArgs();
99  }
100  }));//Name
102  getNamespace() ,
103  "cpdv",
104  BowlerMethod.GET,
111  @Override
112  public Object[] process(Object[] data) {
113  PDVelocityConfiguration conf = getPDVelocityConfiguration((Integer)data[0]);
114  return conf.getArgs();
115  }
116  }));//Name
118  getNamespace() ,
119  "gpdc",
120  BowlerMethod.GET,
121  new BowlerDataType[]{},
125  @Override
126  public Object[] process(Object[] data) {
127  return new Object[]{new Integer(getPIDChannelCount())};
128  }
129  }));//Name
131  getNamespace() ,
132  "apid",
136  },
140  },
142  @Override
143  public Object[] process(Object[] data) {
144  Integer time = (Integer)data[0];
145  Integer [] d = (Integer [])data[1];
146  float [] current = new float[d.length];
147  for(int i=0;i<current.length;i++){
148  current[i] = d[i];
149  }
150  SetAllPIDSetPoint(current, time);
151  return new Object[]{new Integer(66),new Integer(3)};
152  }
153  }));//Name
155  getNamespace() ,
156  "_pid",
161  },
165  },
167  @Override
168  public Object[] process(Object[] data) {
169  SetPIDSetPoint((Integer)data[0],
170  (Integer)data[1],
171  (Integer)data[2]);
172 
173  return new Object[]{data[0],new Integer(5)};
174  }
175  }));//Name
177  getNamespace() ,
178  "_vpd",
183  },
187  },
189  @Override
190  public Object[] process(Object[] data) {
191  try {
192  SetPDVelocity((Integer)data[0],
193  (Integer)data[1],
194  (Integer)data[2]);
195  } catch (PIDCommandException e) {
196  // TODO Auto-generated catch block
197  e.printStackTrace();
198  return new Object[]{data[0],new Integer(66)};
199  }
200 
201  return new Object[]{data[0],new Integer(4)};
202  }
203  }));//Name
205  getNamespace() ,
206  "rpid",
210  },
214  },
216  @Override
217  public Object[] process(Object[] data) {
218  ResetPIDChannel((Integer)data[0], (Integer)data[1]);
219  return new Object[]{data[0],new Integer(6)};
220  }
221  }));//Name
223  getNamespace() ,
224  "kpid",
226  new BowlerDataType[]{},
230  },
232  @Override
233  public Object[] process(Object[] data) {
235  return new Object[]{new Integer(66),new Integer(0)};
236  }
237  }));//Name
239  getNamespace() ,
240  "cpid",
255  },
259  },
261  @Override
262  public Object[] process(Object[] data) {
263  PIDConfiguration conf = new PIDConfiguration(data);
265  Log.info("PID setting "+conf);
266  return new Object[]{data[0],new Integer(1)};
267  }
268  }));//Name
270  getNamespace() ,
271  "cpdv",
276  },
280  },
282  @Override
283  public Object[] process(Object[] data) {
286  Log.info("VPD setting "+conf);
287  return new Object[]{data[0],new Integer(2)};
288  }
289  }));//Name
290 // rpc.add(new RpcEncapsulation(getNamespaceIndex(),
291 // getNamespace() ,
292 // "acal",
293 // BowlerMethod.CRITICAL,
294 // new BowlerDataType[]{BowlerDataType.I08
295 // },
296 // BowlerMethod.STATUS,
297 // new BowlerDataType[]{ BowlerDataType.I08,
298 // BowlerDataType.I08
299 // },
300 // new IBowlerCommandProcessor() {
301 // @Override
302 // public Object[] process(Object[] data) {
303 // runOutputHysteresisCalibration((Integer)data[0]);
304 // return new Object[]{new Integer(37),new Integer(0)};
305 // }
306 // }));//Name
307  }
308 
309  /* (non-Javadoc)
310  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#ResetPIDChannel(int, int)
311  */
312  @Override
313  public boolean ResetPIDChannel(int group, float valueToSetCurrentTo) {
314  return device.ResetPIDChannel(group, valueToSetCurrentTo);
315  }
316 
317  /* (non-Javadoc)
318  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#ConfigurePIDController(com.neuronrobotics.sdk.pid.PIDConfiguration)
319  */
320  @Override
321  public boolean ConfigurePIDController(PIDConfiguration config) {
322  return device.ConfigurePIDController(config);
323  }
324 
325  /* (non-Javadoc)
326  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#getPIDConfiguration(int)
327  */
328  @Override
330  return device.getPIDConfiguration(group);
331  }
332 
333  /* (non-Javadoc)
334  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#ConfigurePDVelovityController(com.neuronrobotics.sdk.pid.PDVelocityConfiguration)
335  */
336  @Override
338  return device.ConfigurePDVelovityController(config);
339  }
340 
341  /* (non-Javadoc)
342  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#getPDVelocityConfiguration(int)
343  */
344  @Override
346  return device.getPDVelocityConfiguration(group);
347  }
348 
349  /* (non-Javadoc)
350  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#getPIDChannelCount()
351  */
352  @Override
353  public int getPIDChannelCount() {
354  return device.getPIDChannelCount();
355  }
356 
357  /* (non-Javadoc)
358  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#SetPIDSetPoint(int, int, double)
359  */
360  @Override
361  public boolean SetPIDSetPoint(int group, float setpoint, double seconds) {
362  return device.SetPIDSetPoint(group, setpoint, seconds);
363  }
364 
365  /* (non-Javadoc)
366  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#SetAllPIDSetPoint(int[], double)
367  */
368  @Override
369  public boolean SetAllPIDSetPoint(float[] setpoints, double seconds) {
370  return device.SetAllPIDSetPoint(setpoints, seconds);
371  }
372 
373  /* (non-Javadoc)
374  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#GetPIDPosition(int)
375  */
376  @Override
377  public float GetPIDPosition(int group) {
378  return device.GetPIDPosition(group);
379  }
380 
381  /* (non-Javadoc)
382  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#GetAllPIDPosition()
383  */
384  @Override
385  public float[] GetAllPIDPosition() {
386  return device.GetAllPIDPosition();
387  }
388 
389  /* (non-Javadoc)
390  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#addPIDEventListener(com.neuronrobotics.sdk.pid.IPIDEventListener)
391  */
392  @Override
395  }
396 
397  /* (non-Javadoc)
398  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#removePIDEventListener(com.neuronrobotics.sdk.pid.IPIDEventListener)
399  */
400  @Override
403  }
404 
405  /* (non-Javadoc)
406  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#flushPIDChannels(double)
407  */
408  @Override
409  public void flushPIDChannels(double time) {
410  device.flushPIDChannels(time);
411  }
412 
413  /* (non-Javadoc)
414  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#SetPIDInterpolatedVelocity(int, int, double)
415  */
416  @Override
417  public boolean SetPIDInterpolatedVelocity(int group, int unitsPerSecond,
418  double seconds) throws PIDCommandException {
419  return device.SetPIDInterpolatedVelocity(group, unitsPerSecond, seconds);
420  }
421 
422  /* (non-Javadoc)
423  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#SetPDVelocity(int, int, double)
424  */
425  @Override
426  public boolean SetPDVelocity(int group, int unitsPerSecond, double seconds)
427  throws PIDCommandException {
428  return device.SetPDVelocity(group, unitsPerSecond, seconds);
429  }
430 
431  /* (non-Javadoc)
432  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#getPIDChannel(int)
433  */
434  @Override
435  public PIDChannel getPIDChannel(int group) {
436  return device.getPIDChannel(group);
437  }
438 
439  /* (non-Javadoc)
440  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#killAllPidGroups()
441  */
442  @Override
443  public boolean killAllPidGroups() {
444  return device.killAllPidGroups();
445  }
446 
447  /* (non-Javadoc)
448  * @see com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace#isAvailable()
449  */
450  @Override
451  public boolean isAvailable() {
452  return true;
453  }
454 
455 // @Override
456 // public boolean runOutputHysteresisCalibration(int group) {
457 // return device.runOutputHysteresisCalibration(group);
458 // }
459 
460 }
static void info(String message)
Definition: Log.java:110
boolean SetPDVelocity(int group, int unitsPerSecond, double seconds)
boolean SetPIDSetPoint(int group, float setpoint, double seconds)
PidDeviceServerNamespace(MACAddress addr, IPidControlNamespace device)
boolean SetPIDInterpolatedVelocity(int group, int unitsPerSecond, double seconds)
boolean ConfigurePDVelovityController(PDVelocityConfiguration config)
boolean SetAllPIDSetPoint(float[]setpoints, double seconds)
boolean SetPIDSetPoint(int group, float setpoint, double seconds)
PDVelocityConfiguration getPDVelocityConfiguration(int group)
boolean SetPDVelocity(int group, int unitsPerSecond, double seconds)
boolean ResetPIDChannel(int group, float valueToSetCurrentTo)
boolean SetPIDInterpolatedVelocity(int group, int unitsPerSecond, double seconds)