Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Commit

Permalink
Merge pull request #12 from Team766/merge-and-update-advantage-kit
Browse files Browse the repository at this point in the history
merge AdvantageKit integration from MaroonFramework
  • Loading branch information
dejabot authored Jan 16, 2024
2 parents 37da835 + 0c45ffd commit 4e87915
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 3 deletions.
16 changes: 16 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,22 @@ allprojects {

// REV
maven { url = uri('https://maven.revrobotics.com/') }

// AdvantageKit
// we're using the credentials documented at
// https://github.com/Mechanical-Advantage/AdvantageKit/blob/main/docs/INSTALLATION.md
maven {
url = uri("https://maven.pkg.github.com/Mechanical-Advantage/AdvantageKit")
credentials {
username = "Mechanical-Advantage-Bot"
password = "\u0067\u0068\u0070\u005f\u006e\u0056\u0051\u006a\u0055\u004f\u004c\u0061\u0079\u0066\u006e\u0078\u006e\u0037\u0051\u0049\u0054\u0042\u0032\u004c\u004a\u006d\u0055\u0070\u0073\u0031\u006d\u0037\u004c\u005a\u0030\u0076\u0062\u0070\u0063\u0051"
}
}
}

//AdvantageKit code
configurations.all {
exclude group: "edu.wpi.first.wpilibj"
}
}

Expand Down
29 changes: 27 additions & 2 deletions src/main/java/com/team766/hal/wpilib/RobotMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,22 @@
import com.team766.hal.GenericRobotMain;
import com.team766.hal.RobotProvider;
import com.team766.logging.LoggerExceptionUtils;
import edu.wpi.first.wpilibj.DataLogManager;
import edu.wpi.first.wpilibj.DriverStation;
import edu.wpi.first.wpilibj.Filesystem;
import edu.wpi.first.wpilibj.PowerDistribution;
import edu.wpi.first.wpilibj.PowerDistribution.ModuleType;
import edu.wpi.first.wpilibj.RobotBase;
import edu.wpi.first.wpilibj.TimedRobot;
import java.io.File;
// import java.nio.file.Files;
import java.nio.file.Path;
import java.util.function.Supplier;
import org.littletonrobotics.junction.LoggedRobot;
import org.littletonrobotics.junction.Logger;
import org.littletonrobotics.junction.networktables.NT4Publisher;
import org.littletonrobotics.junction.wpilog.WPILOGWriter;

public class RobotMain extends TimedRobot {
public class RobotMain extends LoggedRobot {
private static final String USB_CONFIG_FILE = "/U/config/robotConfig.txt";
private static final String INTERNAL_CONFIG_FILE = "/home/lvuser/robotConfig.txt";

Expand Down Expand Up @@ -82,6 +89,24 @@ public void robotInit() {
RobotProvider.instance = new WPIRobotProvider();
robot = new GenericRobotMain();

DriverStation.startDataLog(DataLogManager.getLog());

if (isReal()) {
// enable dual-logging
com.team766.logging.Logger.enableLoggingToDataLog(true);

// set up AdvantageKit logging
DataLogManager.log("Initializing logging.");
Logger.addDataReceiver(new WPILOGWriter("/U/logs")); // Log to sdcard
Logger.addDataReceiver(new NT4Publisher()); // Publish data to NetworkTables
new PowerDistribution(1, ModuleType.kRev); // Enables power distribution logging

} else {
// TODO: add support for simulation logging/replay
}

Logger.start();

robot.robotInit();
} catch (Exception e) {
e.printStackTrace();
Expand Down
18 changes: 17 additions & 1 deletion src/main/java/com/team766/logging/Logger.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.team766.config.ConfigFileReader;
import com.team766.library.CircularBuffer;
import edu.wpi.first.wpilibj.DataLogManager;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Collection;
Expand All @@ -10,6 +11,9 @@
import java.util.EnumMap;

public final class Logger {

private static boolean alsoLogToDataLog = false;

private static class LogUncaughtException implements Thread.UncaughtExceptionHandler {
public void uncaughtException(final Thread t, final Throwable e) {
e.printStackTrace();
Expand Down Expand Up @@ -68,6 +72,10 @@ public void uncaughtException(final Thread t, final Throwable e) {
Thread.setDefaultUncaughtExceptionHandler(new LogUncaughtException());
}

public static void enableLoggingToDataLog(boolean enabled) {
alsoLogToDataLog = enabled;
}

public static Logger get(final Category category) {
return m_loggers.get(category);
}
Expand Down Expand Up @@ -100,9 +108,11 @@ public void logData(final Severity severity, final String format, final Object..
.setTime(getTime())
.setSeverity(severity)
.setCategory(m_category);
entry.setMessageStr(String.format(format, args));
String message = String.format(format, args);
entry.setMessageStr(message);
m_recentEntries.add(entry.build());
entry.setMessageStr(format);

for (Object arg : args) {
var logValue = LogValue.newBuilder();
SerializationUtils.valueToProto(arg, logValue);
Expand All @@ -111,6 +121,9 @@ public void logData(final Severity severity, final String format, final Object..
if (m_logWriter != null) {
m_logWriter.logStoredFormat(entry);
}
if (alsoLogToDataLog) {
DataLogManager.log(message);
}
}

public void logRaw(final Severity severity, final String message) {
Expand All @@ -125,6 +138,9 @@ public void logRaw(final Severity severity, final String message) {
if (m_logWriter != null) {
m_logWriter.log(entry);
}
if (alsoLogToDataLog) {
DataLogManager.log(message);
}
}

void logOnlyInMemory(final Severity severity, final String message) {
Expand Down
42 changes: 42 additions & 0 deletions vendordeps/AdvantageKit.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"fileName": "AdvantageKit.json",
"name": "AdvantageKit",
"version": "3.0.0",
"uuid": "d820cc26-74e3-11ec-90d6-0242ac120003",
"frcYear": "2024",
"mavenUrls": [],
"jsonUrl": "https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json",
"javaDependencies": [
{
"groupId": "org.littletonrobotics.akit.junction",
"artifactId": "wpilib-shim",
"version": "3.0.0"
},
{
"groupId": "org.littletonrobotics.akit.junction",
"artifactId": "junction-core",
"version": "3.0.0"
},
{
"groupId": "org.littletonrobotics.akit.conduit",
"artifactId": "conduit-api",
"version": "3.0.0"
}
],
"jniDependencies": [
{
"groupId": "org.littletonrobotics.akit.conduit",
"artifactId": "conduit-wpilibio",
"version": "3.0.0",
"skipInvalidPlatforms": false,
"isJar": false,
"validPlatforms": [
"linuxathena",
"windowsx86-64",
"linuxx86-64",
"osxuniversal"
]
}
],
"cppDependencies": []
}

0 comments on commit 4e87915

Please sign in to comment.