Peter Johnson
c11ef442fb
[wpiutil] Add HttpWebSocketServerConnection ( #2505 )
...
This is a derived class of HttpServerConnection that implements the
WebSocket upgrade pieces. This combination is pretty common so is
worth refactoring here.
2020-07-05 22:10:30 -07:00
Tyler Veness
5b6f68cf72
[wpilib] Add parentheses to MSVC #pragma message ( #2569 )
2020-07-05 15:24:44 -07:00
Tyler Veness
5ccc98bc14
[wpiutil] Add angular acceleration units ( #2562 )
...
We already have predefined linear acceleration units and angular
velocity units. This makes defining acceleration constraints for angular
trapezoid profiles more convenient.
No tests were added for this because the base unit conversions are
already tested. Angular acceleration just adds another time dimension.
2020-07-01 17:16:08 -07:00
Tyler Veness
d30d1088da
[wpiutil] Split units.h into separate headers for each unit ( #2551 )
...
Closes #2508 .
Co-authored-by: Prateek Machiraju <prateek.machiraju@gmail.com >
2020-06-29 22:25:09 -07:00
Tyler Veness
e08c8a1fc9
[wpiutil] Add circular buffer class with static size ( #2542 )
...
This complements wpi::circular_buffer which supports dynamic resizing.
2020-06-29 21:51:05 -07:00
Tyler Veness
22c0e2813a
[build] Upgrade CI to clang-format 10.0 ( #1961 )
...
MacOS no longer ships 6.0, and Arch Linux's mesa GPU drivers are no longer compatible with LLVM 6.0.
2020-06-27 20:39:00 -07:00
Peter Johnson
765f009350
[wpiutil] Add HttpQueryMap and HttpPath/HttpPathRef ( #2544 )
2020-06-27 10:47:41 -07:00
Peter Johnson
00e991e2a0
[wpiutil] Add dual-IPv4/IPv6 uv::AddrToName() ( #2545 )
2020-06-26 17:14:26 -07:00
Peter Johnson
67554ef3b0
[build] Add .inl files to styleguide (NFC) ( #2506 )
...
No functional changes.
2020-05-05 18:17:50 -07:00
Armeen Mahdian
0d30108dcb
[wpiutil] Endian.h: minor cleanup and improvements ( #2454 )
...
- Make use of if constexpr when possible for byte_swap
- Remove unnecessary make_unsigned_t alias (added to STL in C++14)
2020-03-28 10:35:47 -07:00
Prateek Machiraju
1c28b729ad
Move curvature_t to units namespace ( #2444 )
...
Note: this is a breaking change.
2020-03-22 22:57:52 -07:00
Tyler Veness
35eb90c135
Fix "'dimensionless' ambiguous symbol" error ( #2382 )
...
A typedef for units::dimensionless::dimensionless is defined, which
conflicted with the namespace when we added "using namespace
dimensionless". This patch reverts the "using namespace" directive.
"using" directives were added to pull three of the four relevant
typedefs but avoid the "dimensionless" type conflict.
This issue was first introduced in #2301 .
2020-02-21 00:41:50 -08:00
Oblarg
05b7593e66
C++ circular_buffer: support types not implicitly convertible from int ( #2350 )
...
Also fixes two cases of returning a reference to a constant.
2020-02-08 13:35:21 -08:00
Oblarg
0ab81d768f
Add feed-forward and slew rate limiting to advanced drive examples ( #2301 )
2020-01-23 18:07:38 -08:00
Peter Johnson
f47e318131
C++ units: Interoperate with Windows headers min/max ( #2268 )
2020-01-12 22:52:36 -08:00
Peter Johnson
795086b4cf
Fix Demangle when used standalone ( #2256 )
2020-01-10 23:41:40 -08:00
Peter Johnson
0c6f24562f
Fix bug in ULEB128 decoding ( #2195 )
2019-12-24 14:12:42 -06:00
Thad House
9cb69c5b46
Add a way to pass in a preconstructed value to ManagedStatic ( #2175 )
...
A lot of our cases don't need the lazy construction, but do need manual destruction.
2019-12-20 14:06:22 -08:00
Oblarg
5e97c81d80
Add MedianFilter class for moving-window median ( #2136 )
...
This kind of filter is extremely useful for signals that are susceptible to sudden
outliers - ultrasonics, 1-D LIDAR, and results from vision processing are all
good use-cases.
This also modifies the existing ultrasonic examples accordingly.
2019-11-29 15:13:40 -08:00
Tyler Veness
845aba33fe
Make feedforward classes constexpr ( #2103 )
...
ArmFeedforward::Calculate() can't be made constexpr because std::cos()
and thus units::math::cos() is not constexpr.
Fixes #2101 .
2019-11-19 06:47:59 -08:00
Oblarg
7dc7c71b58
Add feedforward components ( #2045 )
...
Add helper classes for computing feedforwards with parameters supplied by the characterization tool.
2019-11-09 20:16:42 -08:00
Thad House
936627bd94
wpilibc: Remove direct CameraServer dependency ( #1989 )
...
This makes linking easier, particularly for third party vendors and other language wrappers.
2019-10-27 08:37:30 -07:00
Oblarg
75438ab2ce
Add RamseteCommand ( #1951 )
2019-10-26 21:33:41 -07:00
Tyler Veness
cce26ec78e
Replace CRLF line endings with LF ( #1902 )
2019-09-28 19:55:50 -07:00
Peter Johnson
971303da8c
Add PortForwarder class ( #1890 )
...
This class provides an easy way to forward local ports to another host/port.
This is primarily useful to provide a way to access Ethernet-connected devices
from a computer tethered to the RoboRIO USB port.
The most natural spot to put the shared implementation of this class was into
wpiutil, so a wpiutilJNI library has been added.
2019-09-26 22:53:21 -07:00
Prateek Machiraju
f405582f86
Add kinematics suite ( #1787 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
Co-authored-by: Matt <matthew.morley.ca@gmail.com >
2019-09-07 23:11:49 -05:00
Thad House
8993ce5bf1
Move Eigen headers out of main include folder ( #1854 )
...
This allows using Eigen as a separate cmake package, e.g. for vcpkg.
2019-08-26 21:22:41 -07:00
Tyler Veness
e3d86fee46
Move circular buffer class from wpilib to wpiutil ( #1840 )
2019-08-24 21:35:19 -07:00
Prateek Machiraju
8f386f6bb3
wpilibc: Add unit-safety to C++ geometry classes ( #1811 )
2019-08-16 22:00:32 -07:00
Peter Johnson
f1d71da8a9
Move GetStackTrace and Demangle to wpiutil, add Windows support ( #1819 )
...
For Windows, import the StackWalker source (https://github.com/JochenKalmbach/StackWalker )
plus PR 35 in that repo, with a few simplifications to StackWalker.h.
2019-08-12 23:45:45 -07:00
Tyler Veness
37d316aa09
Add C++20 std::math constants shim ( #1788 )
...
Based on http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r7.pdf
2019-07-31 22:15:22 -07:00
Tyler Veness
37c6952663
Squelch -Wdeprecated-copy for Eigen with GCC >= 9
2019-07-30 00:39:47 -07:00
Tyler Veness
04c9b000ff
Revert "Fix build of Eigen 3.3.7 with GCC 9"
...
-Wextra adds -Wdeprecated-copy, which Eigen emits. We're going to
squelch the warning instead to minimize changes to Eigen's upstream
sources.
2019-07-30 00:39:47 -07:00
Peter Johnson
ca3e71e214
wpiutil: Fix Process::Spawn() ( #1778 )
...
Was broken due to removal of ArrayRef initializer_list constructor.
2019-07-26 11:22:23 -07:00
Prateek Machiraju
d946d5a2bb
Fix Eigen compilation errors and add tests ( #1777 )
2019-07-24 20:51:33 -07:00
Tyler Veness
8b1b9ac75a
Fix build of Eigen 3.3.7 with GCC 9
2019-07-24 00:03:18 -07:00
Tyler Veness
2f680ba990
Add Eigen linear algebra library
...
This imports Eigen 3.3.7, which will be used by the wpilibc implementation of
state-space control and mecanum/swerve forward kinematics (the forward
kinematics requires least-squares solutions via a matrix pseudoinverse).
While Eigen has parts licensed under BSD, MINPACK, and MPL2, the files we need
are only MPL2.
2019-07-24 00:03:18 -07:00
Peter Johnson
dff58c87f4
Fix unused warning in release build ( #1771 )
2019-07-21 22:17:42 -07:00
Peter Johnson
10731f3d6b
Update uv Udp wrapper for latest features
2019-07-15 20:15:37 -05:00
Peter Johnson
89f7b72b6e
Update libuv to 1.30.1 release
2019-07-15 20:15:37 -05:00
Peter Johnson
85f2f87400
wpiutil: Add unique_function ( #1761 )
...
This is a move-only variant of std::function to support move-only captures.
Imported from LLVM with some small tweaks (changed to 4 pointer internal storage, warnings fixes).
2019-07-15 20:13:57 -05: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
Peter Johnson
8757bc471b
Remove pre-C++17 shims ( #1752 )
...
Now that all compilers support C++17, remove some old C++14/C++17 shims.
2019-07-07 15:44:43 -07:00
Tyler Veness
118e9d29d5
Add C++14 units library ( #1749 )
2019-06-30 19:44:51 -07:00
Peter Johnson
eedb3a1adc
Fix GCC 9 warnings ( #1730 )
2019-06-30 00:28:32 -07:00
Peter Johnson
60dce66a4f
Remove wpi::ArrayRef std::initializer_list constructor ( #1745 )
...
This can be dangerous as it refers to a temporary, and GCC 9.0 warns about
its use. Instead add std::initializer_list overloads to common places it
was used in an initializer_list sense.
2019-06-29 23:54:02 -07:00
Peter Johnson
4b1b92bb74
Replace wpi::optional with C++17 std::optional ( #1732 )
...
Keep wpi/optional.h as a shim with deprecated warnings.
2019-06-29 11:20:22 -07:00
Austin Shalit
f7cfdd7cee
Replace crlf line endings with lf ( #1731 )
2019-06-28 20:55:14 -07:00
Peter Johnson
ee8a33c568
wpiutil: SafeThread: Add thread id, support getting shared_ptr ( #1722 )
...
Rename base class function from GetThread to GetThreadSharedPtr.
2019-06-20 19:51:09 -07:00