Commit Graph

5527 Commits

Author SHA1 Message Date
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
Peter Johnson
c8482cd6d2 wpiutil: Add WebSocket implementation (#1186)
This is a RFC 6455 compliant implementation with both client and server support.
2018-08-24 20:54:23 -07:00
Peter Johnson
d6d5321828 wpiutil UidVector: Implement clear() and forward iterator (#1293)
The forward iterator only iterates over "live" elements.

Also add a couple of unit tests for UidVector.
2018-08-24 20:39:57 -07:00
Peter Johnson
8d91343bf5 wpiutil spinlock.h: Include STL mutex for convenience (#1292)
The STL mutex header defines classes like lock_guard and unique_lock.
2018-08-24 20:39:20 -07:00
PJ Reiniger
488ba79379 Add more checkstyle checks to simulator code (#1289) 2018-08-23 23:15:29 -07:00
PJ Reiniger
de212a9dd0 Add names to simulator components (#1268)
Makes configuration easier when you can associate the items with a name
instead of just a port number. Important if there is a GUI added at some
point.
2018-08-23 17:59:09 -07:00
Peter Johnson
8d8f120cc3 EventLoopRunner: Use AsyncFunction 2018-08-20 22:21:53 -07:00
Peter Johnson
57490e0002 Add uv::AsyncFunction to do a roundtrip function call to a uv::Async
This optionally blocks to wait for a return value.
2018-08-20 22:21:53 -07:00
Peter Johnson
1de1900dbb Change uv::Async to accept data parameters
This is a breaking change as it makes Async a template (e.g. Async<> must
be used instead of just Async).  When data parameters are provided, an
internal mutex and vector is used to hold the parameter packs until the loop
runs.
2018-08-20 22:21:53 -07:00
Peter Johnson
4a3e43d4a7 Add HttpMultipartScanner (#1197)
This is a non-blocking version of FindMultipartBoundary.
2018-08-20 22:00:54 -07:00
Peter Johnson
9e37ee13de Add wpi::HttpServerConnection and an example of its use (#1281) 2018-08-20 13:11:39 -07:00
Peter Johnson
7b95c5341a ntcore: Change params in Java RpcAnswer from String to byte[] (#1280)
The underlying protocol uses raw bytes, so they should not be required to be
a valid string.
2018-08-20 13:07:13 -07:00
Peter Johnson
5283726cce ntcore: Describe RPC version 0 in spec (#1279) 2018-08-20 13:06:43 -07:00
Peter Johnson
0b8f4b5e6c Add libdl to wpiutil cmake build (#1288)
This is required for dlopen, which is required by libuv.
2018-08-20 00:56:16 -07:00
Peter Johnson
a5f7342fce Run cmake build in travis (#1287) 2018-08-20 00:55:54 -07:00
Peter Johnson
6df7425440 cmake: Compile cscore and wpiutil examples (#1286) 2018-08-19 23:22:52 -07:00
Peter Johnson
d7b68f3f95 Unbreak cmake build (#1285) 2018-08-19 23:21:51 -07:00
Matt Soucy
e28295fc7b Add dependency injection of Subsystem to Command (#1275) 2018-08-19 19:43:21 -07:00
Peter Johnson
6df500e726 Add missing library dependencies in simulation dev executables (#1284) 2018-08-19 19:12:43 -07:00
Peter Johnson
83cfb8b19f UrlParser: fix Has() functions (#1283) 2018-08-19 17:25:42 -07:00
Peter Johnson
82b25d0ec9 spinlock_bench.cpp: Fix wpiformat warning (#1282) 2018-08-19 17:25:20 -07:00
Peter Johnson
b44f27ddfa SendableChooser: Rename addDefault and addObject for clarity (#1239)
Rename addDefault to setDefaultOption and addObject to addOption.

The old names are still available but are marked as deprecated.
2018-08-19 01:51:17 -07:00
Peter Johnson
fa78f30e30 ntcore: Make protocol revision more visible in docs (#1278)
Also add author line to correct document formatting.
2018-08-19 01:38:23 -07:00
Peter Johnson
46ae19d082 wpiutil: Add a mutex-compatible spinlock implementation (#1272)
Note this is only faster than mutex if compiler optimization is enabled.
2018-08-19 01:01:10 -07:00
Peter Johnson
77124a229e Twine: disable part of isValid() that causes spurious warnings (#1271) 2018-08-16 19:35:40 -07:00
PJ Reiniger
1462a5bd46 Fix spacing and const correctness in sim (#1269) 2018-08-15 22:17:59 -07:00
Austin Shalit
44099d9a21 Update errorprone config for Java 10 (#1265) 2018-08-10 20:02:41 -07:00
PJ Reiniger
c2ceebfb9c Add gyro and accelerometer simulator wrappers (#1183) 2018-08-01 21:39:20 -07:00
Peter Johnson
0a0d9245e2 cscore: Add connection strategy to sources (#1252)
By default, sources automatically manage their connection based on whether
any sinks are connected.  This change allows the user to keep a connection
open or force it closed regardless of the number of connected sinks.
2018-07-29 21:18:45 -07:00
Jamie Sinn
7bd3f9f0bd Change ButtonScheduler scope start method to public (#1254)
Fixes #765.
2018-07-29 19:26:48 -07:00
Tyler Veness
4801ae2499 Replace ellipsis characters munged by wpiformat with three periods (#1256)
The Java LinearDigitalFilter class has already been changed.
2018-07-29 19:25:26 -07:00
Peter Johnson
0e9172f9a7 Fix many errorprone warnings (#1247)
This fixes two real bugs:
- TimedRobot had a m_period that was hiding the IterativeRobotBase m_period
  and was not getting initialized.
- PDPSim was swapping two parameters to getCurrent()
2018-07-29 16:47:22 -07:00
Peter Johnson
6db5f80430 docs: Set use_mathjax to true (#1251)
This avoids depending on latex for HTML formula output.
2018-07-29 15:36:28 -07:00
Peter Johnson
898076f698 docs/build.gradle: Use unix EOL (#1250) 2018-07-29 15:14:37 -07:00
Peter Johnson
195e101816 cscore: Use Twine instead of StringRef in API (#1244) 2018-07-29 12:53:41 -07:00
Peter Johnson
97a8f8f47b HAL: Add Doxygen module documentation (#1246)
This helps organize the functions in the generated docs.
2018-07-29 12:49:46 -07:00
Peter Johnson
9408fd5176 Add Doxygen comments for namespaces (#1245) 2018-07-29 12:49:28 -07:00
Thad House
00c2cd7dab Improve JNI loading efficiency (#1224)
A hash is stored for each native library with the name libraryName.hash.
If the library is not found on the system search path, it is extracted to a cache directory.
Extracted libraries are named with the hash appended, so the library will not be
re-extracted if one with the same hash already exists.

Hashing without the hash file requires double traversing if the file is not in the cache,
but it is still faster than creating a new file in most cases.  This won't be needed
after opencv is updated to provide a hash as well.
2018-07-29 10:20:41 -07:00
Austin Shalit
cbb62fb98f Fix errorprone so it is version locked and reports warnings (#1242) 2018-07-29 09:32:22 -07:00
Austin Shalit
a11fcb605d Add UseConcurrentHashMap exception to PMD and clean NOPMDs (#1243) 2018-07-29 09:29:32 -07:00
Austin Shalit
139b1720b2 Fix JavaDoc generation (#1241)
JavaDoc cannot handle redirects so HTTP link does not work anymore.
It also looks like javadoc.options was the wrong thing to set.
Options properly connects external docs to ours.
Re-enabled warnings so these things will pop out if they turn up again.
2018-07-29 09:28:41 -07:00
Austin Shalit
011f0ff536 UsbCamera: Make setConnectVerbose public and add test (#1240) 2018-07-29 00:48:00 -07:00
Thad House
75a67202e5 Add documentation building to repo (#1238)
Running build will now build docs. If you just want to build docs, run :documentation:build
2018-07-28 17:54:41 -07:00
Peter Johnson
186e1dc54b ntcore: Documentation cleanups (#1237) 2018-07-28 17:41:57 -07:00
Peter Johnson
f2393feeef cscore: Documentation cleanups (#1236)
Reformat the C++ documentation to use the normal comment style and
add doxygen grouping.
2018-07-28 17:35:33 -07:00
Peter Johnson
66e35128c9 Use Pimpl idiom for CameraServer
This dramatically reduces header dependencies.
2018-07-28 17:34:42 -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
Peter Johnson
eb64ea9fc7 MotorSafetyHelper: Use SmallPtrSet instead of std::set 2018-07-28 17:34:42 -07:00