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.

      If the CAN timeout is set to 0 with SparkBase.setCANTimeout(int), this will have no effect when getting the response from the SPARK motor controller fails. However, it will retry when sending the request from the roboRIO fails.

      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()