public void SendCommand(ISpheroCommand command) { lock (this) { foreach (var connectedSphero in _connectedSpheros) { SendCommand(connectedSphero, command); } } }
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(); } } }
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(); } } }
public CommandWithActions(ISpheroCommand command, Action<ISpheroMessage> onSuccess, Action<Exception> onError) { OnError = onError; OnSuccess = onSuccess; Command = command; }
public void SendAndReceive(ISpheroCommand command, Action <ISpheroMessage> onSuccess, Action <Exception> onError) { _runner.SendAndReceive(command, onSuccess, onError); }
public void SendAndReceive(ISpheroCommand command, Action<ISpheroMessage> onSuccess, Action<Exception> onError) { _runner.SendAndReceive(command, onSuccess, onError); }
public CommandWithActions(ISpheroCommand command, Action <ISpheroMessage> onSuccess, Action <Exception> onError) { OnError = onError; OnSuccess = onSuccess; Command = command; }
private void Send(ISpheroCommand spheroCommand) { ViewModel.SendCommand(spheroCommand); }