Source code for wpilib.livewindowsendable

# validated: 2017-12-21 DV de134a5c608d edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.java
#----------------------------------------------------------------------------
# Copyright (c) 2008-2017 FIRST. All Rights Reserved.
# Open Source Software - may be modified and shared by FRC teams. The code
# must be accompanied by the FIRST BSD license file in the root directory of
# the project.
#----------------------------------------------------------------------------

import warnings

from networktables import NetworkTables
from .sendable import Sendable

__all__ = ["LiveWindowSendable"]

[docs]class LiveWindowSendable(Sendable): """A special type of object that can be displayed on the live window. .. deprecated:: 2018.0 Use :class:`.Sendable` directly instead. """ def __init_subclass__(cls, **kwargs): super().__init_subclass__(**kwargs) warnings.warn('LiveWindowSendable is deprecated, use Sendable directly instead', DeprecationWarning, stacklevel=2)
[docs] def updateTable(self): """Update the table for this sendable object with the latest values. """ raise NotImplementedError
[docs] def startLiveWindowMode(self): """Start having this sendable object automatically respond to value changes reflect the value on the table. Default implementation will add self.valueChanged (if it exists) as a table listener on "Value". """ if hasattr(self, "valueChanged"): valueEntry = getattr(self, "valueEntry", None) valueListener = getattr(self, "valueListener", None) if valueEntry is None or valueListener is not None: return self.valueListener = valueEntry.addListener( self.valueChanged, NetworkTables.NotifyFlags.IMMEDIATE | NetworkTables.NotifyFlags.NEW | NetworkTables.NotifyFlags.UPDATE)
[docs] def stopLiveWindowMode(self): """Stop having this sendable object automatically respond to value changes. """ # TODO: Broken, should only remove the listener from "Value" only. valueEntry = getattr(self, "valueEntry", None) valueListener = getattr(self, "valueListener", None) if valueEntry is None or valueListener is None: return valueEntry.removeListener(valueListener) self.valueListener = None
[docs] def getName(self): return ""
[docs] def setName(self, name): pass
[docs] def getSubsystem(self): return ""
[docs] def setSubsystem(self, subsystem): pass
[docs] def initSendable(self, builder): builder.setUpdateTable(self.updateTable)