private void TestComPort(Object comWrapper) { SerialPortWrapper wrap = (SerialPortWrapper)comWrapper; wrap.IsTesting = true; wrap.DisplayName = "Testing..."; Invoke(new DoSub(delegate() { _ports.ResetBindings(); })); try { PTFirmwareInfo fw = PTUnit.GetFirmwareInfo(wrap.PortName); if (fw == null) { wrap.DisplayName = "Not detected"; } else { wrap.DisplayName = fw.FirmwareString; } wrap.FirmwareInfo = fw; } catch (SystemException sex) { wrap.DisplayName = "Exception: " + sex.Message; wrap.FirmwareInfo = null; } Invoke(new DoSub(delegate() { _ports.ResetBindings(); })); wrap.IsTesting = false; Invoke(new DoSub(delegate() { foreach (SerialPortWrapper wrapper in _ports) { if (wrapper.IsTesting) { return; } } // then none of the ports are currently being tested, so the buttons can be re-enabled UpdateButtonEnabled(); this.__test.Enabled = true; })); }
private static void RunTests() { String portName = GetPortName(); PTUnit unit = new PTUnit( portName ); ///////////////////////////////////////// Console.WriteLine("Firmware"); Console.WriteLine("\t" + unit.GetFirmwareInfo() ); // Console.WriteLine("Performing reset. . ."); // // unit.Reset(); ///////////////////////////////////////// Console.WriteLine("Resolution and Limits:"); short panMin, panMax, tiltMin, tiltMax; Console.WriteLine("\tPan Minimum:\t" + (panMax = unit.GetPanPositionLimitMin() ) ); Console.WriteLine("\tPan Maximum:\t" + (panMin = unit.GetPanPositionLimitMax() ) ); Console.WriteLine("\tPan Resolution:\t" + unit.GetPanPositionResolution() ); Console.WriteLine(); Console.WriteLine("\tTilt Minimum:\t" + (tiltMax = unit.GetTiltPositionLimitMin() ) ); Console.WriteLine("\tTilt Maximum:\t" + (tiltMin = unit.GetTiltPositionLimitMax() ) ); Console.WriteLine("\tTilt Resolution:\t" + unit.GetTiltPositionResolution() ); ///////////////////////////////////////// Console.WriteLine("Moving:"); Console.WriteLine("\tMoving to Max Limits (both axes):"); unit.SetPanDesiredPosition( panMax ); unit.SetTiltDesiredPosition( tiltMax ); Console.WriteLine("\t\tWaiting to finish..."); unit.AwaitCompletion(); Console.WriteLine("\t\tFinished..."); Console.WriteLine(); Console.WriteLine("\tMoving to Min Limits (both axes):"); unit.SetPanDesiredPosition( panMin ); unit.SetTiltDesiredPosition( tiltMin ); Console.WriteLine("\t\tWaiting to finish..."); unit.AwaitCompletion(); Console.WriteLine("\t\tFinished..."); Console.WriteLine(); Console.WriteLine("\tReturning to (0,0):"); unit.SetPanDesiredPosition( 0 ); unit.SetTiltDesiredPosition( 0 ); Console.WriteLine("\t\tWaiting to finish..."); unit.AwaitCompletion(); Console.WriteLine("\t\tFinished..."); Console.WriteLine(); ///////////////////////////////////////// Console.WriteLine("Sequential command tests:"); Console.WriteLine("\tMoving to Max Limits (both axes)"); unit.SetPanDesiredPosition( panMax ); unit.SetTiltDesiredPosition( tiltMax ); Console.WriteLine("\tSleeping for 750ms..."); Thread.Sleep( 750 ); Console.WriteLine("\tMoving to Min Limits (both axes) without waiting for completion:"); unit.SetPanDesiredPosition( panMin ); unit.SetTiltDesiredPosition( tiltMin ); Console.WriteLine("\t\tWaiting to finish..."); unit.AwaitCompletion(); Console.WriteLine("\t\tFinished..."); Console.WriteLine(); ///////////////////////////////////////// Console.ReadLine(); }