BowlerKernel
PIDEvent.java
Go to the documentation of this file.
1 package com.neuronrobotics.sdk.pid;
2 
3 import com.neuronrobotics.sdk.common.BowlerDatagram;
4 import com.neuronrobotics.sdk.common.ByteList;
5 
6 // TODO: Auto-generated Javadoc
10 public class PIDEvent {
11 
13  private int channel;
14 
16  private float ticks;
17 
19  private long timeStamp;
20 
22  private int velocity;
23 
24  public PIDEvent(){
25 
26  }
27 
36  public PIDEvent(int chan,float tick,long time,int velocity){
37  setGroup(chan);
38  setValue(tick);
39  setTimeStamp(time);
41  }
50  public void set(int chan,float tick,long time,int velocity){
51  setGroup(chan);
52  setValue(tick);
53  setTimeStamp(time);
55  }
61  public PIDEvent(BowlerDatagram data){
62  if(!data.getRPC().contains("_pid"))
63  throw new RuntimeException("Datagram is not a PID event");
64  setGroup(data.getData().getByte(0));
65  setValue(ByteList.convertToInt(data.getData().getBytes(1, 4),true));
66  setTimeStamp(System.currentTimeMillis());
67  setVelocity(ByteList.convertToInt(data.getData().getBytes(9, 4),true));
68  }
69 
70 
76  public void setGroup(int channel) {
77  this.channel = channel;
78  }
79 
85  public int getGroup() {
86  return channel;
87  }
88 
94  public void setValue(float ticks) {
95  this.ticks = ticks;
96  }
97 
103  public float getValue() {
104  return ticks;
105  }
106 
112  public void setTimeStamp(long timeStamp) {
113  this.timeStamp = timeStamp;
114  }
115 
121  public long getTimeStamp() {
122  return timeStamp;
123  }
124 
125  /* (non-Javadoc)
126  * @see java.lang.Object#toString()
127  */
128  @Override
129  public String toString(){
130  return "PID Event: \n\tchan = "+channel+"\n\tvalue = "+ticks+"\n\ttime = "+timeStamp+"\n\tvelocity since last packet= "+velocity;
131  }
132 
138  public void setVelocity(int vel) {
139  this.velocity = vel;
140  }
141 
147  public int getVelocity() {
148  return velocity;
149  }
150 }
static final int convertToInt(byte[] b)
Definition: ByteList.java:911
PIDEvent(BowlerDatagram data)
Definition: PIDEvent.java:61
PIDEvent(int chan, float tick, long time, int velocity)
Definition: PIDEvent.java:36
void setTimeStamp(long timeStamp)
Definition: PIDEvent.java:112