Class StructTopic<T>

java.lang.Object
edu.wpi.first.networktables.Topic
edu.wpi.first.networktables.StructTopic<T>
Type Parameters:
T - value class

public final class StructTopic<T>
extends Topic
NetworkTables struct-encoded value topic.
  • Method Details

    • wrap

      public static <T> StructTopic<T> wrap​(Topic topic, Struct<T> struct)
      Create a StructTopic from a generic topic.
      Type Parameters:
      T - value class (inferred from struct)
      Parameters:
      topic - generic topic
      struct - struct serialization implementation
      Returns:
      StructTopic for value class
    • wrap

      public static <T> StructTopic<T> wrap​(NetworkTableInstance inst, int handle, Struct<T> struct)
      Create a StructTopic from a native handle; generally NetworkTableInstance.getStructTopic() should be used instead.
      Type Parameters:
      T - value class (inferred from struct)
      Parameters:
      inst - Instance
      handle - Native handle
      struct - struct serialization implementation
      Returns:
      StructTopic for value class
    • subscribe

      public StructSubscriber<T> subscribe​(T defaultValue, PubSubOption... options)
      Create a new subscriber to the topic.

      The subscriber is only active as long as the returned object is not closed.

      Subscribers that do not match the published data type do not return any values. To determine if the data type matches, use the appropriate Topic functions.

      Parameters:
      defaultValue - default value used when a default is not provided to a getter function
      options - subscribe options
      Returns:
      subscriber
    • publish

      public StructPublisher<T> publish​(PubSubOption... options)
      Create a new publisher to the topic.

      The publisher is only active as long as the returned object is not closed.

      It is not possible to publish two different data types to the same topic. Conflicts between publishers are typically resolved by the server on a first-come, first-served basis. Any published values that do not match the topic's data type are dropped (ignored). To determine if the data type matches, use the appropriate Topic functions.

      Parameters:
      options - publish options
      Returns:
      publisher
    • publishEx

      public StructPublisher<T> publishEx​(String properties, PubSubOption... options)
      Create a new publisher to the topic, with type string and initial properties.

      The publisher is only active as long as the returned object is not closed.

      It is not possible to publish two different data types to the same topic. Conflicts between publishers are typically resolved by the server on a first-come, first-served basis. Any published values that do not match the topic's data type are dropped (ignored). To determine if the data type matches, use the appropriate Topic functions.

      Parameters:
      properties - JSON properties
      options - publish options
      Returns:
      publisher
      Throws:
      IllegalArgumentException - if properties is not a JSON object
    • getEntry

      public StructEntry<T> getEntry​(T defaultValue, PubSubOption... options)
      Create a new entry for the topic.

      Entries act as a combination of a subscriber and a weak publisher. The subscriber is active as long as the entry is not closed. The publisher is created when the entry is first written to, and remains active until either unpublish() is called or the entry is closed.

      It is not possible to use two different data types with the same topic. Conflicts between publishers are typically resolved by the server on a first-come, first-served basis. Any published values that do not match the topic's data type are dropped (ignored), and the entry will show no new values if the data type does not match. To determine if the data type matches, use the appropriate Topic functions.

      Parameters:
      defaultValue - default value used when a default is not provided to a getter function
      options - publish and/or subscribe options
      Returns:
      entry
    • getStruct

      public Struct<T> getStruct()
    • equals

      public boolean equals​(Object other)
      Overrides:
      equals in class Topic
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Topic