-
For Removal Element Description edu.wpi.first.math.filter.SlewRateLimiter(double, double) Use SlewRateLimiter(double positiveRateLimit, double negativeRateLimit, double initalValue) instead.edu.wpi.first.networktables.NetworkTableEntry.clearFlags(int) Use setPersistent() or topic properties insteadedu.wpi.first.networktables.NetworkTableEntry.delete() Use unpublish() instead.edu.wpi.first.networktables.NetworkTableEntry.getFlags() Use isPersistent() or topic properties insteadedu.wpi.first.networktables.NetworkTableEntry.kPersistent Use isPersistent() instead.edu.wpi.first.networktables.NetworkTableEntry.setFlags(int) Use setPersistent() or topic properties insteadedu.wpi.first.wpilibj.Compressor.enabled() To avoid confusion in thinking this (re)enables the compressor use IsEnabled().edu.wpi.first.wpilibj.SPI.setClockActiveHigh() Use setMode() instead.edu.wpi.first.wpilibj.SPI.setClockActiveLow() Use setMode() instead.edu.wpi.first.wpilibj.SPI.setLSBFirst() Does not work, will be removed.edu.wpi.first.wpilibj.SPI.setMSBFirst() Does not work, will be removed.edu.wpi.first.wpilibj.SPI.setSampleDataOnLeadingEdge() Use setMode() instead.edu.wpi.first.wpilibj.SPI.setSampleDataOnTrailingEdge() Use setMode() instead.edu.wpi.first.wpilibj2.command.Command.perpetually() PerpetualCommand violates the assumption that execute() doesn't get called after isFinished() returns true -- an assumption that should be valid. This was unsafe/undefined behavior from the start, and RepeatCommand provides an easy way to achieve similar end results with slightly different (and safe) semantics.edu.wpi.first.wpilibj2.command.CommandGroupBase This class is an empty abstraction. Inherit directly from CommandBase/Command.edu.wpi.first.wpilibj2.command.PerpetualCommand PerpetualCommand violates the assumption that execute() doesn't get called after isFinished() returns true -- an assumption that should be valid. This was unsafe/undefined behavior from the start, and RepeatCommand provides an easy way to achieve similar end results with slightly different (and safe) semantics.
-
Classes Class Description edu.wpi.first.wpilibj2.command.button.Button Replace withTrigger
.edu.wpi.first.wpilibj2.command.CommandGroupBase This class is an empty abstraction. Inherit directly from CommandBase/Command.edu.wpi.first.wpilibj2.command.PerpetualCommand PerpetualCommand violates the assumption that execute() doesn't get called after isFinished() returns true -- an assumption that should be valid. This was unsafe/undefined behavior from the start, and RepeatCommand provides an easy way to achieve similar end results with slightly different (and safe) semantics.
-
Fields Field Description edu.wpi.first.networktables.NetworkTableEntry.kPersistent Use isPersistent() instead.org.opencv.core.CvType.CV_USRTYPE1 please useCvType.CV_16F
-
Methods Method Description edu.wpi.first.networktables.NetworkTableEntry.clearFlags(int) Use setPersistent() or topic properties insteadedu.wpi.first.networktables.NetworkTableEntry.delete() Use unpublish() instead.edu.wpi.first.networktables.NetworkTableEntry.getFlags() Use isPersistent() or topic properties insteadedu.wpi.first.networktables.NetworkTableEntry.setFlags(int) Use setPersistent() or topic properties insteadedu.wpi.first.wpilibj.Compressor.enabled() To avoid confusion in thinking this (re)enables the compressor use IsEnabled().edu.wpi.first.wpilibj.Encoder.getPeriod() Use getRate() in favor of this method.edu.wpi.first.wpilibj.Encoder.setMaxPeriod(double) Use setMinRate() in favor of this method. This takes unscaled periods and setMinRate() scales using value from setDistancePerPulse().edu.wpi.first.wpilibj.SPI.setClockActiveHigh() Use setMode() instead.edu.wpi.first.wpilibj.SPI.setClockActiveLow() Use setMode() instead.edu.wpi.first.wpilibj.SPI.setLSBFirst() Does not work, will be removed.edu.wpi.first.wpilibj.SPI.setMSBFirst() Does not work, will be removed.edu.wpi.first.wpilibj.SPI.setSampleDataOnLeadingEdge() Use setMode() instead.edu.wpi.first.wpilibj.SPI.setSampleDataOnTrailingEdge() Use setMode() instead.edu.wpi.first.wpilibj2.command.button.Button.cancelWhenPressed(Command) Instead, pass this as an end condition toCommand.until(BooleanSupplier)
.edu.wpi.first.wpilibj2.command.button.Button.toggleWhenPressed(Command) Replace withTrigger.toggleOnTrue(Command)
edu.wpi.first.wpilibj2.command.button.Button.whenHeld(Command) Replace withTrigger.whileTrue(Command)
edu.wpi.first.wpilibj2.command.button.Button.whenPressed(Command) Replace withTrigger.onTrue(Command)
edu.wpi.first.wpilibj2.command.button.Button.whenReleased(Command) Replace withTrigger.onFalse(Command)
edu.wpi.first.wpilibj2.command.button.Button.whileHeld(Command) UseTrigger.whileTrue(Command)
withRepeatCommand
.edu.wpi.first.wpilibj2.command.button.Trigger.cancelWhenActive(Command) Instead, pass this as an end condition toCommand.until(BooleanSupplier)
.edu.wpi.first.wpilibj2.command.button.Trigger.toggleWhenActive(Command) UseTrigger.toggleOnTrue(Command)
instead.edu.wpi.first.wpilibj2.command.button.Trigger.whenActive(Command) UseTrigger.onTrue(Command)
instead.edu.wpi.first.wpilibj2.command.button.Trigger.whenInactive(Command) UseTrigger.onFalse(Command)
instead.edu.wpi.first.wpilibj2.command.button.Trigger.whileActiveContinuous(Command) UseTrigger.whileTrue(Command)
withRepeatCommand
, or bindcommand::schedule
toBooleanEvent.ifHigh(Runnable)
(passing no requirements).edu.wpi.first.wpilibj2.command.button.Trigger.whileActiveOnce(Command) UseTrigger.whileTrue(Command)
instead.edu.wpi.first.wpilibj2.command.Command.perpetually() PerpetualCommand violates the assumption that execute() doesn't get called after isFinished() returns true -- an assumption that should be valid. This was unsafe/undefined behavior from the start, and RepeatCommand provides an easy way to achieve similar end results with slightly different (and safe) semantics.edu.wpi.first.wpilibj2.command.Command.withInterrupt(BooleanSupplier) Replace withCommand.until(BooleanSupplier)
edu.wpi.first.wpilibj2.command.CommandGroupBase.deadline(Command, Command...) Replace withCommands.deadline(Command, Command...)
edu.wpi.first.wpilibj2.command.CommandGroupBase.parallel(Command...) Replace withCommands.parallel(Command...)
edu.wpi.first.wpilibj2.command.CommandGroupBase.race(Command...) Replace withCommands.race(Command...)
edu.wpi.first.wpilibj2.command.CommandGroupBase.sequence(Command...) Replace withCommands.sequence(Command...)
edu.wpi.first.wpilibj2.command.CommandScheduler.addButton(Runnable) UseTrigger
edu.wpi.first.wpilibj2.command.CommandScheduler.clearButtons() callEventLoop.clear()
onCommandScheduler.getActiveButtonLoop()
directly instead.org.opencv.core.Core.getThreadNum() Current implementation doesn't corresponding to this documentation. The exact meaning of the return value depends on the threading framework used by OpenCV library:-
TBB
- Unsupported with current 4.1 TBB release. Maybe will be supported in future. -
OpenMP
- The thread number, within the current team, of the calling thread. -
Concurrency
- An ID for the virtual processor that the current context is executing on (0 for master thread and unique number for others, but not necessary 1,2,3,...). -
GCD
- System calling thread's ID. Never returns 0 inside parallel region. -
C=
- The index of the current parallel task. SEE: setNumThreads, getNumThreads
org.opencv.imgproc.Imgproc.linearPolar(Mat, Mat, Point, double, int) This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags) Transform the source image using the following transformation (See REF: polar_remaps_reference_image "Polar remaps reference image c)"): \(\begin{array}{l} dst( \rho , \phi ) = src(x,y) \\ dst.size() \leftarrow src.size() \end{array}\) where \(\begin{array}{l} I = (dx,dy) = (x - center.x,y - center.y) \\ \rho = Kmag \cdot \texttt{magnitude} (I) ,\\ \phi = angle \cdot \texttt{angle} (I) \end{array}\) and \(\begin{array}{l} Kx = src.cols / maxRadius \\ Ky = src.rows / 2\Pi \end{array}\)org.opencv.imgproc.Imgproc.logPolar(Mat, Mat, Point, double, int) This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG); Transform the source image using the following transformation (See REF: polar_remaps_reference_image "Polar remaps reference image d)"): \(\begin{array}{l} dst( \rho , \phi ) = src(x,y) \\ dst.size() \leftarrow src.size() \end{array}\) where \(\begin{array}{l} I = (dx,dy) = (x - center.x,y - center.y) \\ \rho = M \cdot log_e(\texttt{magnitude} (I)) ,\\ \phi = Kangle \cdot \texttt{angle} (I) \\ \end{array}\) and \(\begin{array}{l} M = src.cols / log_e(maxRadius) \\ Kangle = src.rows / 2\Pi \\ \end{array}\) The function emulates the human "foveal" vision and can be used for fast scale and rotation-invariant template matching, for object tracking and so forth. -
-
Constructors Constructor Description edu.wpi.first.math.filter.SlewRateLimiter(double, double) Use SlewRateLimiter(double positiveRateLimit, double negativeRateLimit, double initalValue) instead.edu.wpi.first.wpilibj2.command.button.Button() Replace withnew Button(() -> false)
.edu.wpi.first.wpilibj2.command.button.Trigger() edu.wpi.first.wpilibj2.command.ProxyScheduleCommand(Command...) Replace withProxyCommand
, composing multiple of them in aParallelRaceGroup
if needed.edu.wpi.first.wpilibj2.command.SelectCommand(Supplier<Command>) Replace withProxyCommand