File tree Expand file tree Collapse file tree 4 files changed +11
-27
lines changed
RobotLibrary/src/main/java/com/technototes/library/hardware Expand file tree Collapse file tree 4 files changed +11
-27
lines changed Original file line number Diff line number Diff line change 33import com .technototes .library .hardware .motor .Motor ;
44import java .util .Arrays ;
55import java .util .List ;
6+ import java .util .function .Consumer ;
67
78/**
89 * Interface for hardware device groups
@@ -38,9 +39,13 @@ default List<T> getAllDeviceList() {
3839 /**
3940 * Propagate actions across the followers
4041 *
41- * @param value the value to propagate
42+ * @param func the action to propagate
4243 */
43- default void propagate (double value ) {}
44+ default void propagate (Consumer <? super T > func ) {
45+ for (T obj : getFollowers ()) {
46+ func .accept (obj );
47+ }
48+ }
4449
4550 T getDeviceNum (int i );
4651
Original file line number Diff line number Diff line change 1111@ SuppressWarnings ("unused" )
1212public class EncodedMotorGroup <T extends DcMotorSimple >
1313 extends EncodedMotor <T >
14- implements HardwareDeviceGroup <Motor <T >> {
14+ implements HardwareDeviceGroup <EncodedMotor <T >> {
1515
1616 private final EncodedMotor <T >[] followers ;
1717
@@ -39,17 +39,10 @@ public EncodedMotor<T>[] getAllDevices() {
3939 return m ;
4040 }
4141
42- @ Override
43- public void propagate (double value ) {
44- for (EncodedMotor <T > m : followers ) {
45- m .setSpeed (value );
46- }
47- }
48-
4942 @ Override
5043 public void setVelocity (double tps ) {
5144 super .setVelocity (tps );
52- propagate (super . getSpeed ( ));
45+ propagate (obj -> obj . setVelocity ( tps ));
5346 }
5447
5548 public void setVelocities (double ... tps ) {
Original file line number Diff line number Diff line change @@ -38,17 +38,10 @@ public Motor<T>[] getAllDevices() {
3838 return m ;
3939 }
4040
41- @ Override
42- public void propagate (double value ) {
43- for (Motor m : followers ) {
44- m .setSpeed (value );
45- }
46- }
47-
4841 @ Override
4942 public void setSpeed (double speed ) {
5043 super .setSpeed (speed );
51- propagate (speed );
44+ propagate (obj -> obj . setSpeed ( speed ) );
5245 }
5346
5447 public void setSpeeds (double ... speeds ) {
Original file line number Diff line number Diff line change @@ -38,13 +38,6 @@ public Servo[] getAllDevices() {
3838 return m ;
3939 }
4040
41- @ Override
42- public void propagate (double value ) {
43- for (Servo s : followers ) {
44- s .setPosition (value );
45- }
46- }
47-
4841 @ Override
4942 public Servo getDeviceNum (int i ) {
5043 return (i == 0 ) ? this : followers [i - 1 ];
@@ -53,7 +46,7 @@ public Servo getDeviceNum(int i) {
5346 @ Override
5447 public void setPosition (double position ) {
5548 super .setPosition (position );
56- propagate (position );
49+ propagate (obj -> obj . setPosition ( position ) );
5750 }
5851
5952 public void setPositions (double ... positions ) {
You can’t perform that action at this time.
0 commit comments