Merge changes I16b5b2e9,Ib0cfb846,I43d96838
* changes:
Add code for prototyping with the 2012 drivebase
Make fetching PDP values optional
Add a LOG at init time to help with debugging
diff --git a/frc971/wpilib/BUILD b/frc971/wpilib/BUILD
index 7a7d7bb..4844cd3 100644
--- a/frc971/wpilib/BUILD
+++ b/frc971/wpilib/BUILD
@@ -189,3 +189,13 @@
'//aos/linux_code:init',
],
)
+
+cc_library(
+ name = 'wpilib_robot_base',
+ hdrs = [
+ 'wpilib_robot_base.h',
+ ],
+ deps = [
+ '//aos/externals:wpilib',
+ ],
+)
diff --git a/frc971/wpilib/wpilib_robot_base.h b/frc971/wpilib/wpilib_robot_base.h
new file mode 100644
index 0000000..231a21a
--- /dev/null
+++ b/frc971/wpilib/wpilib_robot_base.h
@@ -0,0 +1,30 @@
+#ifndef FRC971_WPILIB_NEWROBOTBASE_H_
+#define FRC971_WPILIB_NEWROBOTBASE_H_
+
+#include "RobotBase.h"
+
+namespace frc971 {
+namespace wpilib {
+
+class WPILibRobotBase {
+public:
+ virtual void Run() = 0;
+};
+
+#define AOS_ROBOT_CLASS(_ClassName_) \
+ START_ROBOT_CLASS(::frc971::wpilib::WPILibAdapterRobot<_ClassName_>)
+
+template <typename T>
+class WPILibAdapterRobot : public RobotBase {
+ public:
+ void StartCompetition() override { robot_.Run(); }
+
+ private:
+ T robot_;
+};
+
+}
+}
+
+#endif // FRC971_WPILIB_NEWROBOTBASE_H_
+
diff --git a/y2014/wpilib/BUILD b/y2014/wpilib/BUILD
index 499049d..38853ca 100644
--- a/y2014/wpilib/BUILD
+++ b/y2014/wpilib/BUILD
@@ -28,6 +28,7 @@
'//frc971/wpilib:gyro_sender',
'//frc971/wpilib:dma_edge_counting',
'//frc971/wpilib:interrupt_edge_counting',
+ '//frc971/wpilib:wpilib_robot_base',
'//frc971/wpilib:encoder_and_potentiometer',
'//frc971/control_loops:queues',
'//frc971/wpilib:logging_queue',
diff --git a/y2014/wpilib/wpilib_interface.cc b/y2014/wpilib/wpilib_interface.cc
index fdd9b5c..a399601 100644
--- a/y2014/wpilib/wpilib_interface.cc
+++ b/y2014/wpilib/wpilib_interface.cc
@@ -13,7 +13,7 @@
#include "AnalogInput.h"
#include "Compressor.h"
#include "Relay.h"
-#include "RobotBase.h"
+#include "frc971/wpilib/wpilib_robot_base.h"
#include "dma.h"
#ifndef WPILIB2015
#include "DigitalGlitchFilter.h"
@@ -685,14 +685,14 @@
::std::unique_ptr<Talon> intake2_talon_;
};
-class WPILibRobot : public RobotBase {
+class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
public:
::std::unique_ptr<Encoder> make_encoder(int index) {
return make_unique<Encoder>(10 + index * 2, 11 + index * 2, false,
Encoder::k4X);
}
- virtual void StartCompetition() {
+ void Run() override {
::aos::InitNRT();
::aos::SetCurrentThreadName("StartCompetition");
@@ -801,4 +801,4 @@
} // namespace y2014
-START_ROBOT_CLASS(::y2014::wpilib::WPILibRobot);
+AOS_ROBOT_CLASS(::y2014::wpilib::WPILibRobot);
diff --git a/y2014_bot3/wpilib/BUILD b/y2014_bot3/wpilib/BUILD
index ea8409a..ff64e60 100644
--- a/y2014_bot3/wpilib/BUILD
+++ b/y2014_bot3/wpilib/BUILD
@@ -24,6 +24,7 @@
'//frc971/wpilib:gyro_sender',
'//frc971/control_loops:queues',
'//frc971/wpilib:logging_queue',
+ '//frc971/wpilib:wpilib_robot_base',
'//frc971/wpilib:wpilib_interface',
'//frc971/wpilib:pdp_fetcher',
'//y2014_bot3/autonomous:auto_queue',
diff --git a/y2014_bot3/wpilib/wpilib_interface.cc b/y2014_bot3/wpilib/wpilib_interface.cc
index 3b6c8b1..814bfe2 100644
--- a/y2014_bot3/wpilib/wpilib_interface.cc
+++ b/y2014_bot3/wpilib/wpilib_interface.cc
@@ -13,7 +13,7 @@
#include "AnalogInput.h"
#include "Compressor.h"
#include "Relay.h"
-#include "RobotBase.h"
+#include "frc971/wpilib/wpilib_robot_base.h"
#include "dma.h"
#include "DigitalInput.h"
#undef ERROR
@@ -330,13 +330,13 @@
return std::unique_ptr<T>(new T(std::forward<U>(u)...));
}
-class WPILibRobot : public RobotBase {
+class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
public:
::std::unique_ptr<Encoder> make_encoder(int index) {
return make_unique<Encoder>(10 + index * 2, 11 + index * 2, false,
Encoder::k4X);
}
- virtual void StartCompetition() {
+ void Run() override {
::aos::InitNRT();
::aos::SetCurrentThreadName("StartCompetition");
@@ -419,4 +419,4 @@
} // namespace wpilib
} // namespace frc971
-START_ROBOT_CLASS(::frc971::wpilib::WPILibRobot);
+AOS_ROBOT_CLASS(::frc971::wpilib::WPILibRobot);
diff --git a/y2015/wpilib/BUILD b/y2015/wpilib/BUILD
index 6966c9f..0bdf7b3 100644
--- a/y2015/wpilib/BUILD
+++ b/y2015/wpilib/BUILD
@@ -30,6 +30,7 @@
'//frc971/wpilib:dma_edge_counting',
'//frc971/wpilib:interrupt_edge_counting',
'//frc971/wpilib:encoder_and_potentiometer',
+ '//frc971/wpilib:wpilib_robot_base',
'//frc971/control_loops:queues',
'//frc971/wpilib:logging_queue',
'//frc971/wpilib:wpilib_interface',
diff --git a/y2015/wpilib/wpilib_interface.cc b/y2015/wpilib/wpilib_interface.cc
index 4d49b41..9a6097e 100644
--- a/y2015/wpilib/wpilib_interface.cc
+++ b/y2015/wpilib/wpilib_interface.cc
@@ -13,7 +13,7 @@
#include "AnalogInput.h"
#include "Compressor.h"
#include "Relay.h"
-#include "RobotBase.h"
+#include "frc971/wpilib/wpilib_robot_base.h"
#include "dma.h"
#ifndef WPILIB2015
#include "DigitalGlitchFilter.h"
@@ -633,13 +633,13 @@
return std::unique_ptr<T>(new T(std::forward<U>(u)...));
}
-class WPILibRobot : public RobotBase {
+class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
public:
::std::unique_ptr<Encoder> encoder(int index) {
return make_unique<Encoder>(10 + index * 2, 11 + index * 2, false,
Encoder::k4X);
}
- virtual void StartCompetition() {
+ virtual void Run() {
::aos::InitNRT();
::aos::SetCurrentThreadName("StartCompetition");
@@ -755,4 +755,4 @@
} // namespace frc971
-START_ROBOT_CLASS(::frc971::wpilib::WPILibRobot);
+AOS_ROBOT_CLASS(::frc971::wpilib::WPILibRobot);
diff --git a/y2015_bot3/wpilib/BUILD b/y2015_bot3/wpilib/BUILD
index 6fae2e4..89742c9 100644
--- a/y2015_bot3/wpilib/BUILD
+++ b/y2015_bot3/wpilib/BUILD
@@ -22,6 +22,7 @@
'//frc971/wpilib:loop_output_handler',
'//frc971/wpilib:buffered_pcm',
'//frc971/wpilib:gyro_sender',
+ '//frc971/wpilib:wpilib_robot_base',
'//frc971/wpilib:wpilib_interface',
'//frc971/control_loops:queues',
'//frc971/wpilib:logging_queue',
diff --git a/y2015_bot3/wpilib/wpilib_interface.cc b/y2015_bot3/wpilib/wpilib_interface.cc
index de694ab..02230f0 100644
--- a/y2015_bot3/wpilib/wpilib_interface.cc
+++ b/y2015_bot3/wpilib/wpilib_interface.cc
@@ -13,7 +13,7 @@
#include "AnalogInput.h"
#include "Compressor.h"
#include "Relay.h"
-#include "RobotBase.h"
+#include "frc971/wpilib/wpilib_robot_base.h"
#include "dma.h"
#ifndef WPILIB2015
#include "DigitalGlitchFilter.h"
@@ -450,13 +450,13 @@
return std::unique_ptr<T>(new T(std::forward<U>(u)...));
}
-class WPILibRobot : public RobotBase {
+class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
public:
::std::unique_ptr<Encoder> encoder(int index) {
return make_unique<Encoder>(10 + index * 2, 11 + index * 2, false,
Encoder::k4X);
}
- virtual void StartCompetition() {
+ virtual void Run() {
::aos::InitNRT();
::aos::SetCurrentThreadName("StartCompetition");
@@ -549,4 +549,4 @@
} // namespace wpilib
} // namespace y2015_bot3
-START_ROBOT_CLASS(::y2015_bot3::wpilib::WPILibRobot);
+AOS_ROBOT_CLASS(::y2015_bot3::wpilib::WPILibRobot);