CTRE Phoenix 6 C++ 26.0.0-beta-1
Loading...
Searching...
No Matches
DifferentialConstantsConfigs.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) Cross The Road Electronics.  All rights reserved.
3 * License information can be found in CTRE_LICENSE.txt
4 * For support and suggestions contact support@ctr-electronics.com or file
5 * an issue tracker at https://github.com/CrossTheRoadElec/Phoenix-Releases
6 */
7#pragma once
8
10#include <units/current.h>
11#include <units/dimensionless.h>
12#include <units/voltage.h>
13
14namespace ctre {
15namespace phoenix6 {
16
17
18namespace configs {
19
20/**
21 * \brief Configs related to constants used for differential control
22 * of a mechanism.
23 *
24 * \details Includes the differential peak outputs.
25 */
27public:
28 constexpr DifferentialConstantsConfigs() = default;
29
30 /**
31 * \brief Maximum differential output during duty cycle based
32 * differential control modes.
33 *
34 * - Minimum Value: 0.0
35 * - Maximum Value: 1.0
36 * - Default Value: 1.0
37 * - Units: fractional
38 */
39 units::dimensionless::scalar_t PeakDifferentialDutyCycle = 1.0;
40 /**
41 * \brief Maximum differential output during voltage based
42 * differential control modes.
43 *
44 * - Minimum Value: 0.0
45 * - Maximum Value: 32
46 * - Default Value: 16
47 * - Units: V
48 */
49 units::voltage::volt_t PeakDifferentialVoltage = 16_V;
50 /**
51 * \brief Maximum differential output during torque current based
52 * differential control modes.
53 *
54 * - Minimum Value: 0.0
55 * - Maximum Value: 800
56 * - Default Value: 800
57 * - Units: A
58 */
59 units::current::ampere_t PeakDifferentialTorqueCurrent = 800_A;
60
61 /**
62 * \brief Modifies this configuration's PeakDifferentialDutyCycle parameter and returns itself for
63 * method-chaining and easier to use config API.
64 *
65 * Maximum differential output during duty cycle based differential
66 * control modes.
67 *
68 * - Minimum Value: 0.0
69 * - Maximum Value: 1.0
70 * - Default Value: 1.0
71 * - Units: fractional
72 *
73 * \param newPeakDifferentialDutyCycle Parameter to modify
74 * \returns Itself
75 */
76 constexpr DifferentialConstantsConfigs &WithPeakDifferentialDutyCycle(units::dimensionless::scalar_t newPeakDifferentialDutyCycle)
77 {
78 PeakDifferentialDutyCycle = std::move(newPeakDifferentialDutyCycle);
79 return *this;
80 }
81
82 /**
83 * \brief Modifies this configuration's PeakDifferentialVoltage parameter and returns itself for
84 * method-chaining and easier to use config API.
85 *
86 * Maximum differential output during voltage based differential
87 * control modes.
88 *
89 * - Minimum Value: 0.0
90 * - Maximum Value: 32
91 * - Default Value: 16
92 * - Units: V
93 *
94 * \param newPeakDifferentialVoltage Parameter to modify
95 * \returns Itself
96 */
97 constexpr DifferentialConstantsConfigs &WithPeakDifferentialVoltage(units::voltage::volt_t newPeakDifferentialVoltage)
98 {
99 PeakDifferentialVoltage = std::move(newPeakDifferentialVoltage);
100 return *this;
101 }
102
103 /**
104 * \brief Modifies this configuration's PeakDifferentialTorqueCurrent parameter and returns itself for
105 * method-chaining and easier to use config API.
106 *
107 * Maximum differential output during torque current based
108 * differential control modes.
109 *
110 * - Minimum Value: 0.0
111 * - Maximum Value: 800
112 * - Default Value: 800
113 * - Units: A
114 *
115 * \param newPeakDifferentialTorqueCurrent Parameter to modify
116 * \returns Itself
117 */
118 constexpr DifferentialConstantsConfigs &WithPeakDifferentialTorqueCurrent(units::current::ampere_t newPeakDifferentialTorqueCurrent)
119 {
120 PeakDifferentialTorqueCurrent = std::move(newPeakDifferentialTorqueCurrent);
121 return *this;
122 }
123
124
125
126 std::string ToString() const override;
127
128 std::string Serialize() const final;
129 ctre::phoenix::StatusCode Deserialize(std::string const &to_deserialize) final;
130};
131
132}
133}
134}
Configs related to constants used for differential control of a mechanism.
Definition DifferentialConstantsConfigs.hpp:26
units::current::ampere_t PeakDifferentialTorqueCurrent
Maximum differential output during torque current based differential control modes.
Definition DifferentialConstantsConfigs.hpp:59
ctre::phoenix::StatusCode Deserialize(std::string const &to_deserialize) final
constexpr DifferentialConstantsConfigs & WithPeakDifferentialVoltage(units::voltage::volt_t newPeakDifferentialVoltage)
Modifies this configuration's PeakDifferentialVoltage parameter and returns itself for method-chainin...
Definition DifferentialConstantsConfigs.hpp:97
units::dimensionless::scalar_t PeakDifferentialDutyCycle
Maximum differential output during duty cycle based differential control modes.
Definition DifferentialConstantsConfigs.hpp:39
constexpr DifferentialConstantsConfigs & WithPeakDifferentialTorqueCurrent(units::current::ampere_t newPeakDifferentialTorqueCurrent)
Modifies this configuration's PeakDifferentialTorqueCurrent parameter and returns itself for method-c...
Definition DifferentialConstantsConfigs.hpp:118
constexpr DifferentialConstantsConfigs & WithPeakDifferentialDutyCycle(units::dimensionless::scalar_t newPeakDifferentialDutyCycle)
Modifies this configuration's PeakDifferentialDutyCycle parameter and returns itself for method-chain...
Definition DifferentialConstantsConfigs.hpp:76
units::voltage::volt_t PeakDifferentialVoltage
Maximum differential output during voltage based differential control modes.
Definition DifferentialConstantsConfigs.hpp:49
Definition Configuration.hpp:17
Definition motor_constants.h:14