BowlerKernel
Public Member Functions | List of all members
com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace Interface Reference
Inheritance diagram for com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace:
Inheritance graph
[legend]

Public Member Functions

boolean ResetPIDChannel (int group, float valueToSetCurrentTo)
 
boolean ConfigurePIDController (PIDConfiguration config)
 
PIDConfiguration getPIDConfiguration (int group)
 
boolean ConfigurePDVelovityController (PDVelocityConfiguration config)
 
PDVelocityConfiguration getPDVelocityConfiguration (int group)
 
int getPIDChannelCount ()
 
boolean SetPIDSetPoint (int group, float setpoint, double seconds)
 
boolean SetAllPIDSetPoint (float[]setpoints, double seconds)
 
float GetPIDPosition (int group)
 
float[] GetAllPIDPosition ()
 
void addPIDEventListener (IPIDEventListener l)
 
void removePIDEventListener (IPIDEventListener l)
 
void flushPIDChannels (double time)
 
boolean SetPIDInterpolatedVelocity (int group, int unitsPerSecond, double seconds) throws PIDCommandException
 
boolean SetPDVelocity (int group, int unitsPerSecond, double seconds) throws PIDCommandException
 
PIDChannel getPIDChannel (int group)
 
boolean killAllPidGroups ()
 
boolean isAvailable ()
 

Detailed Description

The Interface IPidControlNamespace.

Definition at line 13 of file IPidControlNamespace.java.

Member Function Documentation

◆ addPIDEventListener()

void com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.addPIDEventListener ( IPIDEventListener  l)

Allows a user to attach a listener to the device to listen for PID events Events include: PID reset, where the user is notified if the controllers input is reset from software PID limit, if the device generates a Home, Upper limit, or Lower limit event from a hardware event PID position, if the current position of the PID controllers sensor input changes.

Parameters
lthe l

Implemented in com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.AbstractPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.addPIDEventListener(), com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServer.PidDeviceServer(), com.neuronrobotics.sdk.addons.kinematics.AbstractKinematicsNR.setDevice(), and com.neuronrobotics.sdk.pid.PIDChannel.setPid().

◆ ConfigurePDVelovityController()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.ConfigurePDVelovityController ( PDVelocityConfiguration  config)

This method sends a PID configuration object to the device. THe controller can be enabled/disabled with this method All PID parameters are stored in the PIDConfiguration ojbect prior to calling this method will be sent to the device.

Parameters
configthe configuration wrapper object
Returns
true if success

Implemented in com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice, com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidNamespaceImp, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.LegacyPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.ConfigurePDVelovityController(), and com.neuronrobotics.sdk.pid.GenericPIDDevice.ConfigurePDVelovityController().

◆ ConfigurePIDController()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.ConfigurePIDController ( PIDConfiguration  config)

◆ flushPIDChannels()

void com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.flushPIDChannels ( double  time)

◆ GetAllPIDPosition()

float [] com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.GetAllPIDPosition ( )

This method requests all PID controllers to report back their current value of their input sensors. This method is also used to determine dynamically how many PID control groups are availible on a device.

Returns
and array of values representing the current state of the given cntrollers input

Implemented in com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice, com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidNamespaceImp, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.LegacyPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.GetAllPIDPosition(), and com.neuronrobotics.sdk.pid.GenericPIDDevice.GetAllPIDPosition().

◆ getPDVelocityConfiguration()

PDVelocityConfiguration com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.getPDVelocityConfiguration ( int  group)

◆ getPIDChannel()

PIDChannel com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.getPIDChannel ( int  group)

Gets the PID channel wrapper for a specific channel. The channel wrappers can be used to cache values for use with the cache/flush system. This wrapper will encapsulate a specific PID channel.

Parameters
groupthe index of the PID group
Returns
a PIDChannel encapsulation object

Implemented in com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.AbstractPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.getPIDChannel(), and com.neuronrobotics.sdk.addons.kinematics.AbstractKinematicsNR.homeLink().

◆ getPIDChannelCount()

int com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.getPIDChannelCount ( )

◆ getPIDConfiguration()

PIDConfiguration com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.getPIDConfiguration ( int  group)

◆ GetPIDPosition()

float com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.GetPIDPosition ( int  group)

◆ isAvailable()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.isAvailable ( )

◆ killAllPidGroups()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.killAllPidGroups ( )

◆ removePIDEventListener()

void com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.removePIDEventListener ( IPIDEventListener  l)

◆ ResetPIDChannel()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.ResetPIDChannel ( int  group,
float  valueToSetCurrentTo 
)

