Commit Graph

5527 Commits

Author SHA1 Message Date
Peter Johnson
9d4a66a400 Merge pull request #17 from 333fred/master
Fixed Gradle build to actually export proper functions

Fixes #13.
2015-08-23 00:15:10 -05:00
Fredric Silberberg
c846dff524 Fixed Gradle build to actually export proper functions 2015-08-23 01:10:39 -04:00
Peter Johnson
29f73cb5c1 Don't dispose in ConvertToC for NT_String and NT_Value.
Fixes #16.
2015-08-22 19:31:53 -07:00
Peter Johnson
a8836b7665 Value: Use variant of enable_if to fix MakeString/MakeRaw in GCC.
Tested on GCC 4.8, GCC 4.9, and clang 3.6.
2015-08-22 14:01:33 -07:00
Peter Johnson
96bf5c24b5 Merge pull request #4 from calcmogul/master
Replaced time.h with std::chrono
2015-08-20 22:40:59 -07:00
Tyler Veness
ab9de550d9 Replaced time.h with std::chrono
This implementation returns the same values as the previous one on both a Linux machine and the roboRIO.
2015-08-20 16:04:55 -07:00
peter mitrano
4514e4489a refactored HAL library
builds two libraries, Athena  and Desktop.
Simulation should use Desktop, Robots should use Athena

Also:
 - copied Driverstation and Joystick from Devices into Sim
 - Descreased dependency of pthreads in JNI.
 - removed Simulation ifdef from non simulation
 - added missing decprecated attribute for msvc
 - removed usage reporting from sim
 - removed unused pom.xml and constexpr

Change-Id: If8eb540f9434dce17c77a245fda6985713e80b2d
2015-08-20 11:22:42 -04:00
Peter Johnson
9cb9c3beb0 Logger: Move m_min_level init to header. 2015-08-19 22:04:31 -07:00
Peter Johnson
2d1bc2f4c7 Uninline constructors to reduce GetInstance() inlined code size. 2015-08-19 21:49:18 -07:00
Peter Johnson
c6bed1f464 Dispatcher: Move several fixed initial values to header. 2015-08-19 21:16:44 -07:00
Peter Johnson
c41341c7e3 Clean up trailing whitespace. 2015-08-19 20:41:59 -07:00
Peter Johnson
f0e31487f0 raw_istream and kin: a few cleanups.
anchor() doesn't seem to change compiler output in current compilers, so
remove it.  Use default where appropriate rather than empty bodies.
2015-08-19 20:37:27 -07:00
Peter Johnson
a34143ae75 Update TODO. 2015-08-19 19:18:09 -07:00
Peter Johnson
ca9ce0f3a3 Implement automatic persistent saves.
Also loads persistent file on server start.
2015-08-19 19:18:09 -07:00
Peter Johnson
a5ccafd924 Merge pull request #3 from 333fred/gradle-changes
Gradle changes
2015-08-18 14:17:53 -07:00
peter mitrano
43960b9bca changed windows file separator to unix file separator
Change-Id: I7e57bde57c1f735d9bd70b26141fb562be392b4f
2015-08-18 12:05:30 -04:00
peter mitrano
29d029fa61 merged from frcsim branch
verified to work on real robots
adds sim eclipse plugins, fixed JavaGazebo, made wpilibC++Sim build on windows
 - Java and C++ simulation robot programs run on windows
 - simulation eclipse plugin delivers models and gazebo plugins
 - Java Gazebo now respects GAZEBO_IP variables and can work across networks
 - hal and network tables win32 hacked to work on windows
 - smart dashboard broken on windows due to network tables hacks
 - wpilibC++Sim, gz_msgs, and frcsim_gazebo_plugins build with CMake
 - removed constexpr for cross platform compatibility
 - msgs generated using .protos as a part of build process
 - some spare and unused cmake/pom files deleted
 - simulation ubuntu debians removed entirely
 - refactored CMake project flags and macros
 - updated to match non-sim C++ API
 - fixed and updated documentation
 - servo added to simulation

Change-Id: Ia702ff0f1fee10d77f543810ad88f56696443b05
2015-08-18 10:39:25 -04:00
Fredric Silberberg
9458da0454 Added building for arm, x86, and x64 with Gradle. This only builds ntcore currently, I'm working getting Google Test to work. 2015-08-15 21:46:21 -07:00
Peter Johnson
738881099f Unbreak cmake build.
Several ctre headers were in source directories but were required by other
headers in include directories.  This worked in gradle but not in cmake.

