Tyler Veness
ffa4b907c0
Fix C++ floating point literal formatting ( #2114 )
...
Found formatting errors with this regex
"([^a-z0-9\.]\.[0-9]|[^a-z0-9\.][0-9]\.[^a-z0-9\.])" and ignored false
positives.
Fixes #2112 .
2019-11-20 21:48:15 -08:00
Thad House
6f6c6da9f5
Updates to addressable LED ( #2098 )
...
Only PWM Headers are supported, so enforce that.
Also fixes some init checks and init order checks.
2019-11-18 15:25:04 -08:00
Peter Johnson
a4c9e4ec28
Add AddressableLED simulation support
2019-11-18 00:51:59 -08:00
Thad House
8ed2059074
Add AddressableLED ( #2092 )
2019-11-17 16:39:38 -08:00
Thad House
db2c3dddd7
Use DMA Global Number for DMA Index ( #2085 )
2019-11-15 17:32:29 -08:00
Thad House
82b2170feb
Add DMA support to HAL and WPILibC ( #2080 )
2019-11-14 22:52:34 -08:00
Thad House
5510960068
Use kNumSystems for DutyCycle count in Ports ( #2083 )
2019-11-14 12:15:47 -08:00
Thad House
b7bc1ea745
Update to 2020v6 image ( #2078 )
2019-11-13 21:35:52 -08:00
Peter Johnson
3e049e02f0
Add name to HAL Notifier
2019-11-11 22:03:29 -08:00
Thad House
326aecc9a0
Add error message for CAN Write Overrun ( #2062 )
2019-11-08 22:51:11 -08:00
Thad House
384d00f9e6
Fix various duty cycle bugs ( #2047 )
2019-11-06 14:05:25 -08:00
Thad House
39f46ceab6
Don't allow rising and falling values to be read from AnalogTrigger ( #2039 )
...
They can't be caught from user code
2019-11-05 20:42:01 -08:00
Thad House
d93aa2b6b2
Add missing lock in FRCDriverStation ( #2034 )
...
Switch newDataCounter to atomic
2019-11-05 20:41:16 -08:00
Thad House
1d695a1660
Add FPGA Duty Cycle support ( #1987 )
2019-11-01 23:41:30 -07:00
Thad House
2ad15cae19
Add multi PDP getter and sim PCM/PDP multi arg functions ( #2014 )
2019-11-01 21:55:35 -07:00
Thad House
6f159d1426
Add way to atomically check for new data, and wait otherwise ( #2015 )
2019-11-01 17:09:28 -07:00
Thad House
f6b844ea30
Move HAL Interrupt struct to anonymous namespace ( #2003 )
2019-10-28 22:32:28 -07:00
Thad House
a3820bbdfa
Remove HAL_BaseInitialize ( #1981 )
2019-10-24 20:26:11 -07:00
Thad House
a83fb47933
Update to 2020v5 image ( #1983 )
...
* Update to 2020v5 image
2019-10-24 12:14:22 -07:00
Thad House
103c1b121c
Remove DS caching from the HAL level ( #1971 )
...
With updates to netcomm, this is no longer required.
2019-10-23 20:25:07 -07:00
Peter Johnson
aa90645865
Add ability to associate other devices with a SimDevice
...
Implemented only for AnalogInput, DIO, and Encoder.
2019-10-05 22:39:00 -07:00
Peter Johnson
81c2c8a7de
Add simulation generic device/value support
...
This allows high-level library classes to implement enhanced simulation
support even if no low-level corresponding simulation library exists, and
avoids the need for bit-banging complex interfaces like SPI or CAN.
2019-10-05 22:39:00 -07:00
Thad House
cb54602d49
Add support for writing RTR CAN Frames to the CAN API ( #1900 )
2019-09-28 16:49:34 -07:00
Thad House
9f740e5905
Use OS for serial port instead of NI VISA ( #1875 )
2019-09-28 16:49:11 -07:00
Peter Johnson
b23baf611a
Add ability to run robot main loop in a separate thread ( #1895 )
...
Default behavior is still to run the robot main loop in the main thread.
The ability to run the robot main loop in a separate thread and add a hook
for running a different function in the main thread is needed for simulation
GUI support on some platforms.
2019-09-28 15:43:24 -07:00
Thad House
8858ec55c7
Remove periodic can read call ( #1868 )
...
It is not necessary anymore, and is a complicated and confusing API to keep around.
2019-09-28 15:38:58 -07:00
Thad House
f49859ebfd
Remove NI VISA headers, as they are now included in NI Libraries ( #1879 )
2019-09-07 23:01:27 -05:00
Tyler Veness
1fb3011235
Add MathUtils.clamp() for Java ( #1861 )
...
Also use std::clamp() and MathUtils.clamp() in as many places as
possible in place of custom clamp functions or if statements.
2019-08-28 23:24:30 -07:00
Thad House
6411bd79c6
InterruptableSensorBase: Fix callback function deletion ( #1807 )
...
Save the callback function into a unique_ptr member instead.
2019-08-04 20:25:25 -07:00
Tyler Veness
62be0392b6
Replace std::lock_guard and std::lock with std::scoped_lock ( #1758 )
...
std::scoped_lock was introduced in C++17 and is strictly better than
std::lock_guard as it supports locking any number of mutexes safely.
It's also easier to use than std::lock for locking multiple mutexes at
once.
2019-07-08 22:58:39 -07:00
Tyler Veness
841ef5d739
Remove template types from lock RAII wrapper usages ( #1756 )
...
C++17 has template type autodeduction. These wrappers include
std::lock_guard and std::unique_lock.
2019-07-07 19:17:14 -07:00
Thad House
221011494d
Update for C++17 and fix MSVC warnings ( #1694 )
...
* Update MSVC arguments
* Fix json allocator
* Fix simulation diamond
* Bump gtest
* Remove empty varargs in unit tests
* Replace test case with test suite
* Remove deprecation warning in optional
* Remove need for NOMIXMAX to be defined in wpilib headers
2019-05-31 15:43:32 -05: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
Tyler Veness
d3affb16bc
Make failure of HAL_GetFPGATime() more descriptive ( #1633 )
2019-04-27 20:34:14 -07:00
Thad House
4e0c10f488
Fix CAN Clean using wrong ID ( #1668 )
2019-04-27 20:24:40 -07:00
Thad House
655763a9a7
Limit length of message sent to DS SendError call ( #1618 )
...
If total length is over 65536, the packet will get thrown out.
This can be a problem in stack overflow cases (e.g. infinite recursion).
2019-03-03 15:43:04 -08:00
Thad House
99e4f7dd2c
Fix SPI CS1 not working correctly ( #1614 )
...
It was failing the check when remapping digital sources
2019-02-25 18:48:22 -08:00
Thad House
8a9822a96b
Allow multiple instances of the same PDP ( #1582 )
...
Previously multiple instances would overrun with each other. This make all instances get the same HAL handle.
2019-02-06 22:51:34 -08:00
Thad House
d46ce13ffe
Fix CAN API timing out incorrectly ( #1497 )
...
HAL_GetFPGATime returns 0 if it starts with a non zero status.
Always use monotonic clock for CAN times, rather then trying to sync FPGA.
Change timeout from 50 ms to 100 ms.
2018-12-29 13:57:23 -08:00
Thad House
3721463eb3
Don't use symbolic path searching for USB detection ( #1491 )
...
The USB directories we care about are not symbolic links, so we can ignore them.
There was a recursive symbolic link, which was causing failure.
2018-12-19 14:40:01 -08:00
Thad House
1823cb2b68
Fix periodic can packets not being received properly ( #1488 )
...
Constant calls would result in timeout, because a valid packet wasn't being returned early.
Also fix data copies (was copying in wrong direction).
2018-12-14 17:43:48 -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
Dustin Spicuzza
0d0492bfcc
HAL: Add additional error messages to HAL_GetErrorMessage ( #965 )
2018-12-01 00:06: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
Thad House
2e3e3a47b9
Use a kill -9 after attemting a safe kill ( #1397 )
...
Should fix some deploy deadlocks.
2018-11-01 01:55:26 -07:00
Thad House
1dec0393a1
Fix static deletion race condition in DS thread ( #1396 )
...
The static condition variable was getting destroyed before the DS thread exited,
resulting in a deadlock on program exit when the DS thread tried to notify it.
This change moves the condition variable into the DS thread to avoid the race.
2018-10-30 11:51:17 -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
Thad House
9174f23f36
Remove some usages of windows.h ( #1370 )
...
For HAL and wpilib, we don't need them, especially where they were being used.
2018-10-28 22:33:55 -07:00
Liam Kinne
349e273ecc
AnalogGyro: add "calibrating for n seconds" message ( #1380 )
2018-10-23 00:29:23 -07:00
Tyler Veness
467c9fd686
Add kInvalid value to HAL_I2CPort and HAL_SPIPort ( #1329 )
...
This allows HAL_CloseI2C() and HAL_CloseSPI() to be noops, which makes
enabling move semantics in the I2C and SPI wpilibc classes easier and
cleaner.
Fixes #1328 .
2018-09-23 21:14:04 -07:00