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.phoenixpro.wpiutils; 008 009import com.ctre.phoenixpro.unmanaged.Unmanaged; 010 011import edu.wpi.first.hal.HAL; 012import edu.wpi.first.hal.HAL.SimPeriodicBeforeCallback; 013import edu.wpi.first.wpilibj.DriverStation; 014 015public class AutoFeedEnable implements AutoCloseable { 016 private static final AutoFeedEnable autoFeedEnable = new AutoFeedEnable(); 017 private SimPeriodicBeforeCallback simPeriodicCallback = null; 018 019 public static AutoFeedEnable getInstance() { 020 return autoFeedEnable; 021 } 022 023 private AutoFeedEnable() { 024 simPeriodicCallback = HAL.registerSimPeriodicBeforeCallback(() -> { 025 if (DriverStation.isEnabled()) { 026 Unmanaged.feedEnable(100); 027 } 028 }); 029 } 030 031 @Override 032 public void close() { 033 if (simPeriodicCallback != null) { 034 simPeriodicCallback.close(); 035 simPeriodicCallback = null; 036 } 037 } 038}