Création de plusieurs instances de NetworkTables

Cette fonctionnalité est principalement utile pour les coprocesseurs et les tests unitaires. Il permet à un programme unique d’être membre de deux « réseaux » NetworkTables qui contiennent des ensembles de tables complètement différents (et non liés). Pour l’utilisation la plus générale, vous devez utiliser des tables dans une seule instance, car tous les programmes de tableau de bord actuels ne peuvent se connecter qu’à un seul serveur NetworkTables à la fois.

Normalement, l’instance « par défaut » est configurée sur le robot en tant que serveur et utilisée pour la communication avec le programme de tableau de bord exécuté sur l’ordinateur de votre poste de conduite. C’est ce que les classes SmartDashboard et LiveWindow utilisent.

Si vous aviez un coprocesseur et que vous vouliez avoir un ensemble de tables partagées uniquement entre le coprocesseur et le robot, vous pouvez configurer une instance distincte dans le code du robot qui agit en tant que client (ou serveur) et y connecter le coprocesseur. , et ces tableaux NE seront PAS envoyés au tableau de bord.

De même, si vous souhaitez effectuer des tests unitaires des communications NetworkTables de votre programme de robot, vous pouvez configurer vos tests unitaires de manière à ce qu’ils créent une instance client distincte (toujours dans le même programme) et la connectent à l’instance de serveur que le robot principal le code est en cours d’exécution.

Un autre exemple pourrait être d’avoir deux programmes de tableau de bord complètement séparés. Vous pouvez configurer deux instances de serveur NetworkTables dans votre programme de robot (sur différents ports TCP bien sûr), configurer différentes tables sur chacune d’elles et faire en sorte que chaque tableau de bord se connecte à une instance de serveur différente. Chaque tableau de bord ne verrait que les tables de son instance.