Skip to main content

Supported Types

Data is stored using string keys where slashes are used to denote subtables (similar to NetworkTables). Like NetworkTables, all logged values are persistent (they will continue to appear on subsequent cycles until updated).

Simple

The following simple data types are currently supported:

boolean, int, long, float, double, String, boolean[], int[], long[], float[], double[], String[], byte[]

Structured

Many WPILib classes can be serialized to binary data using structs or protobufs. Supported classes include Translation2d, Pose3d, and SwerveModuleState with more coming soon. These classes can be logged as single values or arrays just like any simple type, and used as input or output fields.

AdvantageKit also supports logging the state of a Mechanism2d object as an output. For details, see here.

Units

WPILib includes a units library that can be used to simplify unit conversions. Measure objects can be logged and replayed by AdvantageKit. These values will be stored in the log as doubles using the base unit for the measurement type (e.g. distances will always be logged in meters).

Enums

Enum values can be logged and replayed by AdvantageKit. These values will be stored in the log as string values (using the name() method).