mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
Update wpilibc to use new NetworkTables package and interfaces.
This commit is contained in:
@@ -8,23 +8,18 @@
|
||||
#include "Buttons/NetworkButton.h"
|
||||
|
||||
#include "networktables/NetworkTable.h"
|
||||
#include "networktables/NetworkTableInstance.h"
|
||||
|
||||
using namespace frc;
|
||||
|
||||
NetworkButton::NetworkButton(const std::string& tableName,
|
||||
const std::string& field)
|
||||
: // TODO how is this supposed to work???
|
||||
m_netTable(NetworkTable::GetTable(tableName)),
|
||||
m_field(field) {}
|
||||
NetworkButton::NetworkButton(llvm::StringRef tableName, llvm::StringRef field)
|
||||
: NetworkButton(nt::NetworkTableInstance::GetDefault().GetTable(tableName),
|
||||
field) {}
|
||||
|
||||
NetworkButton::NetworkButton(std::shared_ptr<ITable> table,
|
||||
const std::string& field)
|
||||
: m_netTable(table), m_field(field) {}
|
||||
NetworkButton::NetworkButton(std::shared_ptr<nt::NetworkTable> table,
|
||||
llvm::StringRef field)
|
||||
: m_entry(table->GetEntry(field)) {}
|
||||
|
||||
bool NetworkButton::Get() {
|
||||
/*if (m_netTable->isConnected())
|
||||
return m_netTable->GetBoolean(m_field.c_str());
|
||||
else
|
||||
return false;*/
|
||||
return m_netTable->GetBoolean(m_field, false);
|
||||
return m_entry.GetInstance().IsConnected() && m_entry.GetBoolean(false);
|
||||
}
|
||||
|
||||
@@ -15,13 +15,7 @@
|
||||
using namespace frc;
|
||||
|
||||
bool Trigger::Grab() {
|
||||
if (Get()) {
|
||||
return true;
|
||||
} else if (m_table != nullptr) {
|
||||
return m_table->GetBoolean("pressed", false);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return Get() || (m_pressedEntry && m_pressedEntry.GetBoolean(false));
|
||||
}
|
||||
|
||||
void Trigger::WhenActive(Command* command) {
|
||||
@@ -51,11 +45,14 @@ void Trigger::ToggleWhenActive(Command* command) {
|
||||
|
||||
std::string Trigger::GetSmartDashboardType() const { return "Button"; }
|
||||
|
||||
void Trigger::InitTable(std::shared_ptr<ITable> subtable) {
|
||||
void Trigger::InitTable(std::shared_ptr<nt::NetworkTable> subtable) {
|
||||
m_table = subtable;
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("pressed", Get());
|
||||
if (m_table) {
|
||||
m_pressedEntry = m_table->GetEntry("pressed");
|
||||
m_pressedEntry.SetBoolean(Get());
|
||||
} else {
|
||||
m_pressedEntry = nt::NetworkTableEntry();
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<ITable> Trigger::GetTable() const { return m_table; }
|
||||
std::shared_ptr<nt::NetworkTable> Trigger::GetTable() const { return m_table; }
|
||||
|
||||
Reference in New Issue
Block a user