001// Copyright (c) FIRST and other WPILib contributors. 002// Open Source Software; you can modify and/or share it under the terms of 003// the WPILib BSD license file in the root directory of this project. 004 005package edu.wpi.first.hal; 006 007import java.nio.ByteBuffer; 008 009@SuppressWarnings("AbbreviationAsWordInName") 010public class SPIJNI extends JNIWrapper { 011 public static native void spiInitialize(int port); 012 013 public static native int spiTransaction( 014 int port, ByteBuffer dataToSend, ByteBuffer dataReceived, byte size); 015 016 public static native int spiTransactionB( 017 int port, byte[] dataToSend, byte[] dataReceived, byte size); 018 019 public static native int spiWrite(int port, ByteBuffer dataToSend, byte sendSize); 020 021 public static native int spiWriteB(int port, byte[] dataToSend, byte sendSize); 022 023 public static native int spiRead(int port, boolean initiate, ByteBuffer dataReceived, byte size); 024 025 public static native int spiReadB(int port, boolean initiate, byte[] dataReceived, byte size); 026 027 public static native void spiClose(int port); 028 029 public static native void spiSetSpeed(int port, int speed); 030 031 public static native void spiSetOpts( 032 int port, int msbFirst, int sampleOnTrailing, int clkIdleHigh); 033 034 public static native void spiSetChipSelectActiveHigh(int port); 035 036 public static native void spiSetChipSelectActiveLow(int port); 037 038 public static native void spiInitAuto(int port, int bufferSize); 039 040 public static native void spiFreeAuto(int port); 041 042 public static native void spiStartAutoRate(int port, double period); 043 044 public static native void spiStartAutoTrigger( 045 int port, 046 int digitalSourceHandle, 047 int analogTriggerType, 048 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( 058 int port, ByteBuffer buffer, int numToRead, double timeout); 059 060 public static native int spiReadAutoReceivedData( 061 int port, int[] buffer, int numToRead, double timeout); 062 063 public static native int spiGetAutoDroppedCount(int port); 064 065 public static native void spiConfigureAutoStall( 066 int port, int csToSclkTicks, int stallTicks, int pow2BytesPerRead); 067}