using System; using System.Text; using System.Threading; using HWModules; using Microsoft.SPOT; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace CPFUnitTests.UT_BuoyancyEngine { [TestClass] public class BEUnitTests { public BuoyancyEngine buoyancyEngine; [TestMethod] public void TestPositionSensor() { HWModules.MotherBoard motherboard = HWModules.MotherBoard.Instance; for (int i = 0; i < 20; i++) { motherboard.ToggleDebugLED(); Thread.Sleep(200); } motherboard.EnableChannelPower(14); buoyancyEngine = BuoyancyEngine.Instance; readPositionSensor(200); Debug.Print("Enabling pump power"); motherboard.EnablePump(); //Thread.Sleep(5000); //Debug.Print("Disabling pump power"); motherboard.DisablePump(); } [TestMethod] public void TestFullExtendRetract() { MotherBoard motherboard = HWModules.MotherBoard.Instance; motherboard.EnableChannelPower((int)MotherBoard.ChannelNames.PositionSensorChannel); //Brent's version 0 digital IO board J4: position sensor motherboard.EnableChannelPower((int)MotherBoard.ChannelNames.PumpMotorControllerElexChannel); motherboard.EnablePump(); BuoyancyEngine buoyancyEngine = BuoyancyEngine.Instance; buoyancyEngine.init(); double innerBellowsPosition = double.NaN; EnergyMonitorPump emPump = EnergyMonitorPump.Instance; EnergyMonitorLTC2946.EM_VandI emData; StringBuilder sbTemp = new StringBuilder(128); StringBuilder tab = new StringBuilder("\t"); sbTemp.Clear(); sbTemp.Append("Time of Day\tInner Bellows Position\tBattery Voltage\tBattery Current (mA)"); Debug.Print(sbTemp.ToString()); int jogVelocity = 150000; buoyancyEngine.increaseBuoyancy(jogVelocity); while (true) { innerBellowsPosition = buoyancyEngine.getBellowsPositionStringPot(); emData = emPump.getVoltsAndMilliAmps(); sbTemp.Clear(); sbTemp.Append(DateTime.Now.TimeOfDay); sbTemp.Append(tab); sbTemp.Append(innerBellowsPosition.ToString("F2")); sbTemp.Append(tab); sbTemp.Append(emData.voltage.ToString("F3")); sbTemp.Append(tab); sbTemp.Append(emData.current.ToString("F3")); Debug.Print(sbTemp.ToString()); Thread.Sleep(1000); } buoyancyEngine.stopMotor(); } private void readPositionSensor(int numReads) { for (int i = 0; i < numReads; i++) { Debug.Print("Position = " + buoyancyEngine.getBellowsPositionStringPot().ToString()); Thread.Sleep(1000); } } } }