001/*----------------------------------------------------------------------------*/
002/* Copyright (c) FIRST 2016-2017. All Rights Reserved.                        */
003/* Open Source Software - may be modified and shared by FRC teams. The code   */
004/* must be accompanied by the FIRST BSD license file in the root directory of */
005/* the project.                                                               */
006/*----------------------------------------------------------------------------*/
007
008package edu.wpi.first.wpilibj.hal;
009
010import edu.wpi.first.wpilibj.PWMConfigDataResult;
011
012@SuppressWarnings("AbbreviationAsWordInName")
013public class PWMJNI extends DIOJNI {
014  public static native int initializePWMPort(int halPortHandle);
015
016  public static native boolean checkPWMChannel(int channel);
017
018  public static native void freePWMPort(int pwmPortHandle);
019
020  public static native void setPWMConfigRaw(int pwmPortHandle, int maxPwm,
021                                            int deadbandMaxPwm, int centerPwm,
022                                            int deadbandMinPwm, int minPwm);
023
024  public static native void setPWMConfig(int pwmPortHandle, double maxPwm,
025                                         double deadbandMaxPwm, double centerPwm,
026                                         double deadbandMinPwm, double minPwm);
027
028  public static native PWMConfigDataResult getPWMConfigRaw(int pwmPortHandle);
029
030  public static native void setPWMEliminateDeadband(int pwmPortHandle, boolean eliminateDeadband);
031
032  public static native boolean getPWMEliminateDeadband(int pwmPortHandle);
033
034  public static native void setPWMRaw(int pwmPortHandle, short value);
035
036  public static native void setPWMSpeed(int pwmPortHandle, double speed);
037
038  public static native void setPWMPosition(int pwmPortHandle, double position);
039
040  public static native short getPWMRaw(int pwmPortHandle);
041
042  public static native double getPWMSpeed(int pwmPortHandle);
043
044  public static native double getPWMPosition(int pwmPortHandle);
045
046  public static native  void setPWMDisabled(int pwmPortHandle);
047
048  public static native void latchPWMZero(int pwmPortHandle);
049
050  public static native void setPWMPeriodScale(int pwmPortHandle, int squelchMask);
051}