From 597b17d91404b0e5e2426676f563ea002ad475f9 Mon Sep 17 00:00:00 2001 From: Eli Date: Wed, 27 Feb 2019 23:28:23 -0500 Subject: [PATCH] improve default annotations --- .../io/github/oblarg/logexample/Robot.java | 2 +- .../logexample/commands/LoggedCommand.java | 5 ++-- lib/build.gradle | 4 +++ .../java/io/github/oblarg/oblog/Logger.java | 28 +++++++++++++++---- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/examples/src/main/java/io/github/oblarg/logexample/Robot.java b/examples/src/main/java/io/github/oblarg/logexample/Robot.java index 3b12e90..a116da2 100644 --- a/examples/src/main/java/io/github/oblarg/logexample/Robot.java +++ b/examples/src/main/java/io/github/oblarg/logexample/Robot.java @@ -38,7 +38,7 @@ public class Robot extends TimedRobot { private LoggedCommand command10Seconds = new LoggedCommand(10); - @Log.DifferentialDrive + @Log private static DifferentialDrive drive = new DifferentialDrive(new Victor(1), new Victor(2)); //This is loggable, but will not be logged due to the exclude annotation. diff --git a/examples/src/main/java/io/github/oblarg/logexample/commands/LoggedCommand.java b/examples/src/main/java/io/github/oblarg/logexample/commands/LoggedCommand.java index 5a09dca..b298b9b 100644 --- a/examples/src/main/java/io/github/oblarg/logexample/commands/LoggedCommand.java +++ b/examples/src/main/java/io/github/oblarg/logexample/commands/LoggedCommand.java @@ -9,7 +9,7 @@ public class LoggedCommand extends Command implements Loggable { private double timeout; - @Config.Command + @Config private Command thisCommand = this; //logs a graph of time since initialized @@ -28,12 +28,13 @@ public String configureLogName() { public LoggedCommand(double timeout){ super(timeout); this.timeout = timeout; + + setRunWhenDisabled(true); } @Override public void execute(){ time = timeSinceInitialized(); - System.out.println("Executing!"); } @Override diff --git a/lib/build.gradle b/lib/build.gradle index f4f7e08..6c3a23c 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -25,6 +25,10 @@ dependencies { compile wpi.deps.vendor.java() nativeZip wpi.deps.vendor.jni(wpi.platforms.roborio) nativeDesktopZip wpi.deps.vendor.jni(wpi.platforms.desktop) + + simulation rootProject.files('libs/halsim_ds_socketd.dll') + simulation "edu.wpi.first.halsim:halsim_ds_socket:${wpi.wpilibVersion}:${wpi.platforms.desktop}@zip" + simulation "edu.wpi.first.halsim:halsim_ds_socket:${wpi.wpilibVersion}:${wpi.platforms.desktop}debug@zip" } /* Utils */ diff --git a/lib/src/main/java/io/github/oblarg/oblog/Logger.java b/lib/src/main/java/io/github/oblarg/oblog/Logger.java index a95eb3d..18dee60 100644 --- a/lib/src/main/java/io/github/oblarg/oblog/Logger.java +++ b/lib/src/main/java/io/github/oblarg/oblog/Logger.java @@ -1,11 +1,18 @@ package io.github.oblarg.oblog; +import edu.wpi.cscore.VideoSource; import edu.wpi.first.networktables.EntryListenerFlags; import edu.wpi.first.networktables.NetworkTable; import edu.wpi.first.networktables.NetworkTableInstance; -import edu.wpi.first.wpilibj.AnalogInput; -import edu.wpi.first.wpilibj.Sendable; +import edu.wpi.first.wpilibj.*; +import edu.wpi.first.wpilibj.command.Command; +import edu.wpi.first.wpilibj.command.CommandGroup; +import edu.wpi.first.wpilibj.command.PIDCommand; +import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.drive.MecanumDrive; +import edu.wpi.first.wpilibj.interfaces.Accelerometer; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardContainer; +import edu.wpi.first.wpilibj.shuffleboard.WidgetType; import io.github.oblarg.oblog.annotations.*; import edu.wpi.first.networktables.NetworkTableEntry; import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets; @@ -280,6 +287,11 @@ private interface SetterProcessor { private static final Map, FieldProcessor> configFieldHandler = Map.ofEntries( + entry(Config.class, + (supplier, rawParams, bin, name) -> { + Config params = (Config) rawParams; + bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get()); + }), entry(Config.Command.class, (supplier, rawParams, bin, name) -> { Config.Command params = (Config.Command) rawParams; @@ -310,9 +322,13 @@ private interface SetterProcessor { entry(Log.class, (supplier, rawParams, bin, name) -> { Log params = (Log) rawParams; - Logger.registerEntry( - bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get()).getEntry(), - supplier); + if (supplier.get() instanceof Sendable) { + bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get()); + } else { + Logger.registerEntry( + bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get()).getEntry(), + supplier); + } }), entry(Log.NumberBar.class, (supplier, rawParams, bin, name) -> { @@ -484,7 +500,7 @@ private interface SetterProcessor { }) ); - private static Map> setterCaster = Map.ofEntries( + private static final Map> setterCaster = Map.ofEntries( entry(Integer.TYPE, (value) -> ((Number) value).intValue()), entry(Integer.class, (value) -> ((Number) value).intValue()), entry(Double.TYPE, (value) -> ((Number) value).doubleValue()),