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 java.nio.IntBuffer;
011import java.nio.LongBuffer;
012
013public class AnalogJNI extends JNIWrapper {
014  /**
015   * <i>native declaration : AthenaJava\target\native\include\HAL\Analog.h:58</i><br> enum values
016   */
017  public interface AnalogTriggerType {
018    /**
019     * <i>native declaration : AthenaJava\target\native\include\HAL\Analog.h:54</i>
020     */
021    int kInWindow = 0;
022    /**
023     * <i>native declaration : AthenaJava\target\native\include\HAL\Analog.h:55</i>
024     */
025    int kState = 1;
026    /**
027     * <i>native declaration : AthenaJava\target\native\include\HAL\Analog.h:56</i>
028     */
029    int kRisingPulse = 2;
030    /**
031     * <i>native declaration : AthenaJava\target\native\include\HAL\Analog.h:57</i>
032     */
033    int kFallingPulse = 3;
034  }
035
036  public static native int initializeAnalogInputPort(int halPortHandle);
037
038  public static native void freeAnalogInputPort(int portHandle);
039
040  public static native int initializeAnalogOutputPort(int halPortHandle);
041
042  public static native void freeAnalogOutputPort(int portHandle);
043
044  public static native boolean checkAnalogModule(byte module);
045
046  public static native boolean checkAnalogInputChannel(int channel);
047
048  public static native boolean checkAnalogOutputChannel(int channel);
049
050  public static native void setAnalogOutput(int portHandle, double voltage);
051
052  public static native double getAnalogOutput(int portHandle);
053
054  public static native void setAnalogSampleRate(double samplesPerSecond);
055
056  public static native double getAnalogSampleRate();
057
058  public static native void setAnalogAverageBits(int analogPortHandle, int bits);
059
060  public static native int getAnalogAverageBits(int analogPortHandle);
061
062  public static native void setAnalogOversampleBits(int analogPortHandle, int bits);
063
064  public static native int getAnalogOversampleBits(int analogPortHandle);
065
066  public static native short getAnalogValue(int analogPortHandle);
067
068  public static native int getAnalogAverageValue(int analogPortHandle);
069
070  public static native int getAnalogVoltsToValue(int analogPortHandle, double voltage);
071
072  public static native double getAnalogVoltage(int analogPortHandle);
073
074  public static native double getAnalogAverageVoltage(int analogPortHandle);
075
076  public static native int getAnalogLSBWeight(int analogPortHandle);
077
078  public static native int getAnalogOffset(int analogPortHandle);
079
080  public static native boolean isAccumulatorChannel(int analogPortHandle);
081
082  public static native void initAccumulator(int analogPortHandle);
083
084  public static native void resetAccumulator(int analogPortHandle);
085
086  public static native void setAccumulatorCenter(int analogPortHandle, int center);
087
088  public static native void setAccumulatorDeadband(int analogPortHandle, int deadband);
089
090  public static native long getAccumulatorValue(int analogPortHandle);
091
092  public static native int getAccumulatorCount(int analogPortHandle);
093
094  public static native void getAccumulatorOutput(int analogPortHandle, LongBuffer value,
095                                                 LongBuffer count);
096
097  public static native int initializeAnalogTrigger(int analogInputHandle, IntBuffer index);
098
099  public static native void cleanAnalogTrigger(int analogTriggerHandle);
100
101  public static native void setAnalogTriggerLimitsRaw(int analogTriggerHandle, int lower,
102                                                      int upper);
103
104  public static native void setAnalogTriggerLimitsVoltage(int analogTriggerHandle,
105                                                          double lower, double upper);
106
107  public static native void setAnalogTriggerAveraged(int analogTriggerHandle,
108                                                     boolean useAveragedValue);
109
110  public static native void setAnalogTriggerFiltered(int analogTriggerHandle,
111                                                     boolean useFilteredValue);
112
113  public static native boolean getAnalogTriggerInWindow(int analogTriggerHandle);
114
115  public static native boolean getAnalogTriggerTriggerState(int analogTriggerHandle);
116
117  public static native boolean getAnalogTriggerOutput(int analogTriggerHandle, int type);
118}