/*----------------------------------------------------------------------------*/ /* Copyright (c) 2017-2018 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. */ /*----------------------------------------------------------------------------*/ #include "SmartDashboard/SendableBase.h" #include "LiveWindow/LiveWindow.h" using namespace frc; SendableBase::SendableBase(bool addLiveWindow) { if (addLiveWindow) LiveWindow::GetInstance()->Add(this); } SendableBase::~SendableBase() { LiveWindow::GetInstance()->Remove(this); } std::string SendableBase::GetName() const { std::lock_guard lock(m_mutex); return m_name; } void SendableBase::SetName(const wpi::Twine& name) { std::lock_guard lock(m_mutex); m_name = name.str(); } std::string SendableBase::GetSubsystem() const { std::lock_guard lock(m_mutex); return m_subsystem; } void SendableBase::SetSubsystem(const wpi::Twine& subsystem) { std::lock_guard lock(m_mutex); m_subsystem = subsystem.str(); } void SendableBase::AddChild(std::shared_ptr child) { LiveWindow::GetInstance()->AddChild(this, child); } void SendableBase::AddChild(void* child) { LiveWindow::GetInstance()->AddChild(this, child); } void SendableBase::SetName(const wpi::Twine& moduleType, int channel) { SetName(moduleType + wpi::Twine('[') + wpi::Twine(channel) + wpi::Twine(']')); } void SendableBase::SetName(const wpi::Twine& moduleType, int moduleNumber, int channel) { SetName(moduleType + wpi::Twine('[') + wpi::Twine(moduleNumber) + wpi::Twine(',') + wpi::Twine(channel) + wpi::Twine(']')); }