mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
Added support for CAN Talon SRX in C++ and Java.
Currently, the JNI bindings are generated by Swig and, unfortunately, the interface available through Java is lower-level than that for C++ (ie, direct access to the ctre code through the JNI bindings, rather than an interface on top of that), but it does work. See eclipse plugins for some short samples. There are a couple of short unit tests as placeholders. Still needs some cleaning up. Change-Id: Iae2f74693ca6b80bf7d5aca0625c66aa6e0b7f85 Added quick samples for C++/Java CAN Talon stuff. Change-Id: I3acb27d6fd5568d88931e0d678c09973d436735d
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2014. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
package edu.wpi.first.wpilibj;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import edu.wpi.first.wpilibj.fixtures.SampleFixture;
|
||||
import edu.wpi.first.wpilibj.test.AbstractComsSetup;
|
||||
|
||||
import edu.wpi.first.wpilibj.hal.CanTalonSRX;
|
||||
|
||||
/**
|
||||
* Basic test (borrowed straight from SampleTest) for running the CAN TalonSRX.
|
||||
*/
|
||||
public class CANTalonTest extends AbstractComsSetup {
|
||||
private static final Logger logger = Logger.getLogger(SampleTest.class.getName());
|
||||
|
||||
static SampleFixture fixture = new SampleFixture();
|
||||
|
||||
protected Logger getClassLogger(){
|
||||
return logger;
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
public static void classSetup() {
|
||||
// Set up the fixture before the test is created
|
||||
fixture.setup();
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
// Reset the fixture elements before every test
|
||||
fixture.reset();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void tearDown() {
|
||||
// Clean up the fixture after the test
|
||||
fixture.teardown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Briefly run a CAN Talon and assert true.
|
||||
*/
|
||||
@Test
|
||||
public void test() {
|
||||
// The constructor takes a device ID (settable in roboRIO web interface).
|
||||
CanTalonSRX talon = new CanTalonSRX(0);
|
||||
// Make sure that the Talon is in the basic throttle mode.
|
||||
talon.SetModeSelect(0);
|
||||
// Set Talon to 50% forwards throttle.
|
||||
talon.Set(0.5);
|
||||
Timer.delay(1.5);
|
||||
// Turn Talon off.
|
||||
talon.Set(0.0);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,6 +18,9 @@ import org.junit.Test;
|
||||
import edu.wpi.first.wpilibj.fixtures.SampleFixture;
|
||||
import edu.wpi.first.wpilibj.test.AbstractComsSetup;
|
||||
|
||||
import edu.wpi.first.wpilibj.hal.CanTalonSRX;
|
||||
import edu.wpi.first.wpilibj.hal.SWIGTYPE_p_UINT8;
|
||||
|
||||
/**
|
||||
* Sample test for a sample PID controller. This demonstrates the general
|
||||
* pattern of how to create a test and use testing fixtures and categories.
|
||||
@@ -60,6 +63,10 @@ public class SampleTest extends AbstractComsSetup {
|
||||
*/
|
||||
@Test
|
||||
public void test() {
|
||||
CanTalonSRX cantalon = new CanTalonSRX();
|
||||
cantalon.Set(0.5);
|
||||
Timer.delay(0.5);
|
||||
cantalon.Set(0.0);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import edu.wpi.first.wpilibj.test.AbstractTestSuite;
|
||||
AnalogCrossConnectTest.class,
|
||||
AnalogPotentiometerTest.class,
|
||||
BuiltInAccelerometerTest.class,
|
||||
CANTalonTest.class,
|
||||
CounterTest.class,
|
||||
DIOCrossConnectTest.class,
|
||||
EncoderTest.class,
|
||||
|
||||
Reference in New Issue
Block a user