Class SparkLowLevel

java.lang.Object
com.revrobotics.spark.SparkLowLevel
All Implemented Interfaces:
MotorController, AutoCloseable
Direct Known Subclasses:
SparkBase

public abstract class SparkLowLevel extends Object implements MotorController, AutoCloseable
  • Field Details

    • kAPIMajorVersion

      public static final int kAPIMajorVersion
    • kAPIMinorVersion

      public static final int kAPIMinorVersion
    • kAPIBuildVersion

      public static final int kAPIBuildVersion
    • kAPIVersion

      public static final int kAPIVersion
    • sparkHandle

      protected final long sparkHandle
    • isClosed

      protected final AtomicBoolean isClosed
    • motorType

      protected final SparkLowLevel.MotorType motorType
    • expectedSparkModel

      protected final SparkLowLevel.SparkModel expectedSparkModel
  • Method Details

    • close

      public void close()
      Closes the SPARK Controller
      Specified by:
      close in interface AutoCloseable
    • getFirmwareVersion

      public int getFirmwareVersion()
      Get the firmware version of the SPARK.
      Returns:
      uint32_t Firmware version integer. Value is represented as 4 bytes, Major.Minor.Build H.Build L
    • setControlFramePeriodMs

      public void setControlFramePeriodMs(int periodMs)
      Set the control frame send period for the native CAN Send thread.
      Parameters:
      periodMs - The send period in milliseconds between 1ms and 100ms or set to 0 to disable periodic sends. Note this is not updated until the next call to Set() or SetReference().
    • getFirmwareString

      public String getFirmwareString()
      Get the firmware version of the SPARK as a string.
      Returns:
      std::string Human readable firmware version string
    • getSerialNumber

      public byte[] getSerialNumber()
      Get the unique serial number of the SPARK. Not currently available.
      Returns:
      byte[] Vector of bytes representig the unique serial number
    • getDeviceId

      public int getDeviceId()
      Get the configured Device ID of the SPARK.
      Returns:
      int device ID
    • getMotorType

      public SparkLowLevel.MotorType getMotorType()
      Get the motor type setting for the SPARK
      Returns:
      MotorType Motor type setting
    • setPeriodicFrameTimeout

      public void setPeriodicFrameTimeout(int timeoutMs)
      Set the amount of time to wait for a periodic status frame before returning a timeout error. This timeout will apply to all periodic status frames for the SPARK motor controller.

      To prevent invalid timeout errors, the minimum timeout for a given periodic status is 2.1 times its period. To use the minimum timeout for all status frames, set timeoutMs to 0.

      The default timeout is 500ms.

      Parameters:
      timeoutMs - The timeout in milliseconds
    • setCANMaxRetries

      public void setCANMaxRetries(int numRetries)
      Set the maximum number of times to retry an RTR CAN frame. This applies to calls such as SetParameter* and GetParameter* where a request is made to the SPARK motor controller and a response is expected. Anytime sending the request or receiving the response fails, it will retry the request a number of times, no more than the value set by this method. If an attempt succeeds, it will immediately return. The minimum number of retries is 0, where only a single attempt will be made and will return regardless of success or failure.

      The default maximum is 5 retries.

      Parameters:
      numRetries - The maximum number of retries
    • getSafeFloat

      public float getSafeFloat(float f)
    • createSimFaultManager

      public void createSimFaultManager()
      Create the sim gui Fault Manager for this Spark Device
    • throwIfClosed

      protected void throwIfClosed()