Skip to content

Commit 5ce6457

Browse files
author
Noah Gleason
committed
Final, tested code.
1 parent 0e0984f commit 5ce6457

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/RotPerSecCANTalonSRX.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import maps.org.usfirst.frc.team449.robot.components.RotPerSecCANTalonSRXMap;
66
import org.usfirst.frc.team449.robot.util.Logger;
77

8+
import java.util.ArrayList;
9+
import java.util.List;
10+
811
/**
912
* Component wrapper on the CTRE {@link CANTalon}, with unit conversions to/from RPS built in. Every
1013
* non-unit-conversion in this class takes arguments in post-gearing RPS.
@@ -118,13 +121,33 @@ public RotPerSecCANTalonSRX(RotPerSecCANTalonSRXMap.RotPerSecCANTalonSRX map) {
118121
canTalon.EnableCurrentLimit(false);
119122
}
120123

124+
slaves = new ArrayList<>();
125+
121126
//Set up slaves.
122127
for (MotorMap.Motor slave : map.getSlaveList()) {
123128
CANTalon tmp = new CANTalon(slave.getPort());
124-
tmp.changeControlMode(CANTalon.TalonControlMode.Follower);
125-
tmp.set(map.getPort());
129+
tmp.reverseSensor(false);
130+
tmp.setInverted(false);
131+
tmp.ConfigFwdLimitSwitchNormallyOpen(map.getFwdLimNormOpen());
132+
tmp.ConfigRevLimitSwitchNormallyOpen(map.getRevLimNormOpen());
133+
tmp.enableLimitSwitch(map.getFwdLimEnabled(), map.getRevLimEnabled());
134+
tmp.enableForwardSoftLimit(map.getFwdSoftLimEnabled());
135+
tmp.setForwardSoftLimit(map.getFwdSoftLimVal());
136+
tmp.enableReverseSoftLimit(map.getRevSoftLimEnabled());
137+
tmp.setReverseSoftLimit(map.getRevSoftLimVal());
138+
tmp.enableBrakeMode(map.getBrakeMode());
139+
tmp.enable();
140+
if (map.hasCurrentLimit()) {
141+
tmp.setCurrentLimit(map.getCurrentLimit());
142+
tmp.EnableCurrentLimit(true);
143+
} else {
144+
//If we don't have a current limit, disable current limiting.
145+
tmp.EnableCurrentLimit(false);
146+
}
126147
//To invert slaves, use reverseOutput. See section 9.1.4 of the TALON SRX Software Reference Manual.
127148
tmp.reverseOutput(slave.getInverted());
149+
tmp.changeControlMode(CANTalon.TalonControlMode.Follower);
150+
tmp.set(map.getPort());
128151
}
129152
}
130153

RoboRIO/src/main/resources/fancy_map.cfg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ drive {
254254
right_master {
255255
port: 2
256256
feedback_device: QuadEncoder
257-
reverse_sensor: true
257+
reverse_sensor: false
258258
reverse_output: false
259259
is_inverted: false
260260
nominal_out_voltage: 0.0
@@ -296,8 +296,8 @@ drive {
296296
port: 7
297297
feedback_device: QuadEncoder
298298
reverse_sensor: false
299-
reverse_output: true
300-
is_inverted: false
299+
reverse_output: false
300+
is_inverted: true
301301
nominal_out_voltage: 0.0
302302
peak_out_voltage: 12.0
303303
kP_hg: 0.5

0 commit comments

Comments
 (0)