4#include "ctre/phoenix/CANBusAddressable.h"
5#include "ctre/phoenix/CustomParamConfiguration.h"
6#include "ctre/phoenix/ErrorCode.h"
7#include "ctre/phoenix/paramEnum.h"
8#include "ctre/phoenix/sensors/AbsoluteSensorRange.h"
9#include "ctre/phoenix/sensors/CANCoderSimCollection.h"
10#include "ctre/phoenix/sensors/CANCoderStatusFrame.h"
11#include "ctre/phoenix/sensors/CANCoderStickyFaults.h"
12#include "ctre/phoenix/sensors/CANCoderFaults.h"
13#include "ctre/phoenix/sensors/SensorVelocityMeasPeriod.h"
14#include "ctre/phoenix/sensors/SensorInitializationStrategy.h"
15#include "ctre/phoenix/sensors/MagnetFieldStrength.h"
16#include "ctre/phoenix/sensors/SensorTimeBase.h"
98 std::string
toString(std::string prependString) {
103 retstr += prependString +
".absoluteSensorRange = " + std::to_string(
absoluteSensorRange) +
";\n";
104 retstr += prependString +
".magnetOffsetDegrees = " + std::to_string(
magnetOffsetDegrees) +
";\n";
105 retstr += prependString +
".sensorDirection = " + std::to_string(
sensorDirection) +
";\n";
107 retstr += prependString +
".sensorCoefficient = " + std::to_string(
sensorCoefficient) +
";\n";
108 retstr += prependString +
".unitString = \"" +
unitString.c_str() +
"\";\n";
109 retstr += prependString +
".sensorTimeBase = " + std::to_string(
sensorTimeBase) +
";\n";
132 static bool AbsoluteSensorRangeDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.absoluteSensorRange == _default.
absoluteSensorRange)) || !settings.enableOptimizations; }
133 static bool MagnetOffsetDegreesDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.magnetOffsetDegrees == _default.
magnetOffsetDegrees)) || !settings.enableOptimizations; }
134 static bool SensorDirectionDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.sensorDirection == _default.
sensorDirection)) || !settings.enableOptimizations; }
135 static bool InitializationStrategyDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.initializationStrategy == _default.
initializationStrategy)) || !settings.enableOptimizations; }
136 static bool SensorCoefficientDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.sensorCoefficient == _default.
sensorCoefficient)) || !settings.enableOptimizations; }
137 static bool UnitStringDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.unitString == _default.
unitString)) || !settings.enableOptimizations; }
138 static bool SensorTimeBaseDifferent(
const CANCoderConfiguration& settings) {
return (!(settings.sensorTimeBase == _default.
sensorTimeBase)) || !settings.enableOptimizations; }
177 CANCoder(
int deviceNumber, std::string
const &canbus =
"");
409 uint8_t subValue,
int ordinal,
int timeoutMs = 0);
446 int32_t& valueReceived, uint8_t& subValue, int32_t ordinal,
461 uint8_t periodMs,
int timeoutMs = 0);
Definition: CANBusAddressable.h:8
Definition: CANCoder.h:169
ErrorCode SetPositionToAbsolute(int timeoutMs=0)
int GetStatusFramePeriod(CANCoderStatusFrame frame, int timeoutMs=0)
ErrorCode ConfigSensorInitializationStrategy(ctre::phoenix::sensors::SensorInitializationStrategy initializationStrategy, int timeoutMs=0)
ErrorCode ConfigSetParameter(ParamEnum param, double value, uint8_t subValue, int ordinal, int timeoutMs=0)
double GetLastTimestamp()
ErrorCode ConfigMagnetOffset(double offsetDegrees, int timeoutMs=0)
ErrorCode GetFaults(CANCoderFaults &toFill)
ErrorCode ConfigVelocityMeasurementWindow(int windowSize, int timeoutMs=0)
CANCoderSimCollection & GetSimCollection()
ErrorCode ClearStickyFaults(int timeoutMs=0)
ErrorCode ConfigVelocityMeasurementPeriod(SensorVelocityMeasPeriod period, int timeoutMs=0)
static void DestroyAllCANCoders()
ctre::phoenix::sensors::MagnetFieldStrength GetMagnetFieldStrength()
int ConfigGetCustomParam(int paramIndex, int timeoutMs=0)
ErrorCode ConfigSetCustomParam(int newValue, int paramIndex, int timeoutMs=0)
ErrorCode ConfigFeedbackCoefficient(double sensorCoefficient, const std::string &unitString, ctre::phoenix::sensors::SensorTimeBase sensortimeBase, int timeoutMs=0)
ErrorCode GetStickyFaults(CANCoderStickyFaults &toFill)
ErrorCode ConfigSensorDirection(bool bSensorDirection, int timeoutMs=0)
CANCoder(int deviceNumber, std::string const &canbus="")
ErrorCode ConfigAbsoluteSensorRange(ctre::phoenix::sensors::AbsoluteSensorRange absoluteSensorRange, int timeoutMs=0)
double GetAbsolutePosition()
ErrorCode SetStatusFramePeriod(CANCoderStatusFrame statusFrame, uint8_t periodMs, int timeoutMs=0)
ErrorCode SetPosition(double newPosition, int timeoutMs=0)
ErrorCode ConfigGetParameter(ParamEnum param, int32_t valueToSend, int32_t &valueReceived, uint8_t &subValue, int32_t ordinal, int32_t timeoutMs)
double ConfigGetParameter(ParamEnum param, int ordinal, int timeoutMs=0)
ErrorCode GetAllConfigs(CANCoderConfiguration &allConfigs, int timeoutMs=50)
ErrorCode ConfigFactoryDefault(int timeoutMs=50)
std::string GetLastUnitString()
ctre::phoenix::ErrorCode ConfigAllSettings(const CANCoderConfiguration &allConfigs, int timeoutMs=50)
Definition: CANCoderSimCollection.h:23
static std::string toString(SensorVelocityMeasPeriod value)
Definition: SensorVelocityMeasPeriod.h:57
SensorInitializationStrategy
Definition: SensorInitializationStrategy.h:12
MagnetFieldStrength
Definition: MagnetFieldStrength.h:8
CANCoderStatusFrame
Definition: CANCoderStatusFrame.h:8
SensorTimeBase
Definition: SensorTimeBase.h:13
SensorVelocityMeasPeriod
Definition: SensorVelocityMeasPeriod.h:12
AbsoluteSensorRange
Definition: AbsoluteSensorRange.h:12
ParamEnum
Definition: paramEnum.h:12
ErrorCode
Definition: ErrorCode.h:12
Definition: ErrorCode.h:5
Definition: CustomParamConfiguration.h:52
Definition: CustomParamConfiguration.h:10
bool enableOptimizations
Definition: CustomParamConfiguration.h:22
std::string toString()
Definition: CustomParamConfiguration.h:33
Definition: CANCoder.h:120
static bool VelocityMeasurementPeriodDifferent(const CANCoderConfiguration &settings)
Definition: CANCoder.h:130
Definition: CANCoder.h:25
ctre::phoenix::sensors::AbsoluteSensorRange absoluteSensorRange
Definition: CANCoder.h:39
int velocityMeasurementWindow
Definition: CANCoder.h:33
ctre::phoenix::sensors::SensorTimeBase sensorTimeBase
Definition: CANCoder.h:79
double sensorCoefficient
Definition: CANCoder.h:67
std::string toString(std::string prependString)
Definition: CANCoder.h:98
bool sensorDirection
Definition: CANCoder.h:53
double magnetOffsetDegrees
Definition: CANCoder.h:46
SensorVelocityMeasPeriod velocityMeasurementPeriod
Definition: CANCoder.h:29
std::string toString()
Definition: CANCoder.h:89
ctre::phoenix::sensors::SensorInitializationStrategy initializationStrategy
Definition: CANCoder.h:63
std::string unitString
Definition: CANCoder.h:74
CANCoderConfiguration()
Definition: CANCoder.h:84
Definition: CANCoderFaults.h:10
Definition: CANCoderStickyFaults.h:10