Example #1
0
        private IEnumerator <ITask> InitializeGui()
        {
            // create WPF adapter
            this._wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue);

            var runWindow = this._wpfServicePort.RunWindow(() => new libguiwpf.MainWindow());

            yield return((Choice)runWindow);

            var exception = (Exception)runWindow;

            if (exception != null)
            {
                LogError(exception);
                StartFailed();
                yield break;
            }

            // need double cast because WPF adapter doesn't know about derived window types
            var userInterface = ((Window)runWindow) as libguiwpf.MainWindow;

            if (userInterface == null)
            {
                var e = new ApplicationException("User interface was expected to be libguiwpf.MainWindow");
                LogError(e);
                throw e;
            }
            _mainWindow          = userInterface;
            _mainWindow.Closing += new CancelEventHandler(_mainWindow_Closing);

            // for convenience mark the initial robot position:
            DetectedObstacle dobst1 = new DetectedObstacle()
            {
                geoPosition       = (GeoPosition)_mapperVicinity.robotPosition.Clone(),
                firstSeen         = DateTime.Now.Ticks,
                lastSeen          = DateTime.Now.Ticks,
                color             = Colors.Green,
                detectorType      = DetectorType.NONE,
                objectType        = DetectedObjectType.Mark,
                timeToLiveSeconds = 3600
            };

            lock (_mapperVicinity)
            {
                _mapperVicinity.Add(dobst1);
            }

            _mainWindow.setMapper(_mapperVicinity, _routePlanner);
        }
 void _mainWindow_Closing(object sender, CancelEventArgs e)
 {
     _mainWindow = null;
 }
        private IEnumerator<ITask> InitializeGui()
        {
            // create WPF adapter
            this._wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue);

            var runWindow = this._wpfServicePort.RunWindow(() => new libguiwpf.MainWindow());

            yield return (Choice)runWindow;

            var exception = (Exception)runWindow;
            if (exception != null)
            {
                LogError(exception);
                StartFailed();
                yield break;
            }

            // need double cast because WPF adapter doesn't know about derived window types
            var userInterface = ((Window)runWindow) as libguiwpf.MainWindow;
            if (userInterface == null)
            {
                var e = new ApplicationException("User interface was expected to be libguiwpf.MainWindow");
                LogError(e);
                throw e;
            }
            _mainWindow = userInterface;
            _mainWindow.Closing += new CancelEventHandler(_mainWindow_Closing);

            // for convenience mark the initial robot position:
            DetectedObstacle dobst1 = new DetectedObstacle()
            {
                geoPosition = (GeoPosition)_mapperVicinity.robotPosition.Clone(),
                firstSeen = DateTime.Now.Ticks,
                lastSeen = DateTime.Now.Ticks,
                color = Colors.Green,
                detectorType = DetectorType.NONE,
                objectType = DetectedObjectType.Mark,
                timeToLiveSeconds = 3600
            };

            lock (_mapperVicinity)
            {
                _mapperVicinity.Add(dobst1);
            }

            _mainWindow.setMapper(_mapperVicinity, _routePlanner);
        }
Example #4
0
 void _mainWindow_Closing(object sender, CancelEventArgs e)
 {
     _mainWindow = null;
 }
Example #5
0
 public SoundsHelper(libguiwpf.MainWindow mainWindow)
 {
     _mainWindow = mainWindow;
 }
        private IEnumerator<ITask> InitializeGui()
        {
            var runWindow = this.wpfServicePort.RunWindow(() => new libguiwpf.MainWindow(_state.followDirectionPidControllerAngularSpeed, _state.followDirectionPidControllerLinearSpeed, SoundSkinFactory.soundsBasePathDefault));

            yield return (Choice)runWindow;

            var exception = (Exception)runWindow;
            if (exception != null)
            {
                LogError(exception);
                StartFailed();
                yield break;
            }

            // need double cast because WPF adapter doesn't know about derived window types
            var userInterface = ((Window)runWindow) as libguiwpf.MainWindow;
            if (userInterface == null)
            {
                var e = new ApplicationException("User interface was expected to be libguiwpf.MainWindow");
                LogError(e);
                throw e;
            }
            _mainWindow = userInterface;
            _mainWindow.Closing += new CancelEventHandler(_mainWindow_Closing);
            _mainWindow.PowerScaleAdjusted += delegate
            {
                PowerScale = _mainWindow.PowerScale;
                Tracer.Trace("PowerScaleAdjusted: " + PowerScale);
            };
            _mainWindow.PidControllersUpdated += delegate
            {
                Tracer.Trace("PidControllersUpdated - saving state");
                SaveState(_state);
            };

            // for convenience mark the initial robot position:
            DetectedObstacle dobst1 = new DetectedObstacle()
            {
                geoPosition = (GeoPosition)_mapperVicinity.robotPosition.Clone(),
                firstSeen = DateTime.Now.Ticks,
                lastSeen = DateTime.Now.Ticks,
                detectorType = DetectorType.NONE,
                objectType = DetectedObjectType.Mark,
                timeToLiveSeconds = 3600
            };

            dobst1.SetColorByType();

            lock (_mapperVicinity)
            {
                _mapperVicinity.Add(dobst1);
            }

            _mainWindow.setMapper(_mapperVicinity, _routePlanner);
            _mainWindow.PowerScale = PowerScale;

            _soundsHelper = new SoundsHelper(_mainWindow);
        }