001/* Copyright (C) Cross The Road Electronics 2024 */
002package com.ctre.phoenix.motorcontrol;
003
004/**
005 * The different status frames available to motor controllers
006 */
007public enum StatusFrame {
008        /** 
009         * General Status
010         */
011        Status_1_General(0x1400),
012        /**
013         * Feedback for selected sensor on primary PID[0].
014         */
015        Status_2_Feedback0(0x1440),
016        /**
017         * Analog sensor, motor controller 
018         * temperature, and voltage at input leads
019         */
020        Status_4_AinTempVbat(0x14C0),
021        /**
022         * Miscellaneous signals
023         */
024        Status_6_Misc(0x1540),
025        /**
026         * Communication status
027         */
028        Status_7_CommStatus(0x1580),
029        /**
030         * Motion profile buffer status
031         */
032        Status_9_MotProfBuffer(0x1600),
033
034        /**
035         * Old name for Status 10
036         * @see #Status_10_Targets Use Status_10_Targets instead.
037         */
038        Status_10_MotionMagic(0x1640),
039        /**
040         * Correct name for Status 10
041         * @see #Status_10_MotionMagic Functionally equivalent to Status_10_MotionMagic
042         */
043        Status_10_Targets(0x1640),
044
045        /**
046         * Feedback for selected sensor on aux PID[1].
047         */
048        Status_12_Feedback1(0x16C0),
049        /**
050         * Primary PID
051         */
052        Status_13_Base_PIDF0(0x1700),
053        /**
054         * Auxiliary PID
055         */
056        Status_14_Turn_PIDF1(0x1740),
057        /**
058         * Firmware & API status information
059         */
060        Status_15_FirmwareApiStatus(0x1780),
061
062
063        /** MotionProfile Targets for Auxiliary PID1. */
064        Status_17_Targets1(0x1C00);
065
066        /**
067         * Value of StatusFrame
068         */
069        public int value;
070        /**
071         * Create StatusFrame of specified value
072         * @param value Value of StatusFrame
073         */
074        StatusFrame(int value)
075        {
076                this.value = value;
077        }
078};