コード例 #1
0
ファイル: RobotArmDashboard.cs プロジェクト: kobush/RobotArm
        private IEnumerator<ITask> Initialize()
        {
            // create WPF adapter
            _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue);
            var runWindow = _wpfServicePort.RunWindow(() => new MainWindow {ViewModel = new MainViewModel(this)});
            yield return (Choice) runWindow;
            var exception = (Exception) runWindow;
            if (exception != null)
            {
                LogError(exception);
                StartFailed();
                yield break;
            }
            _mainWindow = (Window) runWindow as MainWindow;

            // subscribe to Articulated Arm notifications
            var subscribe = _armPort.Subscribe(_armNotify);
            yield return (Choice)subscribe;
            var fault = (Fault)subscribe;
            if (fault != null)
            {
                LogError(fault);
                StartFailed();
                yield break;
            }

            // register
            base.Start();

            //TODO:
            MainPortInterleave.CombineWith(
                new Interleave());

            SpawnIterator(StartCompleted);
        }
コード例 #2
0
        private IEnumerator<ITask> Initialize()
        {
            // create WPF adapter
            _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue);
            var runWindow = _wpfServicePort.RunWindow(() => new PololuMaestroUI{ ViewModel =  new MainViewModel(this)});
            yield return (Choice) runWindow;
            var exception = (Exception) runWindow;
            if (exception != null)
            {
                LogError(exception);
                StartFailed();
                yield break;
            }
            _userInterface = (Window) runWindow as PololuMaestroUI;

            // subscribe to Pololu Maestro
            var subscribe = _pololuMaestroServicePort.Subscribe(_pololuMaestroServiceNotify);
            yield return (Choice)subscribe;
            var fault = (Fault)subscribe;
            if (fault != null)
            {
                LogError(fault);
                StartFailed();
                yield break;
            }

            // register
            base.Start();

            // activate a handler for viseme notifications
            MainPortInterleave.CombineWith(
                Arbiter.Interleave(
                    new TeardownReceiverGroup(),
                    new ExclusiveReceiverGroup(
                        Arbiter.Receive<pololumaestro.Replace>(true, _pololuMaestroServiceNotify, ReplaceNotifyHandler),
                        Arbiter.Receive<pololumaestro.ChannelChange>(true, _pololuMaestroServiceNotify, ServoChangeNotifyHandler)
                        ),
                    new ConcurrentReceiverGroup()
                    )
                );

            SpawnIterator(StartCompleted);
        }
        private IEnumerator<ITask> Initialize()
        {
            // create WPF adapter
            _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue);

            var runWindow = _wpfServicePort.RunWindow(() => new ControlWindow(new MainWindowViewModel(this)));
            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
            _userInterface = (Window)runWindow as ControlWindow;
        }
コード例 #4
0
        IEnumerator <ITask> Initialize()
        {
            #region Subscribe to TTS
            // subscribe to TTS service to receive viseme notifications
            var subscribe = _ttsPort.Subscribe(_ttsNotifications, typeof(texttospeech.VisemeNotify));

            yield return((Choice)subscribe);

            var fault = (Fault)subscribe;
            if (fault != null)
            {
                LogError(fault);
                StartFailed();
                yield break;
            }
            #endregion

            #region Create UI
            // create WPF adapter
            _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue);

            var runWindow = _wpfServicePort.RunWindow(() => new TextToSpeechUI(this));
            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
            _userInterface = (Window)runWindow as TextToSpeechUI;
            #endregion

            StartComplete();
        }