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