CTRE_Phoenix 5.20.2
IMotorControllerEnhanced.h
1#pragma once
2
3#include "ctre/phoenix/motorcontrol/ControlMode.h"
4#include "ctre/phoenix/motorcontrol/ControlFrame.h"
5#include "ctre/phoenix/motorcontrol/IMotorController.h"
6#include "ctre/phoenix/motorcontrol/IFollower.h"
7#include "ctre/phoenix/motorcontrol/NeutralMode.h"
8#include "ctre/phoenix/motorcontrol/FeedbackDevice.h"
9#include "ctre/phoenix/motorcontrol/SensorCollection.h"
10#include "ctre/phoenix/motorcontrol/SupplyCurrentLimitConfiguration.h"
11#include "ctre/phoenix/motorcontrol/StatusFrame.h"
12#include "ctre/phoenix/motorcontrol/LimitSwitchType.h"
13#include "ctre/phoenix/motorcontrol/Faults.h"
14#include "ctre/phoenix/motorcontrol/StickyFaults.h"
15#include "ctre/phoenix/motorcontrol/VelocityMeasPeriod.h"
16#include "ctre/phoenix/paramEnum.h"
17#include "ctre/phoenix/motion/TrajectoryPoint.h"
18#include "ctre/phoenix/motion/MotionProfileStatus.h"
19#include "ctre/phoenix/ErrorCode.h"
20
21namespace ctre {
22namespace phoenix {
23namespace motorcontrol {
24
29public:
31 }
32
33 //------ Set output routines. ----------//
34 /* in parent */
35
36 //------ Invert behavior ----------//
37 /* in parent */
38
39 //----- Factory Default Configuration -----//
40 /* in parent */
41
42 //----- general output shaping ------------------//
43 /* in parent */
44
45 //------ Voltage Compensation ----------//
46 /* in parent */
47
48 //------ General Status ----------//
49 /* in parent */
50
51 //------ sensor selection ----------//
52 /* expand the options */
67 FeedbackDevice feedbackDevice, int pidIdx = 0, int timeoutMs = 0) = 0;
82 RemoteFeedbackDevice feedbackDevice, int pidIdx = 0, int timeoutMs = 0) = 0;
83
84 //------ Current Limit ----------//
94 virtual ErrorCode ConfigSupplyCurrentLimit(const SupplyCurrentLimitConfiguration& currLimitConfigs, int timeoutMs = 50) = 0;
95
96 //------- sensor status --------- //
97 /* in parent */
98
99 //------ status frame period changes ----------//
119 virtual ErrorCode SetStatusFramePeriod(StatusFrame frame, uint8_t periodMs,
120 int timeoutMs = 0) = 0;
141 uint8_t periodMs, int timeoutMs = 0) = 0;
153 virtual int GetStatusFramePeriod(StatusFrame frame, int timeoutMs = 0) = 0;
165 virtual int GetStatusFramePeriod(StatusFrameEnhanced frame, int timeoutMs = 0) = 0;
166
167 //------ General Status ----------//
177 virtual double GetOutputCurrent() = 0;
178
179 //----- velocity signal conditionaing ------//
193 int timeoutMs = 0)= 0;
209 int timeoutMs = 0)= 0;
210
211 //------ remote limit switch ----------//
232 RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose,
233 int deviceID, int timeoutMs = 0) = 0;
254 RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose,
255 int deviceID, int timeoutMs = 0) = 0;
256
257 //------ local limit switch ----------//
276 LimitSwitchNormal normalOpenOrClose, int timeoutMs = 0)= 0;
295 LimitSwitchNormal normalOpenOrClose, int timeoutMs = 0)= 0;
296
297 //------ soft limit ----------//
298 /* in parent */
299
300 //------ General Close loop ----------//
301 /* in parent */
302
303 //------ Motion Profile Settings used in Motion Magic and Motion Profile ----------//
304 /* in parent */
305
306 //------ Motion Profile Buffer ----------//
307 /* in parent */
308
309 //------ error ----------//
310 /* in parent */
311
312 //------ Faults ----------//
313 /* in parent */
314
315 //------ Firmware ----------//
316 /* in parent */
317
318 //------ Custom Persistent Params ----------//
319 /* in parent */
320
321 //------ Generic Param API, typically not used ----------//
322 /* in parent */
323
324 //------ Misc. ----------//
325 /* in parent */
326
327}; // class IMotorControllerEnhanced
328} // namespace motorcontrol
329} // namespace phoenix
330} // namespace ctre
Definition: IMotorControllerEnhanced.h:28
virtual ErrorCode SetStatusFramePeriod(StatusFrameEnhanced frame, uint8_t periodMs, int timeoutMs=0)=0
virtual ErrorCode ConfigVelocityMeasurementWindow(int windowSize, int timeoutMs=0)=0
virtual ErrorCode ConfigSelectedFeedbackSensor(RemoteFeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0)=0
virtual ErrorCode ConfigReverseLimitSwitchSource(LimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0)=0
virtual int GetStatusFramePeriod(StatusFrame frame, int timeoutMs=0)=0
virtual ErrorCode ConfigForwardLimitSwitchSource(RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0)=0
virtual ErrorCode ConfigReverseLimitSwitchSource(RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0)=0
virtual ErrorCode SetStatusFramePeriod(StatusFrame frame, uint8_t periodMs, int timeoutMs=0)=0
virtual int GetStatusFramePeriod(StatusFrameEnhanced frame, int timeoutMs=0)=0
virtual ErrorCode ConfigForwardLimitSwitchSource(LimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0)=0
virtual ErrorCode ConfigVelocityMeasurementPeriod(VelocityMeasPeriod period, int timeoutMs=0)=0
virtual ErrorCode ConfigSelectedFeedbackSensor(FeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0)=0
virtual ErrorCode ConfigSupplyCurrentLimit(const SupplyCurrentLimitConfiguration &currLimitConfigs, int timeoutMs=50)=0
Definition: IMotorController.h:34
StatusFrameEnhanced
Definition: StatusFrame.h:10
LimitSwitchNormal
Definition: LimitSwitchType.h:61
RemoteFeedbackDevice
Definition: FeedbackDevice.h:169
RemoteLimitSwitchSource
Definition: LimitSwitchType.h:34
FeedbackDevice
Definition: FeedbackDevice.h:13
VelocityMeasPeriod
Definition: VelocityMeasPeriod.h:12
StatusFrame
Definition: StatusFrame.h:94
LimitSwitchSource
Definition: LimitSwitchType.h:10
ErrorCode
Definition: ErrorCode.h:12
Definition: ErrorCode.h:5
Definition: SupplyCurrentLimitConfiguration.h:13