001/* Copyright (C) Cross The Road Electronics 2024 */
002package com.ctre.phoenix.motorcontrol;
003
004/**
005 * Choose the demand type for the 4 param set
006 */
007public enum DemandType {
008    /**
009         * Ignore the demand value and apply neutral/no-change.
010         */
011        Neutral(0),
012        /**
013         * When closed-looping, set the target of the aux PID loop to the demand value.
014         *
015         * When following, follow the processed output of the combined 
016         * primary/aux PID output of the master.  The demand value is ignored.
017         * Although it is much cleaner to use the 2-param Follow() in such cases.
018         */
019        AuxPID(1), //!< Target value of PID loop 1.  When f
020        /**
021         * When closed-looping, add demand arbitrarily to the closed-loop output.
022         */
023        ArbitraryFeedForward(2); //!< Simply add to the output
024
025        /**
026         * Value of DemandType
027         */
028        public int value;
029
030        /**
031         * Create DemandType of specified value
032         * @param value Value of DemandType
033         */
034        DemandType(int value)
035        {
036                this.value = value;
037        }
038};