Skip to content

Commit

Permalink
fix sendable handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Oblarg committed Feb 26, 2019
1 parent b9330db commit 3e9e2df
Show file tree
Hide file tree
Showing 17 changed files with 232 additions and 84 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package io.github.oblarg.oblog;

import java.util.Map;

interface ComplexWidgetWrapper {
ComplexWidgetWrapper withProperties(Map<String, Object> properties);
ComplexWidgetWrapper withWidget(String widgetType);
}
64 changes: 39 additions & 25 deletions lib/src/main/java/io/github/oblarg/oblog/Logger.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
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 io.github.oblarg.oblog.annotations.*;
import edu.wpi.first.networktables.NetworkTableEntry;
import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets;
Expand Down Expand Up @@ -256,25 +258,25 @@ private interface SetterProcessor {
entry(Config.Command.class,
(supplier, rawParams, bin, name) -> {
Config.Command params = (Config.Command) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kCommand.getWidgetName());
}),
entry(Config.PIDCommand.class,
(supplier, rawParams, bin, name) -> {
Config.PIDCommand params = (Config.PIDCommand) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kPIDCommand.getWidgetName());
}),
entry(Config.PIDController.class,
(supplier, rawParams, bin, name) -> {
Config.PIDController params = (Config.PIDController) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kPIDController.getWidgetName());
}),
entry(Config.Relay.class,
(supplier, rawParams, bin, name) -> {
Config.Relay params = (Config.Relay) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kRelay.getWidgetName());
})
);
Expand Down Expand Up @@ -338,45 +340,57 @@ private interface SetterProcessor {
}),
entry(Log.VoltageView.class,
(supplier, rawParams, bin, name) -> {
Log.VoltageView params = (Log.VoltageView) rawParams;
Logger.registerEntry(
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
.withWidget(BuiltInWidgets.kVoltageView.getWidgetName())
.withProperties(Map.of(
"min", params.min(),
"max", params.max(),
"center", params.center(),
"orientation", params.orientation(),
"numberOfTickMarks", params.numTicks()))
.getEntry(),
supplier);
if (supplier.get() instanceof AnalogInput) {
Log.VoltageView params = (Log.VoltageView) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kVoltageView.getWidgetName())
.withProperties(Map.of(
"min", params.min(),
"max", params.max(),
"center", params.center(),
"orientation", params.orientation(),
"numberOfTickMarks", params.numTicks()));
} else {
Log.VoltageView params = (Log.VoltageView) rawParams;
Logger.registerEntry(
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
.withWidget(BuiltInWidgets.kVoltageView.getWidgetName())
.withProperties(Map.of(
"min", params.min(),
"max", params.max(),
"center", params.center(),
"orientation", params.orientation(),
"numberOfTickMarks", params.numTicks()))
.getEntry(),
supplier);
}
}),
entry(Log.PDP.class,
(supplier, rawParams, bin, name) -> {
Log.PDP params = (Log.PDP) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kPowerDistributionPanel.getWidgetName())
.withProperties(Map.of(
"showVoltageAndCurrentValues", params.showVoltageAndCurrent()));
}),
entry(Log.Encoder.class,
(supplier, rawParams, bin, name) -> {
Log.Encoder params = (Log.Encoder) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kEncoder.getWidgetName());
}),
entry(Log.SpeedController.class,
(supplier, rawParams, bin, name) -> {
Log.SpeedController params = (Log.SpeedController) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kSpeedController.getWidgetName())
.withProperties(Map.of(
"orientation", params.orientation()));
}),
entry(Log.Accelerometer.class,
(supplier, rawParams, bin, name) -> {
Log.Accelerometer params = (Log.Accelerometer) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kAccelerometer.getWidgetName())
.withProperties(Map.of(
"min", params.min(),
Expand All @@ -388,7 +402,7 @@ private interface SetterProcessor {
entry(Log.ThreeAxisAccelerometer.class,
(supplier, rawParams, bin, name) -> {
Log.ThreeAxisAccelerometer params = (Log.ThreeAxisAccelerometer) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.k3AxisAccelerometer.getWidgetName())
.withProperties(Map.of(
"range", params.range(),
Expand All @@ -399,7 +413,7 @@ private interface SetterProcessor {
entry(Log.Gyro.class,
(supplier, rawParams, bin, name) -> {
Log.Gyro params = (Log.Gyro) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kGyro.getWidgetName())
.withProperties(Map.of(
"majorTickSpacing", params.majorTickSpacing(),
Expand All @@ -409,7 +423,7 @@ private interface SetterProcessor {
entry(Log.DifferentialDrive.class,
(supplier, rawParams, bin, name) -> {
Log.DifferentialDrive params = (Log.DifferentialDrive) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kDifferentialDrive.getWidgetName())
.withProperties(Map.of(
"numberOfWheels", params.numWheels(),
Expand All @@ -419,15 +433,15 @@ private interface SetterProcessor {
entry(Log.MecanumDrive.class,
(supplier, rawParams, bin, name) -> {
Log.MecanumDrive params = (Log.MecanumDrive) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kMecanumDrive.getWidgetName())
.withProperties(Map.of(
"showVelocityVectors", params.showVel()));
}),
entry(Log.CameraStream.class,
(supplier, rawParams, bin, name) -> {
Log.CameraStream params = (Log.CameraStream) rawParams;
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), supplier.get())
bin.add((params.name().equals("NO_NAME")) ? name : params.name(), (Sendable) supplier.get())
.withWidget(BuiltInWidgets.kCameraStream.getWidgetName())
.withProperties(Map.of(
"showCrosshair", params.showCrosshairs(),
Expand Down
15 changes: 15 additions & 0 deletions lib/src/main/java/io/github/oblarg/oblog/NTComplexWidget.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package io.github.oblarg.oblog;

import java.util.Map;

public class NTComplexWidget implements ComplexWidgetWrapper {
@Override
public ComplexWidgetWrapper withProperties(Map<String, Object> properties) {
return this;
}

@Override
public ComplexWidgetWrapper withWidget(String widgetType) {
return this;
}
}
8 changes: 7 additions & 1 deletion lib/src/main/java/io/github/oblarg/oblog/NTContainer.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.github.oblarg.oblog;

import edu.wpi.first.networktables.NetworkTable;
import edu.wpi.first.wpilibj.Sendable;
import edu.wpi.first.wpilibj.shuffleboard.LayoutType;

class NTContainer implements ShuffleboardContainerWrapper {
Expand All @@ -17,7 +18,12 @@ public ShuffleboardLayoutWrapper getLayout(String title, LayoutType type) {
}

@Override
public ShuffleboardWidgetWrapper add(String title, Object defaultValue) {
public SimpleWidgetWrapper add(String title, Object defaultValue) {
return new NTWidget(table.getEntry(title), defaultValue);
}

@Override
public ComplexWidgetWrapper add(String title, Sendable defaultValue) {
return new NTComplexWidget();
}
}
8 changes: 7 additions & 1 deletion lib/src/main/java/io/github/oblarg/oblog/NTLayout.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.github.oblarg.oblog;

import edu.wpi.first.networktables.NetworkTable;
import edu.wpi.first.wpilibj.Sendable;
import edu.wpi.first.wpilibj.shuffleboard.LayoutType;

import java.util.Map;
Expand All @@ -24,7 +25,12 @@ public ShuffleboardLayoutWrapper getLayout(String title, LayoutType type) {
}

@Override
public ShuffleboardWidgetWrapper add(String title, Object defaultValue) {
public SimpleWidgetWrapper add(String title, Object defaultValue) {
return new NTWidget(table.getEntry(title), defaultValue);
}

@Override
public ComplexWidgetWrapper add(String title, Sendable defaultValue) {
return new NTComplexWidget();
}
}
6 changes: 3 additions & 3 deletions lib/src/main/java/io/github/oblarg/oblog/NTWidget.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import java.util.Map;

class NTWidget implements ShuffleboardWidgetWrapper {
class NTWidget implements SimpleWidgetWrapper {

NetworkTableEntry entry;

Expand All @@ -19,12 +19,12 @@ public NetworkTableEntry getEntry() {
}

@Override
public ShuffleboardWidgetWrapper withProperties(Map<String, Object> properties) {
public SimpleWidgetWrapper withProperties(Map<String, Object> properties) {
return this;
}

@Override
public ShuffleboardWidgetWrapper withWidget(String widgetType) {
public SimpleWidgetWrapper withWidget(String widgetType) {
return this;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.github.oblarg.oblog;

import edu.wpi.first.wpilibj.Sendable;
import edu.wpi.first.wpilibj.shuffleboard.LayoutType;

interface ShuffleboardContainerWrapper {
ShuffleboardLayoutWrapper getLayout(String title, LayoutType type);
ShuffleboardWidgetWrapper add(String title, Object defaultValue);
SimpleWidgetWrapper add(String title, Object defaultValue);
ComplexWidgetWrapper add(String title, Sendable defaultValue);
}

This file was deleted.

11 changes: 11 additions & 0 deletions lib/src/main/java/io/github/oblarg/oblog/SimpleWidgetWrapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.github.oblarg.oblog;

import edu.wpi.first.networktables.NetworkTableEntry;

import java.util.Map;

interface SimpleWidgetWrapper {
NetworkTableEntry getEntry();
SimpleWidgetWrapper withProperties(Map<String, Object> properties);
SimpleWidgetWrapper withWidget(String widgetType);
}
26 changes: 26 additions & 0 deletions lib/src/main/java/io/github/oblarg/oblog/WrappedComplexWidget.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package io.github.oblarg.oblog;

import edu.wpi.first.wpilibj.shuffleboard.ComplexWidget;

import java.util.Map;

public class WrappedComplexWidget implements ComplexWidgetWrapper{

ComplexWidget widget;

public WrappedComplexWidget(ComplexWidget widget) {
this.widget = widget;
}

@Override
public ComplexWidgetWrapper withProperties(Map<String, Object> properties) {
widget.withProperties(properties);
return this;
}

@Override
public ComplexWidgetWrapper withWidget(String widgetType) {
widget.withWidget(widgetType);
return this;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.github.oblarg.oblog;

import edu.wpi.first.wpilibj.Sendable;
import edu.wpi.first.wpilibj.shuffleboard.LayoutType;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardContainer;

Expand All @@ -17,7 +18,12 @@ public ShuffleboardLayoutWrapper getLayout(String title, LayoutType type) {
}

@Override
public ShuffleboardWidgetWrapper add(String title, Object defaultValue) {
return new WrappedShuffleboardWidget (container.add(title, defaultValue));
public SimpleWidgetWrapper add(String title, Object defaultValue) {
return new WrappedSimpleWidget(container.add(title, defaultValue));
}

@Override
public ComplexWidgetWrapper add(String title, Sendable defaultValue) {
return new WrappedComplexWidget(container.add(title, defaultValue));
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.github.oblarg.oblog;

import edu.wpi.first.wpilibj.Sendable;
import edu.wpi.first.wpilibj.shuffleboard.LayoutType;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardLayout;

Expand All @@ -19,8 +20,13 @@ public ShuffleboardLayoutWrapper getLayout(String title, LayoutType type) {
}

@Override
public ShuffleboardWidgetWrapper add(String title, Object defaultValue) {
return new WrappedShuffleboardWidget(layout.add(title, defaultValue));
public SimpleWidgetWrapper add(String title, Object defaultValue) {
return new WrappedSimpleWidget(layout.add(title, defaultValue));
}

@Override
public ComplexWidgetWrapper add(String title, Sendable defaultValue) {
return new WrappedComplexWidget(layout.add(title, defaultValue));
}

@Override
Expand Down

This file was deleted.

Loading

0 comments on commit 3e9e2df

Please sign in to comment.