REVLib - C++
SignalsConfig.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024-2026 REV Robotics
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * 3. Neither the name of REV Robotics nor the names of its
13 * contributors may be used to endorse or promote products derived from
14 * this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#pragma once
30
32
33namespace rev::spark {
34
35class SignalsConfig : public BaseConfig {
36public:
37 SignalsConfig() = default;
38 ~SignalsConfig() override = default;
39
40 SignalsConfig(const SignalsConfig&) = default;
42 SignalsConfig(SignalsConfig&&) noexcept = delete;
43 SignalsConfig& operator=(SignalsConfig&&) noexcept = delete;
44
55
71
87 SignalsConfig& BusVoltagePeriodMs(int periodMs);
88
105
122
138 SignalsConfig& LimitsPeriodMs(int periodMs);
139
151 SignalsConfig& FaultsPeriodMs(int periodMs);
152
170 SignalsConfig& FaultsAlwaysOn(bool enabled);
171
183 SignalsConfig& WarningsPeriodMs(int periodMs);
184
202 SignalsConfig& WarningsAlwaysOn(bool enabled);
203
215
233
245
263
275
293
305
323
335
353
366
385
398
417
429
447
459
477
490
508
520 SignalsConfig& DutyCyclePeriodMs(int periodMs);
521
539
551
569
580 SignalsConfig& SetpointPeriodMs(int periodMs);
581
598 SignalsConfig& SetpointAlwaysOn(bool enabled);
599
610 SignalsConfig& IsAtSetpointPeriodMs(int periodMs);
611
628 SignalsConfig& IsAtSetpointAlwaysOn(bool enabled);
629
641 SignalsConfig& SelectedSlotPeriodMs(int periodMs);
642
659 SignalsConfig& SelectedSlotAlwaysOn(bool enabled);
660
673
692
705
724
725private:
726 void SetPeriodMsCore(int parameterId, int periodMs);
727 void SetAlwaysOnCore(int parameterId, bool enabled);
728}; // class SignalsConfig
729
730} // namespace rev::spark
Definition: BaseConfig.h:40
Definition: SignalsConfig.h:35
SignalsConfig & AnalogVelocityPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:117
SignalsConfig & DutyCyclePeriodMs(int periodMs)
Definition: SignalsConfig.cpp:191
SignalsConfig & WarningsAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:82
SignalsConfig & UnadjustedDutyCyclePeriodAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:185
SignalsConfig & PrimaryEncoderVelocityPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:87
SignalsConfig & SetpointPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:212
SignalsConfig & AnalogVoltageAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:112
SignalsConfig & ExternalOrAltEncoderPositionAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:153
SignalsConfig & SelectedSlotAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:237
SignalsConfig & DutyCyclePeriodAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:196
SignalsConfig & AbsoluteEncoderPositionAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:174
SignalsConfig & operator=(const SignalsConfig &)=delete
SignalsConfig(const SignalsConfig &)=default
SignalsConfig(SignalsConfig &&) noexcept=delete
SignalsConfig & PrimaryEncoderPositionPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:97
SignalsConfig & PrimaryEncoderPositionAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:102
SignalsConfig & ExternalOrAltEncoderVelocity(int periodMs)
Definition: SignalsConfig.cpp:137
SignalsConfig & OutputCurrentPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:52
SignalsConfig & LimitsPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:62
SignalsConfig & ExternalOrAltEncoderVelocityAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:142
SignalsConfig & IAccumulationPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:202
SignalsConfig & IAccumulationAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:207
SignalsConfig & AnalogVelocityAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:122
SignalsConfig & AnalogPositionAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:132
SignalsConfig & Apply(SignalsConfig &config)
Definition: SignalsConfig.cpp:37
SignalsConfig & AbsoluteEncoderPositionPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:169
SignalsConfig & UnadjustedDutyCyclePeriodMs(int periodMs)
Definition: SignalsConfig.cpp:179
SignalsConfig & MaxMotionSetpointVelocityPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:252
SignalsConfig & BusVoltagePeriodMs(int periodMs)
Definition: SignalsConfig.cpp:47
SignalsConfig & AbsoluteEncoderVelocityPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:159
SignalsConfig & SetpointAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:217
SignalsConfig & MaxMotionSetpointPositionPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:242
SignalsConfig & WarningsPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:77
SignalsConfig & AppliedOutputPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:42
SignalsConfig & IsAtSetpointPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:222
SignalsConfig & AbsoluteEncoderVelocityAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:164
SignalsConfig & PrimaryEncoderVelocityAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:92
SignalsConfig & FaultsPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:67
SignalsConfig & SelectedSlotPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:232
~SignalsConfig() override=default
SignalsConfig & ExternalOrAltEncoderPosition(int periodMs)
Definition: SignalsConfig.cpp:148
SignalsConfig & AnalogVoltagePeriodMs(int periodMs)
Definition: SignalsConfig.cpp:107
SignalsConfig & IsAtSetpointAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:227
SignalsConfig & AnalogPositionPeriodMs(int periodMs)
Definition: SignalsConfig.cpp:127
SignalsConfig & MaxMotionSetpointVelocityAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:257
SignalsConfig & MotorTemperaturePeriodMs(int periodMs)
Definition: SignalsConfig.cpp:57
SignalsConfig & MaxMotionSetpointPositionAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:247
SignalsConfig & FaultsAlwaysOn(bool enabled)
Definition: SignalsConfig.cpp:72
Definition: AnalogInput.h:35