Change-Id: I806c76031b396d1694a18b8e30c705e92f617a66
2015-08-14 08:01:59 -07:00
Brad Miller (WPI)
4e46692191 Merge "Fixed wpilibJavaSim build" 2015-08-14 07:46:03 -07:00
Brad Miller (WPI)
8056aaa0aa Merge "Accelerometer classes no longer use PIMPL pattern" 2015-08-14 07:42:47 -07:00
Peter Johnson
80247e98e5 Use relative include paths in tcpsockets. 2015-08-13 23:07:45 -07:00
Peter Johnson
293d005432 Turn on logging in unit tests. 2015-08-13 22:14:17 -07:00
Peter Johnson
a395e3577f Notifier: Fix condition variable race. 2015-08-13 21:35:33 -07:00
Peter Johnson
8d7cdeabbf Implement remote procedure calls. 2015-08-13 21:32:16 -07:00
Tyler Veness
93b0dab7e4 Accelerometer classes no longer use PIMPL pattern
Change-Id: I792ac05e7080190ce268818a2bb94dacbeba274c
2015-08-13 15:16:00 -07:00
Tyler Veness
099056789e Fixed wpilibJavaSim build
Recent changes in master broke the build of wpilibJavaSim. Since the build server doesn't build the plugins after the library, this wasn't caught.

Change-Id: Ibd4a2ba9f359ddbc395ba0654fccada10ca78c78
2015-08-13 13:54:38 -07:00
Tyler Veness
f96b61ef11 artf4106: ISO C++ forbids variable-size array
C++14 changed the definition of VLAs, so the previous usage was no longer valid ISO C++. GCC 5.1.0 actually enforces this definition, so this commit fixes the build under GCC 5.1.0. This also builds under GCC 4.9.1.

Change-Id: Ib5ae2c49b4c4c21455b722b6633d7841066b4872
2015-08-13 12:26:46 -07:00
James Kuszmaul
b5695581c3 artf4170: Make CANTalon disable on destruction.
This both disables the CANTalon in the CANTalon class (which
should be redundant) and stops sending control signals in the
CanTalonSRX hal class.

Change-Id: I63d6a9d016c221e385d5d5a3679d854882ac6650
2015-08-13 11:42:30 -07:00
Tyler Veness
2bf3b6bed4 Replaced WPILib.h includes in integration tests with the minimum required subheaders to improve compilation times
I ran the benchmark in a tmpfs with an Intel Core i5-2430M. I ran it three times for each combination of build invokation and source tree.

First, I tested "make". For master (eb7d55f), I measured an average of 42.751s with a standard deviation of 0.372s. For this commit, I measured an average of 33.394s with a standard deviation of 0.140s. There was a 9.356s, or 22%, improvement with a total error of 1.3%.

Second, I tested "make -j4". For master (eb7d55f), I measured an average of 21.723s with a standard deviation of 0.158s. For this commit, I measured an average of 16.823s with a standard deviation of 0.340s. There was a 4.900s, or 23%, improvement with a total error of 2.7%.

Change-Id: Idb3adce62ed8ef449360c6583896b6da3565cf58
2015-08-13 11:31:46 -07:00
James Kuszmaul
e017f93f16 Fixed examples to build/run with new WPILib versions.
Also added some references/smart pointers to a couple places
that seemed convenient to the user.

I haven't updated the constructors for RobotDrive() related
examples, pending the results of gerrit change https://usfirst.collab.net/gerrit/#/c/960/

A few things that we are noticing:
--It might be nice if ReturnPIDInput() didn't have to be const;
  when people try to override it, they have to remember to put
  the const in and if they don't, then the compiler error isn't the
  most obvious (especially since this is a change). This would also
  apply to PIDGet() in the PIDSource interface.
--SendableChooser still takes raw pointers. This could lead to an
  issue I had to debug briefly where you accidentally call
  GetSelected() on autoChooser and put the resulting raw pointer
  into a unique_ptr, which destroys the pointer when it goes out of
  scope. Specifically, I was testing the PacGoat example and
  I ended up with a situation where if auto mode was run once, it
  was fine, but if it was run twice, the selected command would
  have been destroyed by the unique_ptr. I believe that this
  just requires updating SendableChosser to take shared_ptr.
