BowlerKernel
|
Classes | |
class | SyncThread |
Private Member Functions | |
InterpolationEngine | getDriveThread (int i) |
Private Attributes | |
HashMap< PIDConfiguration, InterpolationEngine > | interpolationEngines = new HashMap<>() |
HashMap< Integer, PIDConfiguration > | configs = new HashMap<>() |
ArrayList< PDVelocityConfiguration > | PDconfigs = new ArrayList<PDVelocityConfiguration>() |
SyncThread | sync = new SyncThread() |
boolean | runSync =true |
double | maxTicksPerSecond |
int | numChannels = 40 |
float[] | backs |
String | myVirtualDevName |
Static Private Attributes | |
static final long | threadTime = 10 |
Additional Inherited Members | |
![]() | |
HashMap< IHardwareSyncPulseProvider, ArrayList< IHardwareSyncPulseReciver > > | syncPulse =new HashMap<>() |
![]() | |
void | firePIDResetEvent (int group, float val) |
void | firePIDEvent (PIDEvent pidEvent) |
![]() | |
void | fireDisconnectEvent () |
void | fireConnectEvent () |
The Class VirtualGenericPIDDevice.
Definition at line 20 of file VirtualGenericPIDDevice.java.
com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice | ( | String | myVirtualDevName | ) |
Instantiates a new virtual generic pid device.
myVirtualDevName |
Definition at line 53 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.myVirtualDevName.
com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice | ( | double | maxTicksPerSecond, |
String | myVirtualDevName | ||
) |
Instantiates a new virtual generic pid device.
maxTicksPerSecond | the max ticks per second |
myVirtualDevName2 |
Definition at line 63 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.configs, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetAllPIDPosition(), com.neuronrobotics.sdk.pid.GenericPIDDevice.getImplementation(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.myVirtualDevName, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.numChannels, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.PDconfigs, com.neuronrobotics.sdk.namespace.bcs.pid.AbstractPidNamespaceImp.setChannelCount(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.setMaxTicksPerSecond(), com.neuronrobotics.sdk.common.BowlerAbstractDevice.setScriptingName(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.sync.
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.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.
config | the configuration wrapper object |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 89 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.PDVelocityConfiguration.getGroup(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.PDconfigs.
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ConfigurePIDController | ( | PIDConfiguration | 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.
config | the configuration wrapper object |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 112 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.configs, and com.neuronrobotics.sdk.pid.PIDConfiguration.getGroup().
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.connect | ( | ) |
This method tells the connection object to start and connects the up and down streams pipes. Once this method is called and returns without exception, the device is ready to communicate with
InvalidConnectionException | the invalid connection exception |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 434 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.common.BowlerAbstractDevice.fireConnectEvent().
void com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.disconnect | ( | ) |
This method tells the connection object to disconnect its pipes and close out the connection. Once this is called, it is safe to remove your device.
Reimplemented from com.neuronrobotics.sdk.common.BowlerAbstractDevice.
Definition at line 444 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.common.BowlerAbstractDevice.fireDisconnectEvent(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.runSync.
void com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.flushPIDChannels | ( | double | time | ) |
This method will read all of the cached or current setpoints for all PID controllers and calls SetAllPIDSetPoint with its internal data.
time | the time |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 233 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.PIDChannel.getCachedTargetValue(), com.neuronrobotics.sdk.pid.GenericPIDDevice.getChannels(), com.neuronrobotics.sdk.pid.GenericPIDDevice.getPIDChannel(), com.neuronrobotics.sdk.common.Log.info(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetAllPIDSetPoint().
float [] com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.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.
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 301 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.backs, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.configs, com.neuronrobotics.sdk.pid.GenericPIDDevice.getChannels(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetPIDPosition(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.interpolationEngines, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.numChannels, com.neuronrobotics.sdk.pid.PIDChannel.setCachedTargetValue(), com.neuronrobotics.sdk.pid.GenericPIDDevice.setChannels(), com.neuronrobotics.sdk.pid.PIDConfiguration.setEnabled(), and com.neuronrobotics.sdk.pid.PIDConfiguration.setGroup().
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
|
private |
Definition at line 261 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.interpolationEngines.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetPIDPosition(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ResetPIDChannel(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetAllPIDSetPoint(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetPDVelocity(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetPIDSetPoint().
double com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getMaxTicksPerSecond | ( | ) |
Gets the max ticks per second.
Definition at line 343 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.maxTicksPerSecond.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetPDVelocity().
ArrayList<String> com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getNamespaces | ( | ) |
Get all the namespaces.
Reimplemented from com.neuronrobotics.sdk.common.BowlerAbstractDevice.
Definition at line 133 of file VirtualGenericPIDDevice.java.
PDVelocityConfiguration com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getPDVelocityConfiguration | ( | int | group | ) |
Gets the current state of the PID group. The PIDConfiguration object will contain the current configuration state of the requested PID controller.
group | the index of the PID group |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 102 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.PDconfigs.
PIDConfiguration com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getPIDConfiguration | ( | int | group | ) |
Gets the current state of the PID group. The PIDConfiguration object will contain the current configuration state of the requested PID controller.
group | the index of the PID group |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 123 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.configs.
float com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetPIDPosition | ( | int | group | ) |
This method requests a single PID controller group value. The value returned represents the current state of the PID controller's input sensor in raw units
group | the index of the PID group |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 280 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getDriveThread(), and com.neuronrobotics.sdk.pid.InterpolationEngine.getPosition().
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetAllPIDPosition(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ResetPIDChannel().
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.isAvailable | ( | ) |
Determines if the device is available.
InvalidConnectionException | the invalid connection exception |
Reimplemented from com.neuronrobotics.sdk.common.BowlerAbstractDevice.
Definition at line 291 of file VirtualGenericPIDDevice.java.
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.killAllPidGroups | ( | ) |
Sends a single packet to stop all PID groups at once.
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 145 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.configs.
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.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)
group | the index of the PID group |
valueToSetCurrentTo | the target value that the controller should be set to. |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 173 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.GenericPIDDevice.firePIDResetEvent(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getDriveThread(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetPIDPosition(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.interpolationEngines, com.neuronrobotics.sdk.pid.InterpolationEngine.ResetEncoder(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.setPause(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.sync.
BowlerDatagram com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.send | ( | BowlerAbstractCommand | command | ) | throws NoConnectionAvailableException, InvalidResponseException |
since there is no connection, this is an easy to nip off com functionality.
command | the command |
NoConnectionAvailableException | the no connection available exception |
InvalidResponseException | the invalid response exception |
Reimplemented from com.neuronrobotics.sdk.common.BowlerAbstractDevice.
Definition at line 160 of file VirtualGenericPIDDevice.java.
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.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.
setpoints | and array of setpoint values (must match the number of availible PID control groups) |
seconds | units 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. |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 249 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getDriveThread(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.interpolationEngines, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.setPause(), com.neuronrobotics.sdk.pid.InterpolationEngine.StartLinearMotion(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.sync.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.flushPIDChannels().
void com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.setMaxTicksPerSecond | ( | double | maxTicksPerSecond | ) |
Sets the max ticks per second.
maxTicksPerSecond | the new max ticks per second |
Definition at line 334 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.maxTicksPerSecond.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.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.
group | the index of the PID group |
unitsPerSecond | a velocity in raw units per second |
seconds | the amount of time to run at this velocity, or Zero to run forever |
PIDCommandException | If the values are out of range with the given data |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 208 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getDriveThread(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getMaxTicksPerSecond(), com.neuronrobotics.sdk.pid.GenericPIDDevice.SetPIDInterpolatedVelocity(), and com.neuronrobotics.sdk.pid.InterpolationEngine.SetVelocity().
boolean com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.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
group | the index of the PID group |
setpoint | the target position for the controller |
seconds | units 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. |
Reimplemented from com.neuronrobotics.sdk.pid.GenericPIDDevice.
Definition at line 191 of file VirtualGenericPIDDevice.java.
References com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getDriveThread(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.interpolationEngines, com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.setPause(), com.neuronrobotics.sdk.pid.InterpolationEngine.StartLinearMotion(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.sync.
|
private |
Definition at line 44 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetAllPIDPosition().
|
private |
The configs.
Definition at line 29 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ConfigurePIDController(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetAllPIDPosition(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getPIDConfiguration(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.killAllPidGroups(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
|
private |
The drive threads.
Definition at line 26 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetAllPIDPosition(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getDriveThread(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ResetPIDChannel(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.run(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetAllPIDSetPoint(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetPIDSetPoint().
|
private |
The max ticks per second.
Definition at line 39 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getMaxTicksPerSecond(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.setMaxTicksPerSecond().
|
private |
Definition at line 46 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
|
private |
The num channels.
Definition at line 42 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.GetAllPIDPosition(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.run(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
|
private |
The P dconfigs.
Definition at line 32 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ConfigurePDVelovityController(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.getPDVelocityConfiguration(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
|
private |
Definition at line 36 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.disconnect(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.run().
|
private |
The sync.
Definition at line 35 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.ResetPIDChannel(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetAllPIDSetPoint(), com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SetPIDSetPoint(), and com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.VirtualGenericPIDDevice().
|
staticprivate |
The Constant threadTime.
Definition at line 23 of file VirtualGenericPIDDevice.java.
Referenced by com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice.SyncThread.run().