Class MusicTone

java.lang.Object
com.ctre.phoenix6.controls.ControlRequest
com.ctre.phoenix6.controls.MusicTone
All Implemented Interfaces:
Cloneable

public class MusicTone extends ControlRequest implements Cloneable
Plays a single tone at the user specified frequency.
  • Field Details

    • AudioFrequency

      public double AudioFrequency
      Sound frequency to play. A value of zero will silence the device. The effective frequency range is 10-20000 Hz. Any nonzero frequency less than 10 Hz will be capped to 10 Hz. Any frequency above 20 kHz will be capped to 20 kHz.
      • Units: Hz
    • UpdateFreqHz

      public double UpdateFreqHz
      The period at which this control will update at. This is designated in Hertz, with a minimum of 20 Hz (every 50 ms) and a maximum of 1000 Hz (every 1 ms).

      If this field is set to 0 Hz, the control request will be sent immediately as a one-shot frame. This may be useful for advanced applications that require outputs to be synchronized with data acquisition. In this case, we recommend not exceeding 50 ms between control calls.

  • Constructor Details

    • MusicTone

      public MusicTone(double AudioFrequency)
      Plays a single tone at the user specified frequency.
      Parameters:
      AudioFrequency - Sound frequency to play. A value of zero will silence the device. The effective frequency range is 10-20000 Hz. Any nonzero frequency less than 10 Hz will be capped to 10 Hz. Any frequency above 20 kHz will be capped to 20 kHz.
    • MusicTone

      public MusicTone(Frequency AudioFrequency)
      Plays a single tone at the user specified frequency.
      Parameters:
      AudioFrequency - Sound frequency to play. A value of zero will silence the device. The effective frequency range is 10-20000 Hz. Any nonzero frequency less than 10 Hz will be capped to 10 Hz. Any frequency above 20 kHz will be capped to 20 kHz.
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • sendRequest

      public StatusCode sendRequest(String network, int deviceHash)
      Specified by:
      sendRequest in class ControlRequest
    • getControlInfo

      Gets information about this control request.
      Specified by:
      getControlInfo in class ControlRequest
      Returns:
      Map of control parameter names and corresponding applied values
    • withAudioFrequency

      public MusicTone withAudioFrequency(double newAudioFrequency)
      Modifies this Control Request's AudioFrequency parameter and returns itself for method-chaining and easier to use request API.

      Sound frequency to play. A value of zero will silence the device. The effective frequency range is 10-20000 Hz. Any nonzero frequency less than 10 Hz will be capped to 10 Hz. Any frequency above 20 kHz will be capped to 20 kHz.

      • Units: Hz
      Parameters:
      newAudioFrequency - Parameter to modify
      Returns:
      Itself
    • withAudioFrequency

      public MusicTone withAudioFrequency(Frequency newAudioFrequency)
      Modifies this Control Request's AudioFrequency parameter and returns itself for method-chaining and easier to use request API.

      Sound frequency to play. A value of zero will silence the device. The effective frequency range is 10-20000 Hz. Any nonzero frequency less than 10 Hz will be capped to 10 Hz. Any frequency above 20 kHz will be capped to 20 kHz.

      • Units: Hz
      Parameters:
      newAudioFrequency - Parameter to modify
      Returns:
      Itself
    • getAudioFrequencyMeasure

      Helper method to get this Control Request's AudioFrequency parameter converted to a unit type. If not using the Java units library, AudioFrequency can be accessed directly instead.

      Sound frequency to play. A value of zero will silence the device. The effective frequency range is 10-20000 Hz. Any nonzero frequency less than 10 Hz will be capped to 10 Hz. Any frequency above 20 kHz will be capped to 20 kHz.

      • Units: Hz
      Returns:
      AudioFrequency
    • withUpdateFreqHz

      public MusicTone withUpdateFreqHz(double newUpdateFreqHz)
      Sets the period at which this control will update at. This is designated in Hertz, with a minimum of 20 Hz (every 50 ms) and a maximum of 1000 Hz (every 1 ms).

      If this field is set to 0 Hz, the control request will be sent immediately as a one-shot frame. This may be useful for advanced applications that require outputs to be synchronized with data acquisition. In this case, we recommend not exceeding 50 ms between control calls.

      Specified by:
      withUpdateFreqHz in class ControlRequest
      Parameters:
      newUpdateFreqHz - Parameter to modify
      Returns:
      Itself
    • withUpdateFreqHz

      public MusicTone withUpdateFreqHz(Frequency newUpdateFreqHz)
      Sets the period at which this control will update at. This is designated in Hertz, with a minimum of 20 Hz (every 50 ms) and a maximum of 1000 Hz (every 1 ms).

      If this field is set to 0 Hz, the control request will be sent immediately as a one-shot frame. This may be useful for advanced applications that require outputs to be synchronized with data acquisition. In this case, we recommend not exceeding 50 ms between control calls.

      Specified by:
      withUpdateFreqHz in class ControlRequest
      Parameters:
      newUpdateFreqHz - Parameter to modify
      Returns:
      Itself
    • clone

      public MusicTone clone()
      Overrides:
      clone in class Object