Beispiel #1
0
        internal async Task InitAsync()
        {
            _stateChangedHandler = _messageHub
                                   .Handle <ThingStateChangedMessage>()
                                   .Where(msg => msg.Id == Id.ToString() && msg.NewState != State)
                                   .Synchronize()
                                   .Register(async msg => await OnStateChanged(msg));

            _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), ThingState.Initializing));

            var state = await _gatewayHandler.InitAsync();

            _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), state));
        }
Beispiel #2
0
        protected override void AddItem(IGateway item)
        {
            base.AddItem(item);

            Log.Info($"Gateway '{item.Id}' added");

            _messageHub.SendMessage(new GatewayAddedMessage(item));
        }
        protected override void AddItem(IItem item)
        {
            base.AddItem(item);

            Log.Info($"Item '{item.Name}' added");

            _messageHub.SendMessage(new ItemAddedMessage(item));
        }
        protected override void AddItem(IThing item)
        {
            base.AddItem(item);

            Log.Info($"Thing '{item.Id}' added");

            _messageHub.SendMessage(new ThingAddedMessage(item));
        }
Beispiel #5
0
        internal async Task InitAsync()
        {
            _stateChangedHandler = _messageHub
                                   .Handle <ThingStateChangedMessage>()
                                   .Where(msg => msg.Id == Id.ToString())
                                   .Synchronize()
                                   .Register(async msg => await OnStateChanged(msg));

            _channelAddedHandler = _messageHub
                                   .Handle <NewThingChannelMessage>()
                                   .Where(msg => Id.Equals(msg.ThingId))
                                   .Register(async msg => await OnChannelAdded(msg));

            _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), ThingState.Initializing));

            var state = await _thingHandler.InitAsync();

            _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), state));
        }
        private Task SetNewStateAsync(KernelState newState)
        {
            Log.Info($"Kernel state changed from {State} to {newState}");

            State = newState;
            
            _messageHub.SendMessage(new KernelStateChangedMessage(newState));
            
            return Task.CompletedTask;
        }
Beispiel #7
0
            public override void PaymentContextDidChange(STPPaymentContext paymentContext)
            {
                var paymentMethod = paymentContext.SelectedPaymentMethod;
                var message       = paymentMethod == null
                    ? new PaymentMethodChangedMessage()
                    : new PaymentMethodChangedMessage
                {
                    Label = paymentMethod.Label,
                    Image = paymentMethod.Image?.AsPNG().AsStream()
                };

                _messageHub.SendMessage(message);
            }
Beispiel #8
0
        private Task OnChannelHandlerValueChanged(ChannelHandlerValueChangedMessage msg)
        {
            if (ValuesAreEqual(Value, msg.NewValue))
            {
                return(Task.CompletedTask);
            }

            Log.Info($"Thing Channel '{Id}' value changed from '{Value}' -> '{msg.NewValue}'");

            Value = msg.NewValue;

            _messageHub.SendMessage(new ChannelValueChangedMessage(Id.ToString(), msg.NewValue));

            return(Task.CompletedTask);
        }
Beispiel #9
0
        private Task UpdateValue(object value)
        {
            if (ItemType.ValuesAreEqual(Value, value))
            {
                return(Task.CompletedTask);
            }

            var oldValue = Value;

            Value = value;

            Log.Info($"Item '{Name}' value changed from '{oldValue}' to '{value}'");

            _messageHub.SendMessage(new ItemValueChangedMessage(Name, value, oldValue));

            return(Task.CompletedTask);
        }
        public override Task ExecuteAsync(string[] arguments)
        {
            var channelId = arguments.FirstOrDefault();

            if (string.IsNullOrWhiteSpace(channelId))
            {
                Output.WriteLine("No channel id given");

                return(Task.CompletedTask);
            }

            var value = arguments.Skip(1).FirstOrDefault();

            if (value == null)
            {
                Output.WriteLine("No value is given");

                return(Task.CompletedTask);
            }

            _messageHub.SendMessage(new WriteChannelValueMessage(channelId, value));

            return(Task.CompletedTask);
        }
        private Task OnChannelValueChanged(ChannelValueChangedMessage msg)
        {
            _messageHub.SendMessage(new ItemValueUpdateMessage(_itemName, msg.NewValue));

            return(Task.CompletedTask);
        }
Beispiel #12
0
        public Task WriteValueAsync(object value)
        {
            _messageHub.SendMessage(new ItemValueUpdateMessage(_itemName, value));

            return(Task.CompletedTask);
        }
Beispiel #13
0
 public void SendCommand(string itemName, object commandValue)
 {
     _messageHub.SendMessage(new SendCommandToItemMessage(itemName, commandValue));
 }