Commit Graph

3209 Commits

Author SHA1 Message Date
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
Peter Johnson
826ed7fe3c SmallPtrSet: Fix makeIterator 2018-07-28 17:34:42 -07:00
Peter Johnson
a2d314b0d9 ConditionalCommand.cpp: Remove iostream include 2018-07-28 17:34:42 -07:00
Peter Johnson
6b37ca9f9a UsbCamera: Allow silencing of Connecting message (#1231) 2018-07-28 14:57:41 -07:00
Peter Johnson
0614913f1a Add a way to indicate a Sendable is an actuator (#1226)
SendableBuilder.setActuator() sets the .actuator key in the network table
so dashboards can change behavior on the client side if desired, and also
sets a local flag (retrievable via isActuator()).

Both make drive bases actuators and call setSafeState on them.
2018-07-28 14:04:46 -07:00
Peter Johnson
5fafaf6272 Add confirmation to SendableChooser (#1217)
This echos back the "selected" value to the "active" key to enable dashboards
to display positive feedback to the user that the value is actually set on
the robot side.

Also fixes SendableChooser so it can be safely added to multiple tables.
Changes to "selected" in any table will result in all "active" values being
updated.

Now that adding SendableChooser to multiple tables is supported, an ".instance"
key enables dashboards to treat the same SendableChooser as a common instance
if desired.
2018-07-28 10:43:47 -07:00
Peter Johnson
397a296e25 Add a .controllable key as a standard part of Sendable (#1225)
This indicates whether or not the Sendable listeners are installed.
It is set to true when SendableBuilder.startListeners() starts the listeners,
and set to false when SendableBuilder.stopListeners() stops the listeners.

This allows dashboards to choose to change their widget display based on
whether or not the value is actually controllable.
2018-07-28 10:42:31 -07:00
Thad House
1d9ed8f458 Fix SensorUtil issues (#1194)
C++ PDP was missing module check, and channel check called module.
Java docs said 1 based instead of 0 based.
2018-07-28 09:51:49 -07:00
Austin Shalit
bbb622aaa6 Revert "Use ASAN when on Clang (#1187)" (#1234)
This reverts commit 340b26bada.

Closes #1232

We are reverting this because it broke Mac builds. The root cause of
this is a requirement that the entire application must be built with ASAN
to link properly. For more information about why this is see the below link.

https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow#false-positives
2018-07-28 09:50:25 -07:00
Peter Johnson
8cbe7a6257 cscore: Move CvSourceImpl placeholders into SourceImpl (#1230)
This makes it easier to implement new non-camera Sources.
2018-07-27 23:15:35 -07:00
Peter Johnson
932308b497 MjpegServer: Add ability to set compression, etc in code (#1229)
This allows code to set the stream compression, resolution, and FPS used if
not specified in HTTP parameters by the client.
2018-07-27 23:00:15 -07:00
Peter Johnson
9398278250 cscore: Add properties support to VideoSink (#1228)
Refactor the Property internals into PropertyContainer.
2018-07-27 22:12:30 -07:00
Peter Johnson
c9a75a119a cscore: Support multiple levels of JPEG compression (#1223)
This allows two streams with different compression levels, and also allows
a stream to receive a different compression level than provided by a JPEG
camera (decompress and recompress).
2018-07-27 21:51:40 -07:00
Peter Johnson
04ee8dbe79 UsbCamera: In JPEG mode, get size from image instead of mode (#1222)
Some cameras will accept a different resolution as the mode but then provide
JPEG images of a different size.  Trust the JPEG image size if available.

This also validates the JPEG image is actually JPEG.
2018-07-27 21:50:28 -07:00
Peter Johnson
7fd7192b16 Disable UvGetAddrInfo Concurrent test on Windows (#1227)
This test likes to intermittently hang for some unknown reason, so disable it.
2018-07-27 21:41:04 -07:00
Thad House
63c1f80d60 halsim_ds_socket: Update tag parsing, and add rumble support (#1214)
Outputs are now sent. Ensure only the proper number of outputs are actually sent though.

Also adds match time, and proper enable tags.
2018-07-26 01:30:29 -07:00
Tyler Veness
d54c2665dc Update UsageReporting enums and their uses for 2019 (#1218) 2018-07-25 19:58:05 -07:00
Peter Johnson
8aac46542d Add a SimpleBufferPool for uv::Buffer (#1215)
Buffers are reused on a regular basis in many use cases.
2018-07-25 00:58:54 -07:00
Thad House
c78e1499d7 Remove appveyor artifacts, and only build 64 bit (#1212)
There is a limit on artifacts, and doing both builds gains little and doubles build time.
2018-07-22 23:05:25 -07:00