blob: 85e2d450cf639f4e4f9b9356139d948a934d26ab [file] [log] [blame]
#include "aos/common/libstdc++/memory"
#include "aos/crio/controls/ControlsManager.h"
#include "aos/crio/motor_server/crio_control_loop_runner.h"
#include "aos/common/sensors/sensor_broadcaster.h"
#include "frc971/queues/sensor_values.h"
#include "frc971/input/sensor_packer.h"
#include "frc971/input/sensor_unpacker.h"
using ::std::unique_ptr;
namespace frc971 {
class MyRobot : public ::aos::crio::ControlsManager {
public:
MyRobot() {}
virtual void CreateObjects() {
packer_ = unique_ptr< ::frc971::SensorPacker>( new ::frc971::SensorPacker());
unpacker_ = unique_ptr< ::frc971::SensorUnpacker>( new ::frc971::SensorUnpacker());
broadcaster_ = unique_ptr< ::aos::sensors::SensorBroadcaster< ::frc971::sensor_values>>(
new ::aos::sensors::SensorBroadcaster< ::frc971::sensor_values>(packer_.get()));
control_loop_runner_ = unique_ptr< ::aos::crio::CRIOControlLoopRunner< ::frc971::sensor_values>>(new ::aos::crio::CRIOControlLoopRunner< ::frc971::sensor_values>(broadcaster_.get(), unpacker_.get()));
}
virtual void RegisterControlLoops() {
//control_loop_runner_->AddControlLoop(&shooter_);
}
virtual void StartSensorBroadcasters() {
broadcaster_->Start();
}
unique_ptr< ::frc971::SensorPacker> packer_;
unique_ptr< ::frc971::SensorUnpacker> unpacker_;
unique_ptr< ::aos::sensors::SensorBroadcaster< ::frc971::sensor_values>> broadcaster_;
unique_ptr< ::aos::crio::CRIOControlLoopRunner< ::frc971::sensor_values>>
control_loop_runner_;
};
} // namespace frc971
START_ROBOT_CLASS(::frc971::MyRobot);