This method calls a reset of the PID group. This will set the current value of the controllers input to the given value (if possible) and will set the setpoint of the PID group to the current value (stopping the output)

Parameters
groupthe index of the PID group
valueToSetCurrentTothe target value that the controller should be set to.
Returns
true if success

Implemented in com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice, com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidNamespaceImp, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.LegacyPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.pid.PIDChannel.ResetPIDChannel(), com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.ResetPIDChannel(), and com.neuronrobotics.sdk.pid.GenericPIDDevice.ResetPIDChannel().

◆ SetAllPIDSetPoint()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.SetAllPIDSetPoint ( float[]  setpoints,
double  seconds 
)

Same as SetPIDSetPoint, but will set all setpoints at once. This can be used for co-ordinated motion of independant PID control groups.

Parameters
setpointsand array of setpoint values (must match the number of availible PID control groups)
secondsunits in Seconds, the time it takes to make the transition from current to target. Zero will tell the controllers to go as fast as possible.
Returns
true if no errors occur

Implemented in com.neuronrobotics.sdk.namespace.bcs.pid.LegacyPidNamespaceImp, com.neuronrobotics.sdk.dyio.DyIO, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice, com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidNamespaceImp, and com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.AbstractPidNamespaceImp.flushPIDChannels(), com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.SetAllPIDSetPoint(), and com.neuronrobotics.sdk.pid.GenericPIDDevice.SetAllPIDSetPoint().

◆ SetPDVelocity()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.SetPDVelocity ( int  group,
int  unitsPerSecond,
double  seconds 
) throws PIDCommandException

This method will use the internal PD velocity controller to run a PID controller at a constant velocity. Since this is not using the linear interpolation, it can run forever by giving Zero as the 'seconds' parameter.

Parameters
groupthe index of the PID group
unitsPerSeconda velocity in raw units per second
secondsthe amount of time to run at this velocity, or Zero to run forever
Returns
true, if successful
Exceptions
PIDCommandExceptionIf the values are out of range with the given data

Implemented in com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice, com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidNamespaceImp, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.LegacyPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.SetPDVelocity(), com.neuronrobotics.sdk.pid.GenericPIDDevice.SetPDVelocity(), and com.neuronrobotics.sdk.pid.PIDChannel.SetPDVelocity().

◆ SetPIDInterpolatedVelocity()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.SetPIDInterpolatedVelocity ( int  group,
int  unitsPerSecond,
double  seconds 
) throws PIDCommandException

This method will use the linear interpolation system to set an output velocity of the PID controller. This method can be bounded by the maximum value representable by the sensor and can fail if that value is out of range.

Parameters
groupthe index of the PID group
unitsPerSeconda velocity in raw units per second
secondsthe amount of time to run at this velocity
Returns
true if successful
Exceptions
PIDCommandExceptionIf the values are out of range with the given data

Implemented in com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.AbstractPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.SetPIDInterpolatedVelocity(), and com.neuronrobotics.sdk.pid.PIDChannel.SetPIDInterpolatedVelocity().

◆ SetPIDSetPoint()

boolean com.neuronrobotics.sdk.namespace.bcs.pid.IPidControlNamespace.SetPIDSetPoint ( int  group,
float  setpoint,
double  seconds 
)

This method sets the target setpoint for the specified PID controller group. This method will set up a linear interpolation from current position to target position which will take the specified number of seconds to make that transition

Parameters
groupthe index of the PID group
setpointthe target position for the controller
secondsunits in Seconds, the time it takes to make the transition from current to target. Zero will tell the controller to go as fast as possible.
Returns
true if no errors occur

Implemented in com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice, com.neuronrobotics.sdk.pid.GenericPIDDevice, com.neuronrobotics.sdk.namespace.bcs.pid.PidNamespaceImp, com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace, com.neuronrobotics.sdk.namespace.bcs.pid.LegacyPidNamespaceImp, and com.neuronrobotics.sdk.dyio.DyIO.

Referenced by com.neuronrobotics.sdk.namespace.bcs.pid.AbstractPidNamespaceImp.SetPIDInterpolatedVelocity(), com.neuronrobotics.sdk.pid.PIDChannel.SetPIDSetPoint(), com.neuronrobotics.sdk.namespace.bcs.pid.PidDeviceServerNamespace.SetPIDSetPoint(), and com.neuronrobotics.sdk.pid.GenericPIDDevice.SetPIDSetPoint().


The documentation for this interface was generated from the following file: