Example #1
0
        public ClientConnectorTester()
        {
            theCommand          = new RecordingCommand <RunSpec>();
            theRemoteController = Substitute.For <IRemoteController>();

            theConnector = new ClientConnector(new WebSocketsHandler(), theRemoteController, new ICommand[] { theCommand });
        }
        public void Setup()
        {
            _remoteController = CreateRemoteController();
            _cluster          = CreateCluster(_remoteController);

            StartMember(_remoteController, _cluster);
        }
Example #3
0
 protected void ShutdownCluster(IRemoteController remoteController, Cluster cluster)
 {
     while (!StopCluster(remoteController, cluster))
     {
         Thread.Sleep(1000);
     }
 }
Example #4
0
 public void Start(IRemoteController remoteController)
 {
     _agent = new StorytellerAgent(_project.Port, _system);
     _agent.Receive(new StartProject {
         Project = _project
     });
 }
 public ControllerProcess(IMotorConnection motor, IRemoteController controller)
 {
     WorkerSupportsCancellation = true;
     _motor      = motor;
     _controller = controller;
     DoWork     += Work;
 }
        /// <summary>
        /// Transforms the input values from controller to left and right speed
        /// values for the motors
        /// </summary>
        /// <param name="controller"></param>
        /// <returns>A Tuple(int, int) with left and right speed values</int></returns>
        private Tuple <int, int> CalculateSpeedValues(IRemoteController controller)
        {
            controller.Update();
            float  rightTrigger = controller.RightTrigger;
            float  leftTrigger  = controller.LeftTrigger;
            double rightThumbX  = controller.RightThumb.X;
            int    leftspeed    = 0;
            int    rightspeed   = 0;


            // calculate speed based on left and right triggers (right trigger forward, left trigger backward)
            int tempSpeed = (int)((rightTrigger - leftTrigger));// / 255 * 100);

            if (rightThumbX > 0)
            {
                double multiplier = rightThumbX / 100;
                leftspeed  = (int)(tempSpeed + multiplier * 255);
                rightspeed = (int)(tempSpeed - multiplier * 255);
            }
            else if (rightThumbX < 0)
            {
                double multiplier = rightThumbX / -100;
                leftspeed  = (int)(tempSpeed - multiplier * 255);
                rightspeed = (int)(tempSpeed + multiplier * 255);
            }
            else
            {
                rightspeed = leftspeed = tempSpeed;
            }

            return(Tuple.Create(leftspeed, rightspeed));
        }
Example #7
0
 public ClientConnector(ILogger logger, IRemoteController controller, IEnumerable <ICommand> commands)
 {
     _logger     = logger;
     _controller = controller;
     _commands   = commands;
     _port       = PortFinder.FindPort(8200);
 }
        public WebApplicationRegistry(IRemoteController controller, StorytellerContext context)
        {
            For<ISpecFileWatcher>().Use<SpecFileWatcher>();
            For<IRemoteController>().Use(controller);
            For<StorytellerContext>().Use(context);
            ForSingletonOf<IClientConnector>().Use<ClientConnector>();
            ForSingletonOf<AssetFileWatcher>().Use<AssetFileWatcher>();

            ForSingletonOf<IPersistenceController>().Use<PersistenceController>();

            For<ILogger>().Use<Logger>();
            For<ILogListener>().Use<ExceptionListener>();

            For<IActivator>().Add<ClientConnectorActivator>();
            For<IActivator>().Add<StartWatchingFilesActivator>();
            For<IActivator>().Add<StartWatchingAssets>();

            Scan(x =>
            {
                x.AssemblyContainingType<ICommand>();
                x.AssemblyContainingType<OpenInput>();

                x.AddAllTypesOf<ICommand>();
            });
        }
Example #9
0
        public void SetUp()
        {
            theCommand          = new RecordingCommand <RunSpec>();
            theRemoteController = MockRepository.GenerateMock <IRemoteController>();

            theConnector = new ClientConnector(new RecordingLogger(), theRemoteController, new ICommand[] { theCommand });
        }
