Closed CrispyBacon1999 closed 7 months ago
Hi, please merge in beta and run CI again. I took a quick glance... did we implement the PING and PONG requirements? Maybe RTT sufices
Not 100% sure what's needed for the PING and PONG. Most of the logic for this was pulled from AdvantageScope since they had already done the upgrade and have their own library for it.
@CrispyBacon1999 If you have hardware to test this on, I rebased in beta
I don't have it tonight, but I should be able to test tomorrow if I remember to.
I was able to test the connection to a physical robot tonight and it worked perfectly! Connected properly over NT4.1 and I was able to poll values from the robot.
Description
This pull request introduces support for NetworkTables v4.1 while maintaining backward compatibility with version 4.0. The primary goal is to enable seamless integration with NetworkTables servers that have upgraded to v4.1, while ensuring that existing functionality for v4.0 remains intact.
Currently, there are no tests written for 4.1, which should absolutely be added. All the tests for v4.0 still pass, with minor modifications to ensure that the code is running at 4.0 instead.
Changes Made
New Feature: Added support for NetworkTables version 4.1.
Compatibility: The code has been structured to preserve compatibility with NetworkTables version 4.0. The default behavior remains as it was for version 4.0, ensuring that users running older servers won't experience any disruptions.
Conditional Logic: Implemented conditional logic to detect the server's version during runtime. If the server supports version 4.1, the code will automatically switch to using the new features and improvements introduced in this version.
Questions for Reviewers
Are there any concerns about maintaining backward compatibility with version 4.0? Have we covered all possible scenarios where compatibility might be affected?
Have we implemented the conditional logic for version detection in an efficient and reliable manner? Are there any potential edge cases that we might have missed?
Are there any performance considerations or optimizations that need to be addressed to ensure the smooth operation of the code with version 4.1?
Any feedback and suggestions for improvement are highly welcomed.
Note: The changes for the documentation make PRs get a bit messy. Would it be worthwhile changing it so the docs build only on merges to main?