001/* 002 * Copyright (C) Cross The Road Electronics. All rights reserved. 003 * License information can be found in CTRE_LICENSE.txt 004 * For support and suggestions contact support@ctr-electronics.com or file 005 * an issue tracker at https://github.com/CrossTheRoadElec/Phoenix-Releases 006 */ 007package com.ctre.phoenix6.signals; 008 009import java.util.HashMap; 010 011/** 012 * The active control mode of the motor controller 013 */ 014public enum ControlModeValue 015{ 016 DisabledOutput(0), 017 NeutralOut(1), 018 StaticBrake(2), 019 DutyCycleOut(3), 020 PositionDutyCycle(4), 021 VelocityDutyCycle(5), 022 MotionMagicDutyCycle(6), 023 DutyCycleFOC(7), 024 PositionDutyCycleFOC(8), 025 VelocityDutyCycleFOC(9), 026 MotionMagicDutyCycleFOC(10), 027 VoltageOut(11), 028 PositionVoltage(12), 029 VelocityVoltage(13), 030 MotionMagicVoltage(14), 031 VoltageFOC(15), 032 PositionVoltageFOC(16), 033 VelocityVoltageFOC(17), 034 MotionMagicVoltageFOC(18), 035 TorqueCurrentFOC(19), 036 PositionTorqueCurrentFOC(20), 037 VelocityTorqueCurrentFOC(21), 038 MotionMagicTorqueCurrentFOC(22), 039 Follower(23), 040 Reserved(24), 041 CoastOut(25), 042 UnauthorizedDevice(26), 043 MusicTone(27), 044 MotionMagicVelocityDutyCycle(28), 045 MotionMagicVelocityDutyCycleFOC(29), 046 MotionMagicVelocityVoltage(30), 047 MotionMagicVelocityVoltageFOC(31), 048 MotionMagicVelocityTorqueCurrentFOC(32), 049 MotionMagicExpoDutyCycle(33), 050 MotionMagicExpoDutyCycleFOC(34), 051 MotionMagicExpoVoltage(35), 052 MotionMagicExpoVoltageFOC(36), 053 MotionMagicExpoTorqueCurrentFOC(37),; 054 055 public final int value; 056 057 ControlModeValue(int initValue) 058 { 059 this.value = initValue; 060 } 061 062 private static HashMap<Integer, ControlModeValue> _map = null; 063 static 064 { 065 _map = new HashMap<Integer, ControlModeValue>(); 066 for (ControlModeValue type : ControlModeValue.values()) 067 { 068 _map.put(type.value, type); 069 } 070 } 071 072 /** 073 * Gets ControlModeValue from specified value 074 * @param value Value of ControlModeValue 075 * @return ControlModeValue of specified value 076 */ 077 public static ControlModeValue valueOf(int value) 078 { 079 ControlModeValue retval = _map.get(value); 080 if (retval != null) return retval; 081 return ControlModeValue.values()[0]; 082 } 083}