001/************************ PROJECT ZIXI ************************/ 002/* Copyright (c) 2026 StuyPulse Robotics. All rights reserved.*/ 003/* This work is licensed under the terms of the MIT license. */ 004/**************************************************************/ 005package com.stuypulse.robot.constants; 006 007import static org.wpilib.units.Units.*; 008 009import org.wpilib.framework.RobotBase; 010import org.wpilib.units.measure.*; 011 012import org.littletonrobotics.junction.networktables.LoggedNetworkBoolean; 013 014/** File containing non-subsystem settings for the robot. */ 015public interface GlobalSettings { 016 Time DT = Milliseconds.of(20); 017 018 /** 019 * Uses a {@link LoggedNetworkBoolean} for each subsystem to add subsystem toggling 020 * functionality from external dashboards. 021 */ 022 interface EnabledSubsystems { 023 LoggedNetworkBoolean VISION = new LoggedNetworkBoolean("/Tuning/Enabled Subsystems/Vision"); 024 } 025 026 /** What mode the robot is in when running a simulation. */ 027 RobotMode SIM_MODE = RobotMode.SIM; 028 029 RobotMode CURRENT_MODE = RobotBase.isReal() ? RobotMode.REAL : SIM_MODE; 030 031 enum RobotMode { 032 /** Running on a real robot. */ 033 REAL, 034 035 /** Running in simulation. */ 036 SIM, 037 038 /** Replaying from a log file. */ 039 REPLAY 040 } 041}