Skip to content
This repository was archived by the owner on Jan 15, 2021. It is now read-only.

Commit b838d3a

Browse files
authored
Starting to move toward using wrappers instead of the port list conecpt (#199)
1 parent e89f8c1 commit b838d3a

File tree

110 files changed

+456
-439
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+456
-439
lines changed

.idea/compiler.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/BaseWrapperAccessor.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
import org.apache.logging.log4j.LogManager;
66

77
import java.util.HashMap;
8-
import java.util.List;
8+
import java.util.HashSet;
99
import java.util.Map;
10+
import java.util.Set;
11+
import java.util.stream.Collectors;
12+
import java.util.stream.IntStream;
1013

1114
public abstract class BaseWrapperAccessor<WrapperType extends ISensorWrapper>
1215
{
@@ -38,7 +41,7 @@ public final void removeSimulator(int aPort)
3841

3942
public WrapperType getWrapper(int aHandle)
4043
{
41-
if (!mWrapperMap.containsKey(aHandle) && getPortList().contains(aHandle))
44+
if (!mWrapperMap.containsKey(aHandle) && getPorts().contains(aHandle))
4245
{
4346
register(aHandle, createWrapperForExistingType(aHandle));
4447
}
@@ -47,5 +50,30 @@ public WrapperType getWrapper(int aHandle)
4750

4851
protected abstract WrapperType createWrapperForExistingType(int aHandle);
4952

50-
protected abstract List<Integer> getPortList();
53+
public Map<Integer, WrapperType> getWrappers()
54+
{
55+
Set<Integer> newPorts = new HashSet<>(getPorts());
56+
newPorts.removeAll(mWrapperMap.keySet());
57+
for (Integer port : newPorts)
58+
{
59+
getWrapper(port);
60+
}
61+
62+
Set<Integer> removedPorts = new HashSet<>(mWrapperMap.keySet());
63+
removedPorts.removeAll(getPorts());
64+
65+
for (Integer port : removedPorts)
66+
{
67+
removeSimulator(port);
68+
}
69+
70+
return mWrapperMap;
71+
}
72+
73+
private Set<Integer> getPorts()
74+
{
75+
return IntStream.of(getPortList()).boxed().collect(Collectors.toSet());
76+
}
77+
78+
protected abstract int[] getPortList();
5179
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniAccelerometerWrapperAccessor.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.AccelerometerWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IAccelerometerWrapper;
106
import com.snobot.simulator.module_wrappers.AccelerometerWrapper;
@@ -27,8 +23,8 @@ protected AccelerometerWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(AccelerometerWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return AccelerometerWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniAnalogInWrapperAccessor.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.AnalogInWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IAnalogInWrapper;
106
import com.snobot.simulator.module_wrappers.AnalogInWrapper;
@@ -27,8 +23,8 @@ protected AnalogInWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(AnalogInWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return AnalogInWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniAnalogOutWrapperAccessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.AnalogOutWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IAnalogOutWrapper;
106
import com.snobot.simulator.module_wrappers.AnalogOutWrapper;
117
import com.snobot.simulator.wrapper_accessors.AnalogOutputWrapperAccessor;
128

13-
public class JniAnalogOutWrapperAccessor extends BaseWrapperAccessor<AnalogOutWrapper> implements AnalogOutputWrapperAccessor
9+
public class JniAnalogOutWrapperAccessor extends BaseWrapperAccessor<IAnalogOutWrapper> implements AnalogOutputWrapperAccessor
1410
{
1511
@Override
1612
public IAnalogOutWrapper createSimulator(int aPort, String aType)
@@ -27,8 +23,8 @@ protected AnalogOutWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(AnalogOutWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return AnalogOutWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniDigitalSourceWrapperAccessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.DigitalSourceWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IDigitalIoWrapper;
106
import com.snobot.simulator.module_wrappers.DigitalSourceWrapper;
117
import com.snobot.simulator.wrapper_accessors.DigitalSourceWrapperAccessor;
128

13-
public class JniDigitalSourceWrapperAccessor extends BaseWrapperAccessor<DigitalSourceWrapper> implements DigitalSourceWrapperAccessor
9+
public class JniDigitalSourceWrapperAccessor extends BaseWrapperAccessor<IDigitalIoWrapper> implements DigitalSourceWrapperAccessor
1410
{
1511
@Override
1612
public IDigitalIoWrapper createSimulator(int aPort, String aType)
@@ -27,8 +23,8 @@ protected DigitalSourceWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(DigitalSourceWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return DigitalSourceWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniEncoderWrapperAccessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.EncoderWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IEncoderWrapper;
106
import com.snobot.simulator.module_wrappers.EncoderWrapper;
117
import com.snobot.simulator.wrapper_accessors.EncoderWrapperAccessor;
128

13-
public class JniEncoderWrapperAccessor extends BaseWrapperAccessor<EncoderWrapper> implements EncoderWrapperAccessor
9+
public class JniEncoderWrapperAccessor extends BaseWrapperAccessor<IEncoderWrapper> implements EncoderWrapperAccessor
1410
{
1511
@Override
1612
public IEncoderWrapper createSimulator(int aPort, String aType)
@@ -27,8 +23,8 @@ protected EncoderWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(EncoderWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return EncoderWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniGyroWrapperAccessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.GyroWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IGyroWrapper;
106
import com.snobot.simulator.module_wrappers.GyroWrapper;
117
import com.snobot.simulator.wrapper_accessors.GyroWrapperAccessor;
128

13-
public class JniGyroWrapperAccessor extends BaseWrapperAccessor<GyroWrapper> implements GyroWrapperAccessor
9+
public class JniGyroWrapperAccessor extends BaseWrapperAccessor<IGyroWrapper> implements GyroWrapperAccessor
1410
{
1511
@Override
1612
public IGyroWrapper createSimulator(int aPort, String aType)
@@ -27,8 +23,8 @@ protected GyroWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(GyroWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return GyroWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniRelayWrapperAccessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.RelayWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IRelayWrapper;
106
import com.snobot.simulator.module_wrappers.RelayWrapper;
117
import com.snobot.simulator.wrapper_accessors.RelayWrapperAccessor;
128

13-
public class JniRelayWrapperAccessor extends BaseWrapperAccessor<RelayWrapper> implements RelayWrapperAccessor
9+
public class JniRelayWrapperAccessor extends BaseWrapperAccessor<IRelayWrapper> implements RelayWrapperAccessor
1410
{
1511
@Override
1612
public IRelayWrapper createSimulator(int aPort, String aType)
@@ -27,8 +23,8 @@ protected RelayWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(RelayWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return RelayWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniSolenoidWrapperAccessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.SolenoidWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.ISolenoidWrapper;
106
import com.snobot.simulator.module_wrappers.SolenoidWrapper;
117
import com.snobot.simulator.wrapper_accessors.SolenoidWrapperAccessor;
128

13-
public class JniSolenoidWrapperAccessor extends BaseWrapperAccessor<SolenoidWrapper> implements SolenoidWrapperAccessor
9+
public class JniSolenoidWrapperAccessor extends BaseWrapperAccessor<ISolenoidWrapper> implements SolenoidWrapperAccessor
1410
{
1511
@Override
1612
public ISolenoidWrapper createSimulator(int aPort, String aType)
@@ -27,8 +23,8 @@ protected SolenoidWrapper createWrapperForExistingType(int aHandle)
2723
}
2824

2925
@Override
30-
public List<Integer> getPortList()
26+
public int[] getPortList()
3127
{
32-
return IntStream.of(SolenoidWrapperJni.getPortList()).boxed().collect(Collectors.toList());
28+
return SolenoidWrapperJni.getPortList();
3329
}
3430
}

snobot_sim/src/main/java/com/snobot/simulator/wrapper_accessors/jni/JniSpeedControllerWrapperAccessor.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11

22
package com.snobot.simulator.wrapper_accessors.jni;
33

4-
import java.util.List;
5-
import java.util.stream.Collectors;
6-
import java.util.stream.IntStream;
7-
84
import com.snobot.simulator.jni.module_wrapper.SpeedControllerWrapperJni;
95
import com.snobot.simulator.module_wrapper.interfaces.IPwmWrapper;
106
import com.snobot.simulator.module_wrappers.SpeedControllerWrapper;
@@ -15,7 +11,7 @@
1511
import com.snobot.simulator.motor_sim.StaticLoadMotorSimulationConfig;
1612
import com.snobot.simulator.wrapper_accessors.SpeedControllerWrapperAccessor;
1713

18-
public class JniSpeedControllerWrapperAccessor extends BaseWrapperAccessor<SpeedControllerWrapper> implements SpeedControllerWrapperAccessor
14+
public class JniSpeedControllerWrapperAccessor extends BaseWrapperAccessor<IPwmWrapper> implements SpeedControllerWrapperAccessor
1915
{
2016
public static final int sCAN_SC_OFFSET = 100;
2117

@@ -34,44 +30,49 @@ protected SpeedControllerWrapper createWrapperForExistingType(int aHandle)
3430
}
3531

3632
@Override
37-
public List<Integer> getPortList()
33+
public int[] getPortList()
34+
{
35+
return SpeedControllerWrapperJni.getPortList();
36+
}
37+
38+
private SpeedControllerWrapper getSpeedControllerWrapper(int aHandle)
3839
{
39-
return IntStream.of(SpeedControllerWrapperJni.getPortList()).boxed().collect(Collectors.toList());
40+
return (SpeedControllerWrapper) getWrapper(aHandle);
4041
}
4142

4243
@Override
4344
public DcMotorModelConfig getMotorConfig(int aPort)
4445
{
45-
return getWrapper(aPort).getMotorConfig();
46+
return getSpeedControllerWrapper(aPort).getMotorConfig();
4647
}
4748

4849
@Override
4950
public SimpleMotorSimulationConfig getMotorSimSimpleModelConfig(int aPort)
5051
{
51-
return getWrapper(aPort).getMotorSimSimpleModelConfig();
52+
return getSpeedControllerWrapper(aPort).getMotorSimSimpleModelConfig();
5253
}
5354

5455
@Override
5556
public StaticLoadMotorSimulationConfig getMotorSimStaticModelConfig(int aPort)
5657
{
57-
return getWrapper(aPort).getMotorSimStaticModelConfig();
58+
return getSpeedControllerWrapper(aPort).getMotorSimStaticModelConfig();
5859
}
5960

6061
@Override
6162
public GravityLoadMotorSimulationConfig getMotorSimGravitationalModelConfig(int aPort)
6263
{
63-
return getWrapper(aPort).getMotorSimGravitationalModelConfig();
64+
return getSpeedControllerWrapper(aPort).getMotorSimGravitationalModelConfig();
6465
}
6566

6667
@Override
6768
public RotationalLoadMotorSimulationConfig getMotorSimRotationalModelConfig(int aPort)
6869
{
69-
return getWrapper(aPort).getMotorSimRotationalModelConfig();
70+
return getSpeedControllerWrapper(aPort).getMotorSimRotationalModelConfig();
7071
}
7172

7273
@Override
7374
public MotorSimType getMotorSimType(int aHandle)
7475
{
75-
return getWrapper(aHandle).getMotorSimType();
76+
return getSpeedControllerWrapper(aHandle).getMotorSimType();
7677
}
7778
}

snobot_sim/src/test/java/com/snobot/simulator/module_wrapper/TestAnalogGyroJni.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void testAnalogGyro()
1717
AnalogGyro gyro = new AnalogGyro(0);
1818

1919
int gyroHandle = 0;
20-
Assertions.assertTrue(DataAccessorFactory.getInstance().getGyroAccessor().getPortList().contains(gyroHandle));
20+
Assertions.assertTrue(DataAccessorFactory.getInstance().getGyroAccessor().getWrappers().containsKey(gyroHandle));
2121
IGyroWrapper gyroWrapper = DataAccessorFactory.getInstance().getGyroAccessor().getWrapper(gyroHandle);
2222

2323
Assertions.assertEquals(0, gyroWrapper.getAngle(), DOUBLE_EPSILON);

0 commit comments

Comments
 (0)