Example #10
0
        public override void OnStart()
        {
            PackageHost.WriteInfo("Package starting - IsRunning: {0} - IsConnected: {1}", PackageHost.IsRunning, PackageHost.IsConnected);

            //// Remote controller
            this.RemoteController = new HttpPanasonicRemoteController();
        }
Example #11
0
        protected virtual Cluster CreateCluster(IRemoteController remoteController, string xmlconfig)
        {
            _logger.Info("Creating cluster using custom config...");
            var cluster = remoteController.createCluster(null, xmlconfig);

            _logger.Info("Created cluster");
            return(cluster);
        }
Example #12
0
 public void Setup()
 {
     _initialMembershipListener = new InitialMembershipListener();
     _remoteController          = CreateRemoteController();
     _cluster = CreateCluster(_remoteController);
     StartMember(_remoteController, _cluster);
     _client = CreateClient();
 }
Example #13
0
        protected virtual Cluster CreateCluster(IRemoteController remoteController)
        {
            _logger.Info("Creating cluster");
            var cluster = remoteController.createCluster(null, Resources.Hazelcast);

            _logger.Info("Created cluster");
            return(cluster);
        }
Example #14
0
        public ClientConnector(WebSocketsHandler handler, IRemoteController controller, IEnumerable <ICommand> commands)
        {
            _controller = controller;
            _commands   = commands;
            _handler    = handler;

            _handler.Received = HandleJson;
        }
Example #15
0
 public ClientConnector(ILogger logger, IRemoteController controller, IEnumerable <ICommand> commands)
 {
     _logger     = logger;
     _controller = controller;
     _commands   = commands;
     _host       = controller.WebSocketAddress.IsNotEmpty() ? controller.WebSocketAddress : "127.0.0.1";
     _port       = PortFinder.FindPort(8200);
 }
Example #16
0
 /// <summary>
 /// Standard constructor of the Core class
 /// </summary>
 public Core()
 {
     m_pServoController = new PCA9685();
     m_pAccelerometer = new LSM303DLHC();
     m_pGyroscope = new L3GD20H();
     m_pTelemetryClient = new Client();
     m_pRemoteControl = new NetworkRemoteControl();
 }
        public void Setup()
        {
            _remoteController = CreateRemoteController();
            _cluster          = CreateCluster(_remoteController);

            StartMember(_remoteController, _cluster);
            _client = CreateClient();
            _client.GetMap <object, object>("default").Get(new object());
        }
Example #18
0
        public void Start(IRemoteController remoteController)
        {
            killLingeringProcesses();

            _controller = remoteController;

            // Watch UseShellExecute.
            var start = new ProcessStartInfo
            {
                UseShellExecute  = false,
                WorkingDirectory = _project.ProjectPath.ToFullPath(),
                FileName         = "dotnet"
            };



#if NET46
            var framework = "NET46";
#else
            var framework = AppContext.TargetFrameworkName;
#endif


            // TODO -- need to lock this down somehow
            start.Arguments = $"run --framework {framework} -- {_project.Port}";

            _command = $"dotnet {start.Arguments}";

            _process         = Process.Start(start);
            _process.Exited += _process_Exited;

            lock (_readyLock)
            {
                _agentReady = false;
            }

            Task.Delay(5.Seconds()).ContinueWith(t =>
            {
                lock (_readyLock)
                {
                    if (!_agentReady)
                    {
                        // TODO -- send a timeout message here.
                    }
                }

                if (_process.HasExited)
                {
                    sendFailedToStartMessage();
                }
            });

            if (_process.HasExited)
            {
                sendFailedToStartMessage();
            }
        }
 public RunSpecCommand(Lazy <IPersistenceController> controller, SaveSpecBodyCommand saveSpec, IRemoteController engine)
 {
     if (saveSpec == null)
     {
         throw new ArgumentNullException("saveSpec");
     }
     _controller = controller;
     _saveSpec   = saveSpec;
     _engine     = engine;
 }
Example #20
0
 public RunSpecCommand(Lazy <IPersistenceController> persistence, SaveSpecBodyCommand saveSpec, IRemoteController remote)
 {
     if (saveSpec == null)
     {
         throw new ArgumentNullException(nameof(saveSpec));
     }
     _persistence = persistence;
     _saveSpec    = saveSpec;
     _remote      = remote;
 }
Example #21
0
        protected void StopMemberAndWait(IHazelcastInstance client, IRemoteController remoteController, Cluster cluster,
                                         Member member)
        {
            var resetEvent = new ManualResetEventSlim();
            var regId      = client.Cluster.AddMembershipListener(
                new MembershipListener {
                OnMemberRemoved = @event => resetEvent.Set()
            });

            StopMember(remoteController, cluster, member);
            Assert.IsTrue(resetEvent.Wait(120 * 1000), "The member did not get removed in 120 seconds");
            Assert.IsTrue(client.Cluster.RemoveMembershipListener(regId));
        }
        /// <summary>
        /// //メーカー選択変更時のイベントハンドラ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Manufacturer_RadioButton_CheckedChanged(object sender, EventArgs e)
        {
            //ラジオボタンがONになった場合のみ処理する
            RadioButton radioButton = sender as RadioButton;

            if (!radioButton.Checked)
            {
                return;
            }

            //メンバ変数に操作用インターフェースを格納
            _remoteController = this.CreateRemoteController(radioButton.Text, txtSendingContent);
        }
        IEnumerator WaitToCreateRemoteCtrl(UnityAction <IRemoteController> onCtrlCreate)
        {
            yield return(new WaitUntil(() => staps != null));

            Debug.Log("count" + commandDic.Count + staps.Length.ToString());


            yield return(new WaitUntil(() => commandDic.Count == staps.Length));

            GetActionCommandList();
            remoteController = new RemoteController(actionCommandList);
            onCtrlCreate(remoteController);
            Debug.Log("create");
        }
        /// <summary>
        /// 设置安装顺序并生成最终步骤
        /// </summary>
        public void LunchActionSystem <T>(T[] steps, UnityAction <T[]> onLunchOK) where T : IActionStap
        {
            Debug.Assert(steps != null);
            onCommandRegisted = (activeCommands) =>
            {
                var stepsWorp = ConfigSteps <T>(activeCommands, steps);//重新计算步骤
                activeCommands   = GetIActionCommandList(activeCommands, Array.ConvertAll <IActionStap, string>(stepsWorp, x => x.StapName));
                remoteController = new RemoteController(activeCommands);
                onLunchOK.Invoke(Array.ConvertAll <IActionStap, T>(stepsWorp, x => (T)x));
            };

            if (commandCtrl.CommandRegisted)
            {
                onCommandRegisted.Invoke(commandCtrl.CommandList);
            }
        }
        /// <summary>
        /// 设置安装顺序并生成最终步骤
        /// </summary>
        public void LunchActionSystem(UnityAction <string[]> onLunchOK)
        {
            onCommandRegisted = (activeCommands) =>
            {
                var steps = activeCommands.ConvertAll <string>(x => x.StepName);
                steps.Sort();
                activeCommands   = GetIActionCommandList(activeCommands, steps.ToArray());
                remoteController = new RemoteController(activeCommands);
                onLunchOK.Invoke(steps.ToArray());
            };

            if (commandCtrl.CommandRegisted)
            {
                onCommandRegisted.Invoke(commandCtrl.CommandList);
            }
        }
        /// <summary>
        /// 设置安装顺序并生成最终步骤
        /// </summary>
        public void LunchActionSystem(string[] steps, UnityAction <string[]> onLunchOK)
        {
            Debug.Assert(steps != null);
            onCommandRegisted = (activeCommands) =>
            {
                var stepsWorp = ConfigSteps(activeCommands, steps);//重新计算步骤
                activeCommands   = GetIActionCommandList(activeCommands, stepsWorp);
                remoteController = new RemoteController(activeCommands);
                onLunchOK.Invoke(stepsWorp);
            };

            if (commandCtrl.CommandRegisted)
            {
                onCommandRegisted.Invoke(commandCtrl.CommandList);
            }
        }
 /// <summary>
 /// 获取控制器
 /// </summary>
 /// <returns></returns>
 public void GetRemoteController(UnityAction <IRemoteController> onCtrlCreate)
 {
     if (remoteController != null)
     {
         onCtrlCreate(remoteController);
     }
     else if (staps != null && staps.Length == commandDic.Count)
     {
         GetActionCommandList();
         remoteController = new RemoteController(actionCommandList);
         onCtrlCreate(remoteController);
     }
     else
     {
         StartCoroutine(WaitToCreateRemoteCtrl(onCtrlCreate));
     }
 }
