Quote:
Originally Posted by virtuald
Actually, we use NetworkTables extensively too -- I forget it's part of WPILib because we split it out from WPILib for the python implementation.
I'm pretty sure the Java/C++ implementations of NetworkTables have difficult to reproduce deadlock issues in them, which is something I wish they would fix.
|
I have good news for you (and others who've run into issues with NetworkTables). I'm currently rewriting the NetworkTables implementation core from the ground up as a portable C++ library (with C interfaces) to fix the deadlocks and improve performance. The plan for WPILib is to update both the C++ and Java higher level classes to use this core library (similar to how NetworkCommunication is used) for consistency across languages. It's currently TBD whether LabView will use this library or continue using a LabView-native implementation. And before anyone asks, yes, the new implementation will be extensively unit-tested (I'm expecting to have at least several hundred unit tests).
In addition to the implementation rewrite, we're revising the protocol (in a backwards-compatible way) to fix a number of issues (more consistent synchronization) and make the protocol in general a bit more robust. As part of this, we're also adding a few features, including integrated value persistence (think Preferences++), remote procedure calls, server reboot detection, and client self-identification.
__________________
Author of
cscore - WPILib CameraServer for 2017+
Author of
ntcore - WPILib NetworkTables for 2016+
Creator of
RobotPy - Python for FRC
2010 FRC World Champions (
294, 67, 177)
2007 FTC World Champions (30, 74,
23)
2001 FRC National Champions (71,
294, 125, 365, 279)