Tyler Veness
d42ef5df02
Fix Watchdog print formatting ( #1693 )
2019-05-19 12:24:40 -07:00
Tyler Veness
f432f65bef
Update copyright year in license to 2019 ( #1524 )
...
Also update clang-format to 6.0.
2019-05-17 17:35:09 -07:00
sciencewhiz
1c454b000f
Add Shuffleboard calls to IterativeRobotBase in C++ ( #1607 )
...
Additionally, add epochs for Shuffleboard, LiveWindow, and
Smartdashboard updates.
2019-04-27 22:23:21 -07:00
Tyler Veness
a095ec2d8f
Fix linker errors with free functions in Threads.h ( #1625 )
...
The functions in Threads.h are in the frc namespace. `using namespace frc;` in
Threads.cpp doesn't put their implementations in the frc namespace, so linker
errors occur when attempting to use them in robot programs.
To fix this, one can either wrap them in a namespace block or prepend
`frc::` to the implementation's signature. Based on past discussion, I
opted for the namespace block.
2019-03-03 15:39:59 -08:00
Sam Carlberg
e8b24717c7
C++ Shuffleboard fixes ( #1595 )
...
* Fix C++ ShuffleboardComponent template type
* Fix `WithWidget(WidgetType&)`not being properly capitalized
* Fix data members across dll boundaries by using enum for built in types
2019-02-14 20:44:30 -08:00
Tyler Veness
43696956d2
Fix Watchdog incorrectly resetting expiration flag upon disable ( #1580 )
...
Resetting the flag should only occur in Enable() and Reset().
IterativeRobotBase needs the flag to remain set to print epochs after
disabling the Watchdog.
2019-02-02 00:22:07 -08:00
Christopher Cantrell
7d19596367
Changed terminology from "Overload" to "Override" ( #1563 )
2019-01-24 22:45:05 -08:00
Tyler Veness
f121ccff0d
Avoid Watchdog thread clobbering m_isExpired flag after callback ( #1527 )
2019-01-08 19:37:59 -08:00
Peter Johnson
bc2c932f92
Fix MotorSafety deadlock ( #1526 )
...
Some instances of StopMotor (most notably DifferentialDrive) call Feed(),
which deadlocks due to Check() holding the same lock.
Fixes #1525 .
2019-01-02 20:58:39 -08:00
Sam Carlberg
80f87ff8ad
Allow video sources to be added to Shuffleboard ( #1453 )
...
Add a Sendable wrapper for VideoSource objects.
Add convenience methods for adding video sources directly to containers
so users won't have to manually wrap video sources.
2018-12-30 11:45:41 -08:00
Peter Johnson
a2368a6199
Watchdog: add timeout message suppression feature
...
Was part of reverted #1486
2018-12-30 00:16:50 -08:00
Peter Johnson
f0f196e5b3
Revert "MotorSafety: Use Watchdog instead of DS class polling ( #1442 )"
...
This reverts commit 26e8e587f9 .
2018-12-30 00:16:50 -08:00
Peter Johnson
7c35355d29
Revert "Suppress Watchdog's generic timeout message in MotorSafety ( #1486 )"
...
This reverts commit 41596608cc .
2018-12-30 00:16:50 -08:00
Peter Johnson
75cc09a9e4
Revert "Suppress timeout message in C++ MotorSafety class ( #1512 )"
...
This reverts commit 300eeb330d .
2018-12-30 00:16:50 -08:00
Sam Carlberg
01d1322066
Add constants for built-in Shuffleboard widgets and layouts ( #1468 )
...
Prevents users from having to remember (and correctly type) the names of Shuffleboard widgets.
2018-12-29 17:22:47 -08:00
Tyler Veness
300eeb330d
Suppress timeout message in C++ MotorSafety class ( #1512 )
...
wpilibj's default constructor is already correct.
2018-12-27 14:01:02 -06:00
Andrew Dassonville
d817001259
Only write version information on real robot ( #1510 )
...
Writing to the versions file throws an exception on Windows, and might
write weird files on Linux.
2018-12-27 00:59:49 -06:00
Tyler Veness
41596608cc
Suppress Watchdog's generic timeout message in MotorSafety ( #1486 )
2018-12-14 10:53:33 -08:00
Nicolas Machado
ff58c5156a
Change SmartDashboard type of PIDBase.cpp to match PIDBase.java ( #1470 )
2018-12-07 19:40:31 -08:00
Tyler Veness
6d4326a560
Rate-limit Watchdog timeout prints to 1Hz ( #1459 )
2018-12-07 19:39:02 -08:00
Sam Carlberg
97ba195b88
Fix LiveWindow attempting to start listeners on uninitialized sendables ( #1463 )
...
Additionally adds a defensive check in SendableBuilderImpl to avoid the NPE.
2018-12-07 19:38:22 -08:00
Dustin Spicuzza
b64dfacff3
DriverStation: fix error checking for GetXXXAxis and GetXXXPov ( #1469 )
...
Fixes #1436
2018-12-06 22:31:14 -08:00
Peter Johnson
dcbf02a1ec
Update auto SPI for timestamp changes ( #1457 )
...
The 2019 FPGA image switched the output of auto SPI from plain bytes to a
sequence of 32-bit words (timestamp, then words with the byte values in the
least significant byte of each word).
In addition to changing the HAL and simulators to reflect this, add piecewise
integration support to wpilibc/wpilibj SPI to take advantage of the timestamps
and use it in the ADXRS450 gyro.
2018-12-06 22:29:20 -08:00
Tyler Veness
26e8e587f9
MotorSafety: Use Watchdog instead of DS class polling ( #1442 )
2018-12-01 01:34:52 -08:00
Tyler Veness
3b33abfc7b
Make Watchdog use single thread dispatch ( #1347 )
...
Notifier has one thread per instance because the callbacks must be
asynchronous. Watchdog callbacks can be synchronous, so this overhead
can be done away with via a scheduler thread akin to what the HAL
Notifier does.
2018-12-01 00:05:33 -08:00
Sam Carlberg
6f0c185a05
Add methods to change the selected tab in the Shuffleboard app ( #1448 )
2018-11-27 22:12:50 -08:00
Tyler Veness
acb786a791
Remove MotorSafetyHelper, create MotorSafety base class instead ( #562 )
...
Most of the MotorSafety implementation was moved into the MotorSafety base
class. SafePWM's inheritance of MotorSafety was moved into PWM to
eliminate Java needing a helper class.
In Java, a helper class for Sendable (SendableImpl) was added due to
lack of multiple inheritance.
2018-11-22 21:15:26 -08:00
Sam Carlberg
45f4472d42
Add mechanism to control Shuffleboard recordings and add event markers ( #1414 )
2018-11-18 23:15:30 -08:00
Austin Schuh
9207d788ab
Convert ReadInterrupt* to return int64_t time ( #1417 )
...
HAL_ReadInterruptRisingTimestamp and HAL_ReadInterruptFallingTimestamp
return time as a double. Instead, keep the raw integer count and move the
double conversion into the C++ and Java code. This enables comparison of the
time with other timers.
2018-11-15 21:22:03 -08:00
Tyler Veness
63775362fe
Remove SynchronousPID class ( #1429 )
...
PR #1300 supersedes it, but won't be merged until the 2020 season. Since
SynchronousPID hasn't been used during a season, it would be best to
just remove it to avoid breakage when we deprecate and remove it again.
2018-11-15 19:25:31 -08:00
Peter Johnson
43d188a429
RobotBase: Call cscore Shutdown() from destructor
2018-11-09 23:33:55 -08:00
Jaci Brunning
28087424ec
Add deploy directory detection ( #1400 )
...
Add Filesystem class for java and namespace methods for C++ for detecting deploy location.
2018-11-02 13:16:44 -07:00
Thad House
f0b0965f9b
Remove large HAL headers from wpilibc headers ( #1386 )
...
Now only includes the types in the wpilib headers.
Should immensely clean up intellisense.
Closes #1383
2018-10-29 12:49:17 -07:00
Redrield
9f6544fa87
Allow binding commands to POV ( #1378 )
2018-10-28 21:54:06 -07:00
Tyler Veness
0a2ab4f0d7
Revert change in behavior in HeldButtonScheduler ( #1381 )
...
Originally, the command was restarted every time the scheduler was
executed if the button was pressed. #1340 changed this behavior in a
breaking manner.
2018-10-20 21:25:37 -07:00
Liam Kinne
da9a575526
Rename squaredInputs to squareInputs in DifferentialDrive ( #1361 )
...
Fixes #1360 .
2018-10-13 23:10:16 -07:00
Thad House
fd82153456
Fix shuffleboard C++ tests, and run them on desktop ( #1351 )
2018-10-02 20:55:03 -07:00
Sam Carlberg
175c6c1f01
Add fluent builders for more flexibly adding data to Shuffleboard ( #1022 )
2018-09-28 01:18:18 -07:00
Tyler Veness
a732854866
Clean up edge detection logic in ButtonScheduler subclasses ( #1340 )
...
This also changes the behavior of whileActive to call start once on the starting edge
instead of every loop iteration.
2018-09-26 22:55:34 -07:00
Tyler Veness
8b1274d744
Replace typedefs in C++ with using declarations ( #1339 )
...
These are more readable than typedefs. C headers were left alone.
2018-09-26 00:09:25 -07:00
Tyler Veness
1aa8446725
Add move constructors and assignment operators to wpilibc ( #1314 )
...
Fixes #898 .
2018-09-24 00:08:25 -07:00
Tyler Veness
b505bbefd1
Rename variable in SPI class not compliant with style guide ( #1330 )
...
Also rename some wpilibj SPI class variables to match wpilibc and
better communicate their intent.
2018-09-23 18:26:02 -07:00
Thad House
59386635e7
Add CAN API constructor that takes explicit manufacturer and device type ( #1311 )
...
Useful for vendors wanting to use the API and make their own device parameters
2018-09-19 21:40:47 -07:00
Matt Soucy
8b5dc53cc7
Add Lambda support to InstantCommand ( #1262 )
2018-09-11 23:44:22 -07:00
Peter Johnson
67b1c85315
Notifier: properly reset HAL alarm in non-periodic case ( #1296 )
...
The loop spins otherwise.
2018-09-03 16:07:23 -07:00
Tyler Veness
0b113ad9ce
Fix some PIDCommand constructors not forwarding subsystems ( #1299 )
...
Also added missing constructor to wpilibc's InstantCommand and renamed
argument from requirement to subsystem as per
https://github.com/wpilibsuite/allwpilib/pull/1275#issuecomment-416071940 .
2018-09-02 14:18:12 -07:00
Matt Soucy
e28295fc7b
Add dependency injection of Subsystem to Command ( #1275 )
2018-08-19 19:43:21 -07:00
Peter Johnson
195e101816
cscore: Use Twine instead of StringRef in API ( #1244 )
2018-07-29 12:53:41 -07:00
Peter Johnson
6933fefe55
Use Pimpl idiom for Scheduler
...
Particularly since Scheduler is a singleton, it makes a lot of sense to
use the pointer-to-implementation idiom to reduce header depedencies.
2018-07-28 17:34:42 -07:00
Peter Johnson
fedf828120
Command: Use SmallPtrSet for requirements instead of std::set
2018-07-28 17:34:42 -07:00