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}