--When the samples are compiled with -pedantic, it points out that
  START_ROBOT_CLASS macro expansion results in a redundant semicolon.

Change-Id: Ib4c025a61263d0d2780d4253faa31713e15333a5
2015-08-13 11:26:28 -07:00
Brad Miller (WPI)
4f8c1dff2f Merge changes I8a9cf402,I8c0f8442
* changes:
  Tuned test constants for VelocityPID.
  artf4127: Implemented velocity PID controller
2015-08-13 11:15:01 -07:00
James Kuszmaul
92edf35b41 Make deprecated warnings not error for macs.
Change-Id: I82e748e2f313e111ed2acd30fd11a1b027a6797c
2015-08-13 12:33:05 -04:00
Peter Johnson
e199e3571b Revert "Don't error on strict-aliasing warnings."
This reverts commit 492463411d.
2015-08-12 17:17:19 -07:00
Peter Johnson
e9618df1b5 Avoid pointer aliasing for double/bits conversions.
Instead use the llvm MathExtras.h functions for this, which use union
aliasing.
2015-08-12 17:15:10 -07:00
Peter Johnson
c34ba968f1 Message: Remove ArrayRef-taking ExecuteRpc/RpcResponse. 2015-08-12 17:11:09 -07:00
Peter Johnson
0cbcfbc3f0 Import llvm::DenseMap.
Bring in (most of) MathExtras.h as well, as it's shared by SmallVector and
DenseMap.
2015-08-12 17:08:45 -07:00
James Kuszmaul
cd4ebbd8a0 Tuned test constants for VelocityPID.
Also added a GetAvgError method to the PIDController
which averages the past n error values for use with
noisy sensor values (namely, for the velocity stuff).

Change-Id: I8a9cf40259dd56ef9093b36ed6891cc18b9131cf
2015-08-11 06:32:24 -07:00
Tyler Veness
d5922bb037 artf4127: Implemented velocity PID controller
Change-Id: I8c0f84422f7ca0ac5c50fddb282fb3452ee1d491
2015-08-11 01:05:45 -07:00
Peter Johnson
492463411d Don't error on strict-aliasing warnings.
These warnings occur in release mode for the double-to-uint64 cast used
for transmitting double values.
2015-08-04 20:38:31 -07:00
Peter Johnson
cd53feb193 Log DEBUG() macros: avoid spurious warnings in release builds. 2015-08-04 20:36:39 -07:00
Peter Johnson
00feb67064 Only use enable_if template on Windows.
This isn't required and doesn't compile on older GCC versions.
2015-08-04 19:59:45 -07:00
Peter Johnson
b3eed38187 Get build working on Windows (MSVC 2013).
Windows needs static libraries to build the tests as gtest/gmock are built statically.
2015-08-04 01:29:06 -07:00
Peter Johnson
f683a5c63c Export C API functions on Win32. 2015-08-04 00:15:00 -07:00
Peter Johnson
7d409f071e Add win32 tcpsockets implementation. 2015-08-04 00:01:13 -07:00
Peter Johnson
4146db6fc8 Visual Studio 2013 compilation fixes.
- Missing header file callouts in some cases (library deltas)
- Lack of support for auto parameters in lambdas
- Defining of ERROR by windows.h
- Dispatcher::Connection needs a move constructor (default not generated)
- Need explicit enable_if on std::string move template in Value to avoid trying to move const char[] (string literal)
- Compile flags
2015-08-03 01:27:02 -07:00
Peter Johnson
a86f65db1e Dispatcher: Implement transmit combining.
This handles most of the major cases, but not a loop of delete/assign, which
should be uncommon anyway.
2015-08-02 23:21:23 -07:00
Peter Johnson
53a0531def Storage::ProcessIncoming(): Don't override parameter with local. 2015-08-02 23:20:42 -07:00
Peter Johnson
7db00575c9 NetworkConnection: Add a bit more debugging. 2015-08-02 22:23:14 -07:00
Peter Johnson
5b65bfb64d Storage: Fix comparison for client update-on-assign. 2015-08-02 22:18:46 -07:00