Update wpilibc to use new NetworkTables package and interfaces.

This commit is contained in:
Peter Johnson
2017-09-02 00:17:43 -07:00
parent 4e80570c4c
commit 040a8c6bcc
74 changed files with 937 additions and 721 deletions

View File

@@ -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);
}

View File

@@ -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; }