diff --git a/wpilibc/src/generated/main/native/cpp/motorcontrol/SparkMini.cpp b/wpilibc/src/generated/main/native/cpp/motorcontrol/SparkMini.cpp new file mode 100644 index 0000000000..450653e6b8 --- /dev/null +++ b/wpilibc/src/generated/main/native/cpp/motorcontrol/SparkMini.cpp @@ -0,0 +1,20 @@ +// 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. + +// THIS FILE WAS AUTO-GENERATED BY ./wpilibc/generate_pwm_motor_controllers.py. DO NOT MODIFY + +#include "frc/motorcontrol/SparkMini.h" + +#include + +using namespace frc; + +SparkMini::SparkMini(int channel) : PWMMotorController("SparkMini", channel) { + m_pwm.SetBounds(2.5_ms, 1.51_ms, 1.5_ms, 1.49_ms, 0.5_ms); + m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); + m_pwm.SetSpeed(0.0); + m_pwm.SetZeroLatch(); + + HAL_Report(HALUsageReporting::kResourceType_RevSPARK, GetChannel() + 1); +} diff --git a/wpilibc/src/generated/main/native/include/frc/motorcontrol/SparkMini.h b/wpilibc/src/generated/main/native/include/frc/motorcontrol/SparkMini.h new file mode 100644 index 0000000000..8498586ac6 --- /dev/null +++ b/wpilibc/src/generated/main/native/include/frc/motorcontrol/SparkMini.h @@ -0,0 +1,43 @@ +// 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. + +// THIS FILE WAS AUTO-GENERATED BY ./wpilibc/generate_pwm_motor_controllers.py. DO NOT MODIFY + +#pragma once + +#include "frc/motorcontrol/PWMMotorController.h" + +namespace frc { + +/** + * REV Robotics SPARKMini Motor Controller with PWM control. + * + * Note that the SPARKMini uses the following bounds for PWM values. These + * values should work reasonably well for most controllers, but if users + * experience issues such as asymmetric behavior around the deadband or + * inability to saturate the controller in either direction, calibration is + * recommended. The calibration procedure can be found in the SPARKMini User + * Manual available from REV Robotics. + * + * \li 2.500ms = full "forward" + * \li 1.510ms = the "high end" of the deadband range + * \li 1.500ms = center of the deadband range (off) + * \li 1.490ms = the "low end" of the deadband range + * \li 0.500ms = full "reverse" + */ +class SparkMini : public PWMMotorController { + public: + /** + * Constructor for a SPARKMini connected via PWM. + * + * @param channel The PWM channel that the SPARKMini is attached to. 0-9 are + * on-board, 10-19 are on the MXP port + */ + explicit SparkMini(int channel); + + SparkMini(SparkMini&&) = default; + SparkMini& operator=(SparkMini&&) = default; +}; + +} // namespace frc diff --git a/wpilibj/src/generate/pwm_motor_controllers.json b/wpilibj/src/generate/pwm_motor_controllers.json index a2c9feab0c..c319b97fa0 100644 --- a/wpilibj/src/generate/pwm_motor_controllers.json +++ b/wpilibj/src/generate/pwm_motor_controllers.json @@ -168,5 +168,18 @@ "deadbandMin": 1.480, "min": 0.997 } + }, + { + "name": "SparkMini", + "Manufacturer": "REV Robotics", + "DisplayName": "SPARKMini", + "ResourceName": "RevSPARK", + "pulse_width_ms": { + "max": 2.5, + "deadbandMax": 1.51, + "center": 1.5, + "deadbandMin": 1.49, + "min": 0.5 + } } ] diff --git a/wpilibj/src/generated/main/java/edu/wpi/first/wpilibj/motorcontrol/SparkMini.java b/wpilibj/src/generated/main/java/edu/wpi/first/wpilibj/motorcontrol/SparkMini.java new file mode 100644 index 0000000000..f4fea85bbc --- /dev/null +++ b/wpilibj/src/generated/main/java/edu/wpi/first/wpilibj/motorcontrol/SparkMini.java @@ -0,0 +1,48 @@ +// 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. + +// THIS FILE WAS AUTO-GENERATED BY ./wpilibj/generate_pwm_motor_controllers.py. DO NOT MODIFY + +package edu.wpi.first.wpilibj.motorcontrol; + +import edu.wpi.first.hal.FRCNetComm.tResourceType; +import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; + +/** + * REV Robotics SPARKMini Motor Controller. + * + *

Note that the SPARKMini uses the following bounds for PWM values. These values should work + * reasonably well for most controllers, but if users experience issues such as asymmetric behavior + * around the deadband or inability to saturate the controller in either direction, calibration is + * recommended. The calibration procedure can be found in the SPARKMini User Manual available from + * REV Robotics. + * + *

+ */ +public class SparkMini extends PWMMotorController { + /** + * Constructor. + * + * @param channel The PWM channel that the SPARKMini is attached to. 0-9 are on-board, 10-19 + * are on the MXP port + */ + @SuppressWarnings("this-escape") + public SparkMini(final int channel) { + super("SparkMini", channel); + + m_pwm.setBoundsMicroseconds(2500, 1510, 1500, 1490, 500); + m_pwm.setPeriodMultiplier(PWM.PeriodMultiplier.k1X); + m_pwm.setSpeed(0.0); + m_pwm.setZeroLatch(); + + HAL.report(tResourceType.kResourceType_RevSPARK, getChannel() + 1); + } +}