private string AlterarEstadoDaPorta(string portName, PortStates targetPortState, IDevicePortState portState)
        {
            string result;
            var    changePortStateContex = new ChangePortStateContext()
            {
                RequestId      = "",
                SetState       = targetPortState,
                TargetPortName = portName
            };

            _thinkerThingsSignalRHubContext.Clients.Client(portState.ConnectionId).ChangePortState(changePortStateContex);
            switch (targetPortState)
            {
            case PortStates.Actived:
                result = $"{portName} será ligado";
                break;

            case PortStates.Deactived:
                result = $"{portName} será desligado";
                break;

            default:
                result = $"Não estou certo do que acontecerá com {portName}";
                break;
            }

            return(result);
        }
Exemple #2
0
        public async Task ChangePortState(ChangePortStateContext changePortStateContext)
        {
            var context = changePortStateContext;
            await Task.Run(() =>
            {
                RaspyPinManager.Instance.ChangePortState(context);
            });

            UpdatePortState(changePortStateContext);
        }
Exemple #3
0
        internal void UpdatePortState(Pin pin, GpioPinValue gpioPinValue)
        {
            var portState = GpioPinValueToPortState(gpioPinValue);
            var portName  = _pinConfigurations.FirstOrDefault(p => p.PinId == pin.PinId).PortName;

            var context = new ChangePortStateContext()
            {
                SetState       = portState,
                TargetPortName = portName
            };

            SignalRRaspyberryPiClient.Instance.UpdatePortState(context);
        }
Exemple #4
0
        public void UpdatePortState(ChangePortStateContext changePortStateContext, string requesterId)
        {
            if (changePortStateContext == null)
            {
                throw new ArgumentNullException(nameof(changePortStateContext));
            }
            if (string.IsNullOrWhiteSpace(requesterId))
            {
                throw new ArgumentNullException(requesterId);
            }

            lock (_lock)
            {
                InternalUpdatePortState(changePortStateContext, requesterId);
            }
        }
Exemple #5
0
        private void InternalUpdatePortState(ChangePortStateContext changePortStateContext, string requesterId)
        {
            var device = FindDeviceById(requesterId);

            if (device == null)
            {
                throw new InvalidOperationException($"Não foi encontrado o dispositico com o Id '{requesterId}'");
            }

            var port = device.Ports.FirstOrDefault(p => string.Equals(p.PortName, changePortStateContext.TargetPortName, StringComparison.InvariantCultureIgnoreCase));

            if (port == null)
            {
                throw new InvalidOperationException($"Não foi encontrado a porta '{changePortStateContext.TargetPortName}' no dispositivo '{device.DeviceName}'");
            }

            port.PortState = changePortStateContext.SetState;
        }
Exemple #6
0
 public void UpdatePortState(ChangePortStateContext changePortStateContext)
 {
     _thinkerThingsHubConnection.UpdatePortState(changePortStateContext);
 }
        public void UpdatePortState(ChangePortStateContext changePortStateContext)
        {
            var callerId = Context.ConnectionId;

            _devicesStateProvider.UpdatePortState(changePortStateContext, callerId);
        }
 public void UpdatePortState(ChangePortStateContext changePortStateContext)
 {
     _hubConnection.SendCoreAsync(nameof(UpdatePortState), GetObjectArray(changePortStateContext));
 }
Exemple #9
0
 internal void ChangePortState(ChangePortStateContext context)
 {
     ChangePortState(context.TargetPortName, context.SetState);
     SignalRRaspyberryPiClient.Instance.UpdatePortState(context);
 }