File tree Expand file tree Collapse file tree 3 files changed +61
-0
lines changed
src/main/java/frc/robot/subsystems/superstructure/intake/sensor Expand file tree Collapse file tree 3 files changed +61
-0
lines changed Original file line number Diff line number Diff line change @@ -28,4 +28,14 @@ public void periodic() {
2828 public boolean isDetected () {
2929 return hasItem ;
3030 }
31+
32+ /** For simulation, request item */
33+ public void simulateItemRequest () {
34+ io .simulateItemDesire ();
35+ }
36+
37+ /** For simulation, eject item */
38+ public void simulateItemEjection () {
39+ io .simulateItemEjection ();
40+ }
3141}
Original file line number Diff line number Diff line change @@ -13,4 +13,8 @@ public static class SensorIOInputs {
1313
1414 /** Updates the set of loggable inputs. */
1515 default void updateInputs (SensorIOInputs inputs ) {}
16+
17+ default void simulateItemDesire () {}
18+
19+ default void simulateItemEjection () {}
1620}
Original file line number Diff line number Diff line change 1+ package frc .robot .subsystems .superstructure .intake .sensor ;
2+
3+ import java .util .Random ;
4+
5+ import edu .wpi .first .wpilibj .Timer ;
6+
7+ public class SensorIOSim implements SensorIO {
8+
9+ public static final double MAX_TIME_TILL_ITEM_SECONDS = 2.0 ;
10+
11+ private final Timer timer = new Timer ();
12+ private final Random random = new Random ();
13+
14+ private double timeTillItem = 0.0 ;
15+ private boolean itemRequested = false ;
16+
17+ private boolean hasItem = false ;
18+
19+ @ Override
20+ public void updateInputs (SensorIOInputs inputs ) {
21+ inputs .connected = true ;
22+
23+ if (itemRequested ) {
24+ if (timer .hasElapsed (timeTillItem )) {
25+ hasItem = true ;
26+ }
27+ } else {
28+ hasItem = false ;
29+ }
30+
31+ inputs .detected = hasItem ;
32+ inputs .rawValue = inputs .detected ? 1.0 : 0.0 ;
33+ }
34+
35+ @ Override
36+ public void simulateItemDesire () {
37+ timer .start ();
38+ timeTillItem = random .nextDouble () * MAX_TIME_TILL_ITEM_SECONDS ;
39+ itemRequested = true ;
40+ }
41+
42+ @ Override
43+ public void simulateItemEjection () {
44+ itemRequested = false ;
45+ hasItem = false ;
46+ }
47+ }
You can’t perform that action at this time.
0 commit comments