Example #28
0
        protected Member StartMemberAndWait(IHazelcastInstance client, IRemoteController remoteController, Cluster cluster,
                                            int expectedSize)
        {
            var resetEvent = new ManualResetEventSlim();
            var regId      = client.Cluster.AddMembershipListener(new MembershipListener {
                OnMemberAdded = @event => resetEvent.Set()
            });
            var member = StartMember(remoteController, cluster);

            Assert.IsTrue(resetEvent.Wait(120 * 1000), "The member did not get added in 120 seconds");
            Assert.IsTrue(client.Cluster.RemoveMembershipListener(regId));

            // make sure partitions are updated
            TestSupport.AssertTrueEventually(() => { Assert.AreEqual(expectedSize, GetUniquePartitionOwnerCount(client)); }, 60,
                                             "The partition list did not contain " + expectedSize + " partitions.");

            return(member);
        }
        protected void Setup(string serverXml, bool isSslEnabled, bool?validateCertificateChain,
                             bool?validateCertificateName, bool?checkCertificateRevocation, string certSubjectName, byte[] clientCertificate,
                             string certPassword)
        {
            RemoteController = CreateRemoteController();
            var cluster = CreateCluster(RemoteController, serverXml);

            RemoteController.startMember(cluster.Id);
            var clientConfig = new Configuration();

            clientConfig.NetworkConfig.AddAddress("localhost:5701");
            clientConfig.NetworkConfig.ConfigureSSL(sslConfig =>
            {
                ConfigSslConfig(sslConfig, isSslEnabled, validateCertificateChain,
                                validateCertificateName, checkCertificateRevocation, certSubjectName, clientCertificate, certPassword);
            });
            clientConfig.ClusterName = cluster.Id;
            Client = HazelcastClient.NewHazelcastClient(clientConfig);
        }
Example #30
0
        public void Start(IRemoteController controller)
        {
            _domain = AppDomain.CreateDomain("Storyteller-SpecRunning-Domain", null, _remoteSetup.Setup);


            try
            {
                var proxyType = typeof(RemoteProxy);
                _proxy = (RemoteProxy)_domain.CreateInstanceAndUnwrap(proxyType.Assembly.FullName, proxyType.FullName);

                _proxy.Start(_project);
            }
            catch (Exception)
            {
                ConsoleWriter.Write(ConsoleColor.Yellow,
                                    "Storyteller was unable to start an AppDomain for the specification project. Check that the project has already been compiled.");

                throw;
            }
        }
Example #31
0
 public ServerHandle(IRemoteController controller, TcpClient client)
 {
     this._controller = controller;
     this._client     = client;
     this.EndPoint    = client.Client.RemoteEndPoint as IPEndPoint;
 }
Example #32
0
 public Task<BatchRunResponse> StartBatch(IRemoteController controller)
 {
     var request = GetBatchRunRequest();
     return controller.Send(request).AndWaitFor<BatchRunResponse>();
 }
 public ClientConnectorActivator(IClientConnector connector, IRemoteController controller)
 {
     _connector = connector;
     _controller = controller;
 }
Example #34
0
 protected virtual void SuspendMember(IRemoteController remoteController, Cluster cluster, Member member)
 {
     remoteController.suspendMember(cluster.Id, member.Uuid);
 }