/goNTCore

GoLang implementation of WPILibs ntcore package.

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

goNTCore

GoLang implementation of the WPILib ntcore software.

What is Network Tables?

Network Tables is a network protocol for a key-value store which can be read from and written to by multiple remote clients. A central server, most often running on a FIRST FRC robot controller, is responsible for providing information consistency and for facilitating communication between clients.

Network Table V3

To view the standards that this package follows read NetworkTables v3 Spec

TODO (possibly out of date)

  • Create all the possible Entry types
    • Include a way to Marshal and Unmarshal them
  • Create all the possible Message types
    • Include a way to Marshal and Unmarshal them
  • Create a NetworkTable interface that should be used for anything to talk on the Network
  • Create a Data interface for NetworkTable interface to use for manipulating data
  • Create a NetworkTable struct that implements the NetworkTable interface but consumes the Data interface
  • Create a Server that can listen to multiple clients as well as broadcast to them
    • Cleanup old connections
  • Create a Client that can listen to a server for messages
    • Should be able to initiate handshake
  • Create a data struct to implament Data that is connected to a Key Value store
    • Has to handle keys, IDs and SNs correctly
    • Should handle persistent flag correctly
  • Server needs to have NetworkTabler methods so that it can send the appropriate messages
  • Client needs to have NetworkTabler methods so that it can send the appropriate messages
  • Fix the Server handshake to return EntryAssign for all entries it knows about
  • Fix the Client handshake to return what is different between what the server has and what it has
  • Modify Server handler method to manipulate data on the server side
  • Modify Client handler method to manipulate data on the client side