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 010import java.nio.ByteBuffer; 011 012@SuppressWarnings("AbbreviationAsWordInName") 013public class SPIJNI extends JNIWrapper { 014 public static native void spiInitialize(int port); 015 016 public static native int spiTransaction(int port, ByteBuffer dataToSend, 017 ByteBuffer dataReceived, byte size); 018 019 public static native int spiTransactionB(int port, byte[] dataToSend, 020 byte[] dataReceived, byte size); 021 022 public static native int spiWrite(int port, ByteBuffer dataToSend, byte sendSize); 023 024 public static native int spiWriteB(int port, byte[] dataToSend, byte sendSize); 025 026 public static native int spiRead(int port, boolean initiate, ByteBuffer dataReceived, byte size); 027 028 public static native int spiReadB(int port, boolean initiate, byte[] dataReceived, byte size); 029 030 public static native void spiClose(int port); 031 032 public static native void spiSetSpeed(int port, int speed); 033 034 public static native void spiSetOpts(int port, int msbFirst, int sampleOnTrailing, 035 int clkIdleHigh); 036 037 public static native void spiSetChipSelectActiveHigh(int port); 038 039 public static native void spiSetChipSelectActiveLow(int port); 040 041 public static native void spiInitAuto(int port, int bufferSize); 042 043 public static native void spiFreeAuto(int port); 044 045 public static native void spiStartAutoRate(int port, double period); 046 047 public static native void spiStartAutoTrigger(int port, int digitalSourceHandle, 048 int analogTriggerType, boolean triggerRising, 049 boolean triggerFalling); 050 051 public static native void spiStopAuto(int port); 052 053 public static native void spiSetAutoTransmitData(int port, byte[] dataToSend, int zeroSize); 054 055 public static native void spiForceAutoRead(int port); 056 057 public static native int spiReadAutoReceivedData(int port, ByteBuffer buffer, int numToRead, 058 double timeout); 059 060 public static native int spiReadAutoReceivedData(int port, byte[] buffer, int numToRead, 061 double timeout); 062 063 public static native int spiGetAutoDroppedCount(int port); 064}