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.controls;
008
009import java.util.HashMap;
010import java.util.Map;
011
012import com.ctre.phoenix6.StatusCode;
013import com.ctre.phoenix6.controls.jni.ControlJNI;
014
015import edu.wpi.first.units.measure.*;
016
017/**
018 * Generic Empty Control class used to do nothing.
019 */
020public class EmptyControl extends ControlRequest implements Cloneable {
021    /**
022     * Constructs an empty control request.
023     */
024    public EmptyControl() {
025        super("EmptyControl");
026    }
027
028    @Override
029    public String toString() {
030        String ss = "class: EmptyControl\n";
031        return ss;
032    }
033
034    public StatusCode sendRequest(String network, int deviceHash) {
035        return StatusCode.valueOf(ControlJNI.JNI_RequestControlEmpty(
036                network, deviceHash, 0));
037    }
038
039    /**
040     * Gets information about this control request.
041     *
042     * @return Map of control parameter names and corresponding applied values
043     */
044    @Override
045    public Map<String, String> getControlInfo() {
046        var controlInfo = new HashMap<String,String>();
047        controlInfo.put("Name", getName());
048        return controlInfo;
049    }
050
051    @Override
052    public EmptyControl clone() {
053        return new EmptyControl();
054    }
055
056    @Override
057    public EmptyControl withUpdateFreqHz(double newUpdateFreqHz) {
058        return this;
059    }
060
061    @Override
062    public EmptyControl withUpdateFreqHz(Frequency newUpdateFreqHz) {
063        return this;
064    }
065};