Artf4776 Fixes First DIO PWM usage errors

Adds Java and C++ integration tests for testing DIO PWM

Change-Id: Iae32b57636a9648b92e8e0520f6cbba4c3c377ca
This commit is contained in:
thouse
2015-12-21 22:25:53 -08:00
committed by Thad House
parent 083c90d377
commit dbba4a1036
3 changed files with 110 additions and 5 deletions

View File

@@ -107,6 +107,54 @@ public class DIOCrossConnectTest extends AbstractInterruptTest {
assertFalse("DIO Not Low after .05s delay", dio.getInput().get());
}
/**
* Tests to see if the DIO PWM functionality works.
*/
@Test
public void testDIOPWM() {
dio.getOutput().set(false);
assertFalse("DIO Not Low after no delay", dio.getInput().get());
//Set frequency to 2.0 Hz
dio.getOutput().setPWMRate(2.0);
//Enable PWM, but leave it off.
dio.getOutput().enablePWM(0.0);
Timer.delay(0.5);
dio.getOutput().updateDutyCycle(0.5);
dio.getInput().requestInterrupts();
dio.getInput().setUpSourceEdge(false, true);
//TODO: Add return value from WaitForInterrupt
dio.getInput().waitForInterrupt(3.0, true);
Timer.delay(0.5);
boolean firstCycle = dio.getInput().get();
Timer.delay(0.5);
boolean secondCycle = dio.getInput().get();
Timer.delay(0.5);
boolean thirdCycle = dio.getInput().get();
Timer.delay(0.5);
boolean forthCycle = dio.getInput().get();
Timer.delay(0.5);
boolean fifthCycle = dio.getInput().get();
Timer.delay(0.5);
boolean sixthCycle = dio.getInput().get();
Timer.delay(0.5);
boolean seventhCycle = dio.getInput().get();
dio.getOutput().disablePWM();
Timer.delay(0.5);
boolean firstAfterStop = dio.getInput().get();
Timer.delay(0.5);
boolean secondAfterStop = dio.getInput().get();
assertFalse("DIO Not Low after first delay", firstCycle);
assertTrue("DIO Not High after second delay", secondCycle);
assertFalse("DIO Not Low after third delay", thirdCycle);
assertTrue("DIO Not High after forth delay", forthCycle);
assertFalse("DIO Not Low after fifth delay", fifthCycle);
assertTrue("DIO Not High after sixth delay", sixthCycle);
assertFalse("DIO Not Low after seventh delay", seventhCycle);
assertFalse("DIO Not Low after stopping first read", firstAfterStop);
assertFalse("DIO Not Low after stopping second read", secondAfterStop);
}
/*
* (non-Javadoc)
*$