001/*----------------------------------------------------------------------------*/
002/* Copyright (c) 2016-2018 FIRST. 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
010public class EncoderJNI extends JNIWrapper {
011  public static native int initializeEncoder(int digitalSourceHandleA, int analogTriggerTypeA,
012                                             int digitalSourceHandleB, int analogTriggerTypeB,
013                                             boolean reverseDirection, int encodingType);
014
015  public static native void freeEncoder(int encoderHandle);
016
017  public static native int getEncoder(int encoderHandle);
018
019  public static native int getEncoderRaw(int encoderHandle);
020
021  public static native int getEncodingScaleFactor(int encoderHandle);
022
023  public static native void resetEncoder(int encoderHandle);
024
025  public static native double getEncoderPeriod(int encoderHandle);
026
027  public static native void setEncoderMaxPeriod(int encoderHandle, double maxPeriod);
028
029  public static native boolean getEncoderStopped(int encoderHandle);
030
031  public static native boolean getEncoderDirection(int encoderHandle);
032
033  public static native double getEncoderDistance(int encoderHandle);
034
035  public static native double getEncoderRate(int encoderHandle);
036
037  public static native void setEncoderMinRate(int encoderHandle, double minRate);
038
039  public static native void setEncoderDistancePerPulse(int encoderHandle, double distancePerPulse);
040
041  public static native void setEncoderReverseDirection(int encoderHandle,
042                                                       boolean reverseDirection);
043
044  public static native void setEncoderSamplesToAverage(int encoderHandle,
045                                                       int samplesToAverage);
046
047  public static native int getEncoderSamplesToAverage(int encoderHandle);
048
049  public static native void setEncoderIndexSource(int encoderHandle, int digitalSourceHandle,
050                                                  int analogTriggerType, int indexingType);
051
052  @SuppressWarnings("AbbreviationAsWordInName")
053  public static native int getEncoderFPGAIndex(int encoderHandle);
054
055  public static native int getEncoderEncodingScale(int encoderHandle);
056
057  public static native double getEncoderDecodingScaleFactor(int encoderHandle);
058
059  public static native double getEncoderDistancePerPulse(int encoderHandle);
060
061  public static native int getEncoderEncodingType(int encoderHandle);
062}