public void SendCommand(ISpheroCommand command)
 {
     lock (this)
     {
         foreach (var connectedSphero in _connectedSpheros)
         {
             SendCommand(connectedSphero, command);
         }
     }
 }
Esempio n. 2
0
        public Task<ISpheroMessage> SendAndReceiveAsync(ISpheroCommand command)
        {
            var tcs = new TaskCompletionSource<ISpheroMessage>();

            _runner.SendAndReceive(
                command,
                success => { tcs.SetResult(success);},
                error => { tcs.SetException(error); });

            return tcs.Task;
        }
        private void SendCommand(IConnectedSphero sphero, ISpheroCommand command)
        {
            if (sphero == null)
            {
                // TODO - trace this ignore
                SpheroTrace.Trace("Ignoring command {0}", command);
                return;
            }

            //SpheroTrace.Trace("Sending command {0}", command);
            sphero.SendAndReceive(command, OnCommandSuccess, OnCommandError);
        }
        protected void SendCommand(ISpheroCommand command)
        {
            var sphero = Parent.ConnectedSphero;
            if (sphero == null)
            {
                // TODO - trace this ignore
                SpheroTrace.Trace("Ignoring command {0}", command);
                return;
            }

			SpheroTrace.Trace("Sending command {0}", command);
            sphero.SendAndReceive(command, OnCommandSuccess, OnCommandError);
        }
        public void SendAndReceive(ISpheroCommand command, Action<ISpheroMessage> onSuccess, Action<Exception> onError)
        {
            //DoCommand(command, onSuccess, onError);
            var message = new CommandWithActions(command, onSuccess, onError);

            lock (_commandsToSend)
            {
                _commandsToSend.Enqueue(message);
                if (_commandsToSend.Count > 0)
                {
                    _itemsReadyEvent.Set();
                }
            }
        }
        public void SendAndReceive(ISpheroCommand command, Action <ISpheroMessage> onSuccess, Action <Exception> onError)
        {
            //DoCommand(command, onSuccess, onError);
            var message = new CommandWithActions(command, onSuccess, onError);

            lock (_commandsToSend)
            {
                _commandsToSend.Enqueue(message);
                if (_commandsToSend.Count > 0)
                {
                    _itemsReadyEvent.Set();
                }
            }
        }
        protected void SendCommand(ISpheroCommand command)
        {
            var sphero = Parent.ConnectedSphero;

            if (sphero == null)
            {
                // TODO - trace this ignore
                SpheroTrace.Trace("Ignoring command {0}", command);
                return;
            }

            SpheroTrace.Trace("Sending command {0}", command);
            sphero.SendAndReceive(command, OnCommandSuccess, OnCommandError);
        }
        public void SendAndReceive(ISpheroCommand command, Action<ISpheroMessage> onSuccess, Action<Exception> onError)
        {
            //DoCommand(command, onSuccess, onError);
            var message = new CommandWithActions(command, onSuccess, onError);

            lock (_commandsToSend)
            {
                _commandsToSend.Enqueue(message);
                if (_commandsToSend.Count == 1)
                {
                    _itemsToSendEvent.Release();
                }
                while (_commandsToSend.Count > MaxQueueSize)
                {
                    // TODO - shoudl at least trace this really!
                    _commandsToSend.Dequeue();
                }
            }
        }
        public void SendAndReceive(ISpheroCommand command, Action <ISpheroMessage> onSuccess, Action <Exception> onError)
        {
            //DoCommand(command, onSuccess, onError);
            var message = new CommandWithActions(command, onSuccess, onError);

            lock (_commandsToSend)
            {
                _commandsToSend.Enqueue(message);
                if (_commandsToSend.Count == 1)
                {
                    _itemsToSendEvent.Release();
                }
                while (_commandsToSend.Count > MaxQueueSize)
                {
                    // TODO - shoudl at least trace this really!
                    _commandsToSend.Dequeue();
                }
            }
        }
Esempio n. 10
0
 public CommandWithActions(ISpheroCommand command, Action<ISpheroMessage> onSuccess, Action<Exception> onError)
 {
     OnError = onError;
     OnSuccess = onSuccess;
     Command = command;
 }
Esempio n. 11
0
 public void SendAndReceive(ISpheroCommand command, Action <ISpheroMessage> onSuccess, Action <Exception> onError)
 {
     _runner.SendAndReceive(command, onSuccess, onError);
 }
Esempio n. 12
0
 public void SendAndReceive(ISpheroCommand command, Action<ISpheroMessage> onSuccess, Action<Exception> onError)
 {
     _runner.SendAndReceive(command, onSuccess, onError);
 }
Esempio n. 13
0
 public CommandWithActions(ISpheroCommand command, Action <ISpheroMessage> onSuccess, Action <Exception> onError)
 {
     OnError   = onError;
     OnSuccess = onSuccess;
     Command   = command;
 }
Esempio n. 14
0
        private void SendCommand(IConnectedSphero sphero, ISpheroCommand command)
        {
            if (sphero == null)
            {
                // TODO - trace this ignore
                SpheroTrace.Trace("Ignoring command {0}", command);
                return;
            }

            //SpheroTrace.Trace("Sending command {0}", command);
            sphero.SendAndReceive(command, OnCommandSuccess, OnCommandError);
        }
Esempio n. 15
0
 public void SendCommand(ISpheroCommand command)
 {
     lock (this)
     {
         foreach (var connectedSphero in _connectedSpheros)
         {
             SendCommand(connectedSphero, command);
         }
     }
 }
Esempio n. 16
0
 private void Send(ISpheroCommand spheroCommand)
 {
     ViewModel.SendCommand(spheroCommand);
 }