#pragma once
#include "rev/ClosedLoopTypes.h"
#include "rev/config/BaseConfig.h"
namespace rev::spark {
class MAXMotionConfig : public BaseConfig {
public:
enum MAXMotionPositionMode : uint32_t {
kMAXMotionTrapezoidal = 0,
#if 0#endif
};
MAXMotionConfig() = default;
~MAXMotionConfig() override = default;
MAXMotionConfig(const MAXMotionConfig&) = default;
MAXMotionConfig& operator=(const MAXMotionConfig&) = delete;
MAXMotionConfig(MAXMotionConfig&&) noexcept = delete;
MAXMotionConfig& operator=(MAXMotionConfig&&) noexcept = delete;
MAXMotionConfig& Apply(MAXMotionConfig& config);
[[deprecated(
"Use MAXMotionConfig::CruiseVelocity instead")]] MAXMotionConfig&
MaxVelocity(double maxVelocity, ClosedLoopSlot slot = kSlot0);
MAXMotionConfig& CruiseVelocity(double cruiseVelocity,
ClosedLoopSlot slot = kSlot0);
MAXMotionConfig& MaxAcceleration(double maxAcceleration,
ClosedLoopSlot slot = kSlot0);
[[deprecated(
"Use MAXMotionConfig::AllowedProfileError instead")]] MAXMotionConfig&
AllowedClosedLoopError(double allowedError, ClosedLoopSlot slot = kSlot0);
MAXMotionConfig& AllowedProfileError(double allowedError,
ClosedLoopSlot slot = kSlot0);
MAXMotionConfig& PositionMode(MAXMotionPositionMode mode,
ClosedLoopSlot slot = kSlot0);
};
}