WPILibC++ 2027.0.0-alpha-5
Loading...
Searching...
No Matches
ExpansionHubPositionConstants.hpp
Go to the documentation of this file.
1// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
4
5#pragma once
6
9
10namespace wpi {
12
13/** This class contains feedback and feedforward constants for an ExpansionHub
14 * motor. */
16 public:
17 /**
18 * Sets the PID Controller gain parameters.
19 *
20 * Set the proportional, integral, and differential coefficients.
21 *
22 * @param p The proportional coefficient.
23 * @param i The integral coefficient.
24 * @param d The derivative coefficient.
25 * @return This object, for method chaining.
26 */
27 ExpansionHubPositionConstants& SetPID(double p, double i, double d);
28
29 /**
30 * Sets the feed forward gains to the specified values.
31 *
32 * The units should be radians for angular systems and meters for linear
33 * systems.
34 *
35 * The motor control period is 10ms
36 *
37 * @param s The static gain in volts.
38 * @return This object, for method chaining.
39 */
41
42 /**
43 * Enables continuous input.
44 *
45 * Rather then using the max and min input range as constraints, it considers
46 * them to be the same point and automatically calculates the shortest route
47 * to the setpoint.
48 *
49 * @param minimumInput The minimum value expected from the input.
50 * @param maximumInput The maximum value expected from the input.
51 * @return This object, for method chaining.
52 */
54 double maximumInput);
55
56 /**
57 * Disable continuous input mode.
58 *
59 * @return This object, for method chaining.
60 */
62
65 delete;
66
69 default;
70
71 friend class ExpansionHubMotor;
72
73 private:
74 ExpansionHubPositionConstants(int hubNumber, int motorNumber);
75
76 wpi::nt::DoublePublisher m_pPublisher;
77 wpi::nt::DoublePublisher m_iPublisher;
78 wpi::nt::DoublePublisher m_dPublisher;
79
80 wpi::nt::DoublePublisher m_sPublisher;
81
82 wpi::nt::BooleanPublisher m_continuousPublisher;
83 wpi::nt::DoublePublisher m_continuousMinimumPublisher;
84 wpi::nt::DoublePublisher m_continuousMaximumPublisher;
85};
86} // namespace wpi
This class controls a specific motor and encoder hooked up to an ExpansionHub.
Definition ExpansionHubMotor.hpp:20
ExpansionHubPositionConstants & EnableContinuousInput(double minimumInput, double maximumInput)
Enables continuous input.
ExpansionHubPositionConstants & operator=(ExpansionHubPositionConstants &&)=default
ExpansionHubPositionConstants & operator=(ExpansionHubPositionConstants &)=delete
ExpansionHubPositionConstants & SetPID(double p, double i, double d)
Sets the PID Controller gain parameters.
ExpansionHubPositionConstants(ExpansionHubPositionConstants &&)=default
ExpansionHubPositionConstants(ExpansionHubPositionConstants &)=delete
ExpansionHubPositionConstants & SetS(double s)
Sets the feed forward gains to the specified values.
ExpansionHubPositionConstants & DisableContinuousInput()
Disable continuous input mode.
friend class ExpansionHubMotor
Definition ExpansionHubPositionConstants.hpp:71
NetworkTables Boolean publisher.
Definition BooleanTopic.hpp:126
NetworkTables Double publisher.
Definition DoubleTopic.hpp:126
T * p
Definition format.h:758
Definition CvSource.hpp:15