Class I2CJNI


public class I2CJNI extends JNIWrapper
I2C HAL JNI functions.
See Also:
  • "I2C.h"
  • Nested Class Summary

    Nested classes/interfaces inherited from class edu.wpi.first.hal.JNIWrapper

    JNIWrapper.Helper
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    i2CClose(int port)
    Closes an I2C port.
    static void
    i2CInitialize(int port)
    Initializes the I2C port.
    static int
    i2CRead(int port, byte address, ByteBuffer dataReceived, byte receiveSize)
    Executes a read transaction with the device.
    static int
    i2CReadB(int port, byte address, byte[] dataReceived, byte receiveSize)
    Executes a read transaction with the device.
    static int
    i2CTransaction(int port, byte address, ByteBuffer dataToSend, byte sendSize, ByteBuffer dataReceived, byte receiveSize)
    Generic I2C read/write transaction.
    static int
    i2CTransactionB(int port, byte address, byte[] dataToSend, byte sendSize, byte[] dataReceived, byte receiveSize)
    Generic I2C read/write transaction.
    static int
    i2CWrite(int port, byte address, ByteBuffer dataToSend, byte sendSize)
    Executes a write transaction with the device.
    static int
    i2CWriteB(int port, byte address, byte[] dataToSend, byte sendSize)
    Executes a write transaction with the device.

    Methods inherited from class edu.wpi.first.hal.JNIWrapper

    forceLoad, suppressUnused

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • i2CInitialize

      public static void i2CInitialize(int port)
      Initializes the I2C port.

      Opens the port if necessary and saves the handle. If opening the MXP port, also sets up the channel functions appropriately.

      Parameters:
      port - The port to open, 0 for the on-board, 1 for the MXP.
      See Also:
      • "HAL_InitializeI2C"
    • i2CTransaction

      public static int i2CTransaction(int port, byte address, ByteBuffer dataToSend, byte sendSize, ByteBuffer dataReceived, byte receiveSize)
      Generic I2C read/write transaction.

      This is a lower-level interface to the I2C hardware giving you more control over each transaction.

      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      address - The address of the register on the device to be read/written.
      dataToSend - Buffer of data to send as part of the transaction.
      sendSize - Number of bytes to send as part of the transaction.
      dataReceived - Buffer to read data into.
      receiveSize - Number of bytes to read from the device.
      Returns:
      >= 0 on success or -1 on transfer abort.
      See Also:
      • "HAL_TransactionI2C"
    • i2CTransactionB

      public static int i2CTransactionB(int port, byte address, byte[] dataToSend, byte sendSize, byte[] dataReceived, byte receiveSize)
      Generic I2C read/write transaction.

      This is a lower-level interface to the I2C hardware giving you more control over each transaction.

      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      address - The address of the register on the device to be read/written.
      dataToSend - Buffer of data to send as part of the transaction.
      sendSize - Number of bytes to send as part of the transaction.
      dataReceived - Buffer to read data into.
      receiveSize - Number of bytes to read from the device.
      Returns:
      >= 0 on success or -1 on transfer abort.
      See Also:
      • "HAL_TransactionI2C"
    • i2CWrite

      public static int i2CWrite(int port, byte address, ByteBuffer dataToSend, byte sendSize)
      Executes a write transaction with the device.

      Writes a single byte to a register on a device and wait until the transaction is complete.

      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      address - The address of the register on the device to be written.
      dataToSend - The byte to write to the register on the device.
      sendSize - Number of bytes to send.
      Returns:
      >= 0 on success or -1 on transfer abort.
      See Also:
      • "HAL_WriteI2C"
    • i2CWriteB

      public static int i2CWriteB(int port, byte address, byte[] dataToSend, byte sendSize)
      Executes a write transaction with the device.

      Writes a single byte to a register on a device and wait until the transaction is complete.

      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      address - The address of the register on the device to be written.
      dataToSend - The byte to write to the register on the device.
      sendSize - Number of bytes to send.
      Returns:
      >= 0 on success or -1 on transfer abort.
      See Also:
      • "HAL_WriteI2C"
    • i2CRead

      public static int i2CRead(int port, byte address, ByteBuffer dataReceived, byte receiveSize)
      Executes a read transaction with the device.

      Reads bytes from a device. Most I2C devices will auto-increment the register pointer internally allowing you to read consecutive registers on a device in a single transaction.

      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      address - The register to read first in the transaction.
      dataReceived - A ByteBuffer to store the data read from the device.
      receiveSize - The number of bytes to read in the transaction.
      Returns:
      >= 0 on success or -1 on transfer abort.
      See Also:
      • "HAL_ReadI2C"
    • i2CReadB

      public static int i2CReadB(int port, byte address, byte[] dataReceived, byte receiveSize)
      Executes a read transaction with the device.

      Reads bytes from a device. Most I2C devices will auto-increment the register pointer internally allowing you to read consecutive registers on a device in a single transaction.

      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      address - The register to read first in the transaction.
      dataReceived - A byte array to store the data read from the device.
      receiveSize - The number of bytes to read in the transaction.
      Returns:
      >= 0 on success or -1 on transfer abort.
      See Also:
      • "HAL_ReadI2C"
    • i2CClose

      public static void i2CClose(int port)
      Closes an I2C port.
      Parameters:
      port - The I2C port, 0 for the on-board, 1 for the MXP.
      See Also:
      • "HAL_CloseI2C"