1 package com.neuronrobotics.sdk.namespace.bcs.pid;
3 import com.neuronrobotics.sdk.commands.bcs.pid.ConfigurePDVelocityCommand;
4 import com.neuronrobotics.sdk.commands.bcs.pid.ConfigurePIDCommand;
5 import com.neuronrobotics.sdk.commands.bcs.pid.ControlAllPIDCommand;
6 import com.neuronrobotics.sdk.commands.bcs.pid.ControlPIDCommand;
7 import com.neuronrobotics.sdk.commands.bcs.pid.GetPIDChannelCountCommand;
8 import com.neuronrobotics.sdk.commands.bcs.pid.KillAllPIDCommand;
9 import com.neuronrobotics.sdk.commands.bcs.pid.PDVelocityCommand;
10 import com.neuronrobotics.sdk.commands.bcs.pid.ResetPIDCommand;
11 import com.neuronrobotics.sdk.common.BowlerAbstractDevice;
12 import com.neuronrobotics.sdk.common.BowlerDatagram;
13 import com.neuronrobotics.sdk.common.ByteList;
14 import com.neuronrobotics.sdk.common.Log;
15 import com.neuronrobotics.sdk.pid.PDVelocityConfiguration;
16 import com.neuronrobotics.sdk.pid.PIDChannel;
17 import com.neuronrobotics.sdk.pid.PIDCommandException;
18 import com.neuronrobotics.sdk.pid.PIDConfiguration;
19 import com.neuronrobotics.sdk.pid.PIDEvent;
20 import com.neuronrobotics.sdk.pid.PIDLimitEvent;
43 if(data.
getRPC().contains(
"_pid")){
49 if(data.
getRPC().contains(
"apid")){
57 if(data.
getRPC().contains(
"pidl")){
131 Log.
info(
"Setting PID position group="+group+
", setpoint="+setpoint+
" ticks, time="+seconds+
" sec.");
143 for(
int i=0;i<sp.length;i++) {
146 for(
int i=0;i<setpoints.length;i++) {
173 Log.
debug(
"Getting All PID Positions");
176 float [] back =
new float[data.
size()/4];
177 for(
int i=0;i<back.length;i++) {
179 byte [] tmp = data.
getBytes(start, 4);
184 for(
int i=0;i<back.length;i++){
200 Log.
debug(
"Setting hardware velocity control");
202 }
catch (Exception ex){
203 Log.
error(
"Failed! Setting interpolated velocity control..");
223 throw new RuntimeException(
"This method is not implemented in this version of the namespace");
void setSynchronusPacketTimeoutTime(int sleepTime)
BowlerDatagram send(BowlerAbstractCommand command)
BowlerAbstractConnection getConnection()
static final int convertToInt(byte[] b)
static void info(String message)
static void error(String message)
static void debug(String message)
Integer getChannelCount()
void firePIDEvent(PIDEvent e)
int getNumberOfChannels()
void setChannelCount(Integer channelCount)
void firePIDResetEvent(int group, float value)
boolean SetPIDInterpolatedVelocity(int group, int unitsPerSecond, double seconds)
BowlerAbstractDevice device
void firePIDLimitEvent(PIDLimitEvent e)
ArrayList< PIDChannel > getChannels()
PIDChannel getPIDChannel(int group)
BowlerAbstractDevice getDevice()
float[] GetAllPIDPosition()
boolean SetAllPIDSetPoint(float[]setpoints, double seconds)
boolean runOutputHysteresisCalibration(int group)
boolean killAllPidGroups()
void onAsyncResponse(BowlerDatagram data)
boolean SetPIDSetPoint(int group, float setpoint, double seconds)
PIDConfiguration getPIDConfiguration(int group)
boolean SetPDVelocity(int group, int unitsPerSecond, double seconds)
boolean ConfigurePIDController(PIDConfiguration config)
LegacyPidNamespaceImp(BowlerAbstractDevice device)
boolean ConfigurePDVelovityController(PDVelocityConfiguration config)
float GetPIDPosition(int group)
PDVelocityConfiguration getPDVelocityConfiguration(int group)
boolean ResetPIDChannel(int group, float valueToSetCurrentTo)
void setCachedTargetValue(float targetValue)
float getCachedTargetValue()