Thad House
58b6484dbe
Switch away from NI interrupt manager to custom implementation ( #3705 )
...
* Switch away from NI interrupt manager to custom implementation
* Formatting
* Fix tidy
* Formatting
* Fix loading
* Make interrupt api public
* Add multiple wait api
* Formatting
* Fix build
* Fix review comments
* wpiformat
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-13 17:25:54 -07:00
Thad House
68ce62e2e9
[hal] Add autodetect for power modules ( #3706 )
...
Default autodetect to REV if no devices are found, as only the REV devices have control functionality (the switchable output).
2021-11-07 13:53:38 -08:00
Tyler Veness
4647d09b50
[docs] Fix Doxygen warnings, add CI docs lint job ( #3639 )
...
The CI docs lint build is configured to fail on Doxygen warnings.
2021-10-14 18:09:38 -07:00
Thad House
10f19e6fc3
[hal, wpilib] Add REV PneumaticsHub ( #3600 )
2021-10-10 20:04:50 -07:00
Thad House
d347928e4d
[hal] Use better error for when console out is enabled while attempting to use onboard serial port ( #3622 )
2021-10-10 15:52:50 -07:00
Thad House
66abb39880
[hal] Update runtime enum to allow selecting roborio 2 ( #3565 )
...
In some cases, knowing roborio 2 might be useful. This also creates a higher level enum that might be usable later for the discussion on more complex runtime types.
2021-09-13 22:05:38 -07:00
Thad House
5e6c34c61c
Update to 2022 roborio image ( #3537 )
2021-09-10 13:00:58 -07:00
Thad House
10cc8b89c4
[hal] [wpilib] Add initial support for the REV PDH ( #3503 )
2021-08-14 11:44:56 -07:00
Thad House
4a36f86c81
[hal] Add support for DMA to Java ( #3158 )
2021-06-14 19:56:42 -07:00
Peter Johnson
b2c3b2dd8e
Use std::string_view and fmtlib across all libraries ( #3402 )
...
- Twine, StringRef, Format, and NativeFormatting have been removed
- Logging now uses fmtlib style formatting
- Nearly all uses of wpi::outs/errs have been replaced with fmt::print() or
std::puts()/std::fputs() (for unformatted strings).
- A wpi/fmt/raw_ostream.h header has been added to enable
fmt::print() with wpi::raw_ostream
2021-06-06 16:13:58 -07:00
Thad House
0e702eb799
[hal] Add a unified PCM object ( #3331 )
2021-06-05 22:36:39 -07:00
Thad House
5127380727
[hal] Add HAL_GetLastError to enable better error messages from HAL calls ( #3320 )
...
This uses thread local storage so a full error string can be provided, not just an error code.
2021-04-29 09:56:54 -07:00
Peter Johnson
2aed432b4b
Add braces to C++ single-line loops and conditionals (NFC) ( #2973 )
...
This makes code easier to read and more consistent between C++ and Java.
Also update clang-format settings to always add a line break (even if no braces are used).
2020-12-28 12:58:06 -08:00
Peter Johnson
8f1f64ffb6
Remove year from file copyright message (NFC) ( #2972 )
...
Also update copyright to include "and other WPILib contributors" and clarify
license referral language to not be restricted to FIRST teams.
2020-12-26 14:12:05 -08:00
Peter Johnson
339d7445b3
[sim] Add HAL hooks for simulationPeriodic ( #2881 )
...
This allows vendor libs to hook into the begin or end of simulationPeriodic().
2020-11-30 23:55:36 -08:00
Peter Johnson
f1b1bdb121
[hal] Add HAL_Shutdown and simulation shutdown callbacks
...
This is useful for clean shutdown of simulation extensions.
2020-09-04 16:26:09 -07:00
Thad House
7548fdae5d
[hal] Fix InitialzeInterrupts naming ( #2673 )
...
Closes #2605
2020-08-31 00:33:49 -07:00
sciencewhiz
3e41d92c18
[wpilib] Use misspell to fix spelling errors (NFC) ( #2674 )
2020-08-31 00:33:11 -07:00
Thad House
7b7f44d937
Use netcomm function to get target class rather then hardcoded ( #2391 )
...
It reports the correct value now, and helps for future proofing
2020-03-14 22:04:12 -07:00
Thad House
6cf89aa0f3
Fix interrupt cancellation ( #2406 )
2020-03-14 22:03:04 -07:00
Thad House
2a968df779
Add method for releasing a waiting interrupt ( #2347 )
...
Useful for a new high level interrupt implementation.
2020-02-18 20:41:42 -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
Thad House
8ed2059074
Add AddressableLED ( #2092 )
2019-11-17 16:39:38 -08:00
Thad House
82b2170feb
Add DMA support to HAL and WPILibC ( #2080 )
2019-11-14 22:52:34 -08:00
Thad House
326aecc9a0
Add error message for CAN Write Overrun ( #2062 )
2019-11-08 22:51:11 -08:00
Thad House
1d695a1660
Add FPGA Duty Cycle support ( #1987 )
2019-11-01 23:41:30 -07:00
Thad House
a3820bbdfa
Remove HAL_BaseInitialize ( #1981 )
2019-10-24 20:26: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
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
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
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
Dustin Spicuzza
0d0492bfcc
HAL: Add additional error messages to HAL_GetErrorMessage ( #965 )
2018-12-01 00:06:30 -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
d2a5aaafdd
Use external dependencies for NI and NetComm libraries ( #1304 )
...
This removes a number of large binary files from the repo and enables vendors
to depend on these libraries separately.
2018-09-19 21:57:58 -07:00
Tyler Veness
d89b7dd412
Move CameraServer and WPILib headers into their own folder
...
The old headers were moved into folders because doing so avoids polluting
the system include directories.
Folder names were also normalized to lowercase.
2018-07-22 19:40:57 -07:00
Thad House
f6e4df6a18
Remove OS Serial Port ( #1141 )
...
It was done as a shim fix around some VISA issues that don't seem to exist anymore. Was never really tested, and I don't think ever actually worked.
2018-06-07 20:51:26 -07:00
Tyler Veness
8c680a26f8
Moved C++ comments from source files to headers ( #1111 )
...
Also sorted functions in C++ sources to match order in related headers.
2018-05-31 20:47:15 -07:00
Thad House
680aabbe7c
Add new CAN API ( #1036 )
2018-05-21 16:09:38 -07:00
Thad House
e21a246a4d
Make the HAL self initialize when ever any initialization function is called ( #1012 )
2018-05-13 22:02:47 -07:00
Peter Johnson
f84018af5f
Move entirety of llvm namespace to wpi namespace.
...
During shared library loading, a different libLLVM can be pulled in, causing
llvm symbols from dependent libraries to resolve to that library instead of
this one. This has been seen in the wild with the Mesa OpenGL implementation
in JavaFX applications (see wpilibsuite/shuffleboard#361 ).
This is clearly a very breaking change. For some level of backwards
compatibility, a namespace alias from llvm to wpi is performed in the "llvm"
headers. Unfortunately, forward declarations of llvm classes will still break,
but compilers seem to generate clear error messages in those cases
("namespace alias 'llvm' not allowed here, assuming 'wpi'").
This change also moves all the wpiutil headers to a single "wpi" subdirectory
from the previously split "llvm", "support", "tcpsockets", and "udpsockets".
Shim headers will be added for backwards compatibility in a later commit.
2018-04-30 10:22:54 -07:00
Thad House
7f88cf768d
New 2018 and later build setup ( #1001 )
2018-04-29 13:29:07 -07:00
Tyler Veness
0ef9803363
Update copyright year to 2018 ( #864 )
...
Also fix a few files with incorrect line endings.
2018-01-02 11:20:21 -06:00
Thad House
8bd48d6c34
Switches HAL to manual instead of static initialization ( #824 )
...
Only athena.
Will fix a whole lot of init issues.
2017-12-10 18:02:07 -08:00
Thad House
4e3af0756d
Removes workarounds for issues in image 10 ( #816 )
2017-12-06 21:20:03 -08:00
Tyler Veness
e9e407a87d
Replace C identifier lists with (void) ( #809 )
...
These changes were generated by wpilibsuite/styleguide#106 .
2017-12-04 20:05:51 -08:00
Peter Johnson
d214b36786
Change HAL notifier to polling. ( #627 )
...
This moves the thread code to the WPILib layer, fixing various potential
races and significantly simplifying the HAL implementation.
2017-11-19 17:58:40 -08:00
Peter Johnson
7f46b50b21
Unify WPI_Now and HAL_GetFPGATime. ( #743 )
...
Depends on wpilibsuite/wpiutil#56 .
2017-11-19 12:33:36 -08:00
Thad House
f56ec10bcf
Only return lower 32 bits of FPGA time ( #741 )
...
Works around an NI bug in image 10.
2017-11-16 20:52:50 -08:00