// Copyright (c) FIRST and other WPILib contributors. // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. #pragma once #include #include #include #include class Robot : public frc::TimedRobot { public: Robot(); void RobotPeriodic() override; private: static constexpr int kLength = 60; // SmartIO port 1 frc::AddressableLED m_led{1}; std::array m_ledBuffer; // Reuse the buffer // Our LED strip has a density of 120 LEDs per meter units::meter_t kLedSpacing{1 / 120.0}; // Create an LED pattern that will display a rainbow across // all hues at maximum saturation and half brightness frc::LEDPattern m_rainbow = frc::LEDPattern::Rainbow(255, 128); // Create a new pattern that scrolls the rainbow pattern across the LED // strip, moving at a speed of 1 meter per second. frc::LEDPattern m_scrollingRainbow = m_rainbow.ScrollAtAbsoluteSpeed(1_mps, kLedSpacing); };