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.ByteBuffer; 011import java.nio.LongBuffer; 012 013@SuppressWarnings("AbbreviationAsWordInName") 014public class SPIJNI extends JNIWrapper { 015 public static native void spiInitialize(byte port); 016 017 public static native int spiTransaction(byte port, ByteBuffer dataToSend, 018 ByteBuffer dataReceived, byte size); 019 020 public static native int spiWrite(byte port, ByteBuffer dataToSend, byte sendSize); 021 022 public static native int spiRead(byte port, ByteBuffer dataReceived, byte size); 023 024 public static native void spiClose(byte port); 025 026 public static native void spiSetSpeed(byte port, int speed); 027 028 public static native void spiSetOpts(byte port, int msbFirst, int sampleOnTrailing, 029 int clkIdleHigh); 030 031 public static native void spiSetChipSelectActiveHigh(byte port); 032 033 public static native void spiSetChipSelectActiveLow(byte port); 034 035 public static native void spiInitAccumulator(byte port, int period, int cmd, byte xferSize, 036 int validMask, int validValue, byte dataShift, 037 byte dataSize, boolean isSigned, boolean bigEndian); 038 039 public static native void spiFreeAccumulator(byte port); 040 041 public static native void spiResetAccumulator(byte port); 042 043 public static native void spiSetAccumulatorCenter(byte port, int center); 044 045 public static native void spiSetAccumulatorDeadband(byte port, int deadband); 046 047 public static native int spiGetAccumulatorLastValue(byte port); 048 049 public static native long spiGetAccumulatorValue(byte port); 050 051 public static native int spiGetAccumulatorCount(byte port); 052 053 public static native double spiGetAccumulatorAverage(byte port); 054 055 public static native void spiGetAccumulatorOutput(byte port, LongBuffer value, 056 LongBuffer count); 057}