Package edu.wpi.first.util.sendable
Class SendableRegistry
- java.lang.Object
-
- edu.wpi.first.util.sendable.SendableRegistry
-
public class SendableRegistry extends Object
The SendableRegistry class is the public interface for registering sensors and actuators for use on dashboards and LiveWindow.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SendableRegistry.CallbackData
Data passed to foreachLiveWindow() callback function.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
add(Sendable sendable, String name)
Adds an object to the registry.static void
add(Sendable sendable, String moduleType, int channel)
Adds an object to the registry.static void
add(Sendable sendable, String moduleType, int moduleNumber, int channel)
Adds an object to the registry.static void
add(Sendable sendable, String subsystem, String name)
Adds an object to the registry.static void
addChild(Sendable parent, Object child)
Adds a child object to an object.static void
addLW(Sendable sendable, String name)
Adds an object to the registry and LiveWindow.static void
addLW(Sendable sendable, String moduleType, int channel)
Adds an object to the registry and LiveWindow.static void
addLW(Sendable sendable, String moduleType, int moduleNumber, int channel)
Adds an object to the registry and LiveWindow.static void
addLW(Sendable sendable, String subsystem, String name)
Adds an object to the registry and LiveWindow.static boolean
contains(Sendable sendable)
Determines if an object is in the registry.static void
disableLiveWindow(Sendable sendable)
Disables LiveWindow for an object.static void
enableLiveWindow(Sendable sendable)
Enables LiveWindow for an object.static void
foreachLiveWindow(int dataHandle, Consumer<SendableRegistry.CallbackData> callback)
Iterates over LiveWindow-enabled objects in the registry.static Object
getData(Sendable sendable, int handle)
Gets arbitrary data associated with an object in the registry.static int
getDataHandle()
Gets a unique handle for setting/getting data with setData() and getData().static String
getName(Sendable sendable)
Gets the name of an object.static String
getSubsystem(Sendable sendable)
Gets the subsystem name of an object.static void
publish(Sendable sendable, SendableBuilder builder)
Publishes an object in the registry to a builder.static boolean
remove(Sendable sendable)
Removes an object from the registry.static Object
setData(Sendable sendable, int handle, Object data)
Associates arbitrary data with an object in the registry.static void
setLiveWindowBuilderFactory(Supplier<SendableBuilder> factory)
Sets the factory for LiveWindow builders.static void
setName(Sendable sendable, String name)
Sets the name of an object.static void
setName(Sendable sendable, String moduleType, int channel)
Sets the name of an object with a channel number.static void
setName(Sendable sendable, String moduleType, int moduleNumber, int channel)
Sets the name of an object with a module and channel number.static void
setName(Sendable sendable, String subsystem, String name)
Sets both the subsystem name and device name of an object.static void
setSubsystem(Sendable sendable, String subsystem)
Sets the subsystem name of an object.static void
update(Sendable sendable)
Updates network table information from an object.
-
-
-
Method Detail
-
setLiveWindowBuilderFactory
public static void setLiveWindowBuilderFactory(Supplier<SendableBuilder> factory)
Sets the factory for LiveWindow builders.- Parameters:
factory
- factory function
-
add
public static void add(Sendable sendable, String name)
Adds an object to the registry.- Parameters:
sendable
- object to addname
- component name
-
add
public static void add(Sendable sendable, String moduleType, int channel)
Adds an object to the registry.- Parameters:
sendable
- object to addmoduleType
- A string that defines the module name in the label for the valuechannel
- The channel number the device is plugged into
-
add
public static void add(Sendable sendable, String moduleType, int moduleNumber, int channel)
Adds an object to the registry.- Parameters:
sendable
- object to addmoduleType
- A string that defines the module name in the label for the valuemoduleNumber
- The number of the particular module typechannel
- The channel number the device is plugged into
-
add
public static void add(Sendable sendable, String subsystem, String name)
Adds an object to the registry.- Parameters:
sendable
- object to addsubsystem
- subsystem namename
- component name
-
addLW
public static void addLW(Sendable sendable, String name)
Adds an object to the registry and LiveWindow.- Parameters:
sendable
- object to addname
- component name
-
addLW
public static void addLW(Sendable sendable, String moduleType, int channel)
Adds an object to the registry and LiveWindow.- Parameters:
sendable
- object to addmoduleType
- A string that defines the module name in the label for the valuechannel
- The channel number the device is plugged into
-
addLW
public static void addLW(Sendable sendable, String moduleType, int moduleNumber, int channel)
Adds an object to the registry and LiveWindow.- Parameters:
sendable
- object to addmoduleType
- A string that defines the module name in the label for the valuemoduleNumber
- The number of the particular module typechannel
- The channel number the device is plugged into
-
addLW
public static void addLW(Sendable sendable, String subsystem, String name)
Adds an object to the registry and LiveWindow.- Parameters:
sendable
- object to addsubsystem
- subsystem namename
- component name
-
addChild
public static void addChild(Sendable parent, Object child)
Adds a child object to an object. Adds the child object to the registry if it's not already present.- Parameters:
parent
- parent objectchild
- child object
-
remove
public static boolean remove(Sendable sendable)
Removes an object from the registry.- Parameters:
sendable
- object to remove- Returns:
- true if the object was removed; false if it was not present
-
contains
public static boolean contains(Sendable sendable)
Determines if an object is in the registry.- Parameters:
sendable
- object to check- Returns:
- True if in registry, false if not.
-
getName
public static String getName(Sendable sendable)
Gets the name of an object.- Parameters:
sendable
- object- Returns:
- Name (empty if object is not in registry)
-
setName
public static void setName(Sendable sendable, String name)
Sets the name of an object.- Parameters:
sendable
- objectname
- name
-
setName
public static void setName(Sendable sendable, String moduleType, int channel)
Sets the name of an object with a channel number.- Parameters:
sendable
- objectmoduleType
- A string that defines the module name in the label for the valuechannel
- The channel number the device is plugged into
-
setName
public static void setName(Sendable sendable, String moduleType, int moduleNumber, int channel)
Sets the name of an object with a module and channel number.- Parameters:
sendable
- objectmoduleType
- A string that defines the module name in the label for the valuemoduleNumber
- The number of the particular module typechannel
- The channel number the device is plugged into
-
setName
public static void setName(Sendable sendable, String subsystem, String name)
Sets both the subsystem name and device name of an object.- Parameters:
sendable
- objectsubsystem
- subsystem namename
- device name
-
getSubsystem
public static String getSubsystem(Sendable sendable)
Gets the subsystem name of an object.- Parameters:
sendable
- object- Returns:
- Subsystem name (empty if object is not in registry)
-
setSubsystem
public static void setSubsystem(Sendable sendable, String subsystem)
Sets the subsystem name of an object.- Parameters:
sendable
- objectsubsystem
- subsystem name
-
getDataHandle
public static int getDataHandle()
Gets a unique handle for setting/getting data with setData() and getData().- Returns:
- Handle
-
setData
public static Object setData(Sendable sendable, int handle, Object data)
Associates arbitrary data with an object in the registry.- Parameters:
sendable
- objecthandle
- data handle returned by getDataHandle()data
- data to set- Returns:
- Previous data (may be null)
-
getData
public static Object getData(Sendable sendable, int handle)
Gets arbitrary data associated with an object in the registry.- Parameters:
sendable
- objecthandle
- data handle returned by getDataHandle()- Returns:
- data (may be null if none associated)
-
enableLiveWindow
public static void enableLiveWindow(Sendable sendable)
Enables LiveWindow for an object.- Parameters:
sendable
- object
-
disableLiveWindow
public static void disableLiveWindow(Sendable sendable)
Disables LiveWindow for an object.- Parameters:
sendable
- object
-
publish
public static void publish(Sendable sendable, SendableBuilder builder)
Publishes an object in the registry to a builder.- Parameters:
sendable
- objectbuilder
- sendable builder
-
update
public static void update(Sendable sendable)
Updates network table information from an object.- Parameters:
sendable
- object
-
foreachLiveWindow
public static void foreachLiveWindow(int dataHandle, Consumer<SendableRegistry.CallbackData> callback)
Iterates over LiveWindow-enabled objects in the registry. It is *not* safe to call other SendableRegistry functions from the callback.- Parameters:
dataHandle
- data handle to get data object passed to callbackcallback
- function to call for each object
-
-