001/* Copyright (C) Cross The Road Electronics 2024 */
002package com.ctre.phoenix;
003
004import com.ctre.phoenix.CustomParamConfiguration;
005import com.ctre.phoenix.VelocityPeriod;
006
007
008
009/**
010 * Configurables available to CANifier
011 */
012public class CANifierConfiguration extends CustomParamConfiguration{
013    /** 
014     * Velocity measurement period to use
015     */
016    public VelocityPeriod velocityMeasurementPeriod;
017    /**
018     * Velocity measurement window to use
019     */
020    public int velocityMeasurementWindow;
021    /**
022     * Whether to clear sensor position on forward limit
023     */
024    public boolean clearPositionOnLimitF;
025    /**
026     * Whether to clear sensor position on reverse limit
027     */
028    public boolean clearPositionOnLimitR;
029    /**
030     * Whether to clear sensor position on index
031     */
032    public boolean clearPositionOnQuadIdx;
033
034    public CANifierConfiguration() {
035                velocityMeasurementPeriod = VelocityPeriod.Period_100Ms; 
036                velocityMeasurementWindow = 64;
037            clearPositionOnLimitF = false;
038        clearPositionOnLimitR = false;
039        clearPositionOnQuadIdx = false;
040
041    }
042
043    /**
044     * @return String representation of configs
045     */
046        public String toString() {
047                return toString("");
048        }
049
050    /**
051     * @param prependString
052     *              String to prepend to configs
053     * @return String representation of configs
054     */
055    public String toString(String prependString) {
056
057        String retstr = prependString + ".velocityMeasurementPeriod = " + velocityMeasurementPeriod.toString() + ";\n";
058        retstr += prependString + ".velocityMeasurementWindow = " + String.valueOf(velocityMeasurementWindow) + ";\n";
059        retstr += prependString + ".clearPositionOnLimitF = " + String.valueOf(clearPositionOnLimitF) + ";\n";
060        retstr += prependString + ".clearPositionOnLimitR = " + String.valueOf(clearPositionOnLimitR) + ";\n";
061        retstr += prependString + ".clearPositionOnQuadIdx = " + String.valueOf(clearPositionOnQuadIdx) + ";\n";
062
063
064        retstr += super.toString(prependString);
065
066        return retstr;
067    }
068
069}