Пример #1
0
        private void OnChannelStatusChanged(object sender, ChannelStatusChangedEventArgs e)
        {
            var channel = sender as Channel;

            Console.WriteLine($"channel {channel.Id}, created by {channel.UserName} status {e.Status}");
            Console.WriteLine($"channel city {channel.Location.City}, country {channel.Location.Country}");
        }
Пример #2
0
        private void Sensor_ChannelStatusesChanged(object sender, ChannelStatusChangedEventArgs e)
        {
            string pads = string.Empty;

            graphics.Clear();

            for (int i = 0; i < e.ChannelStatus.Count; i++)
            {
                if (e.ChannelStatus[(Mpr121.Channels)i] == true)
                {
                    pads += i + ", ";

                    graphics.DrawRectangle((i % 4) * rectW, (i / 4) * rectH, rectW, rectH, Meadow.Foundation.Color.Cyan, true);
                }
            }

            if (string.IsNullOrEmpty(pads))
            {
                Console.WriteLine("none");
                graphics.DrawText(0, 0, "none", Meadow.Foundation.Color.Cyan);
            }
            else
            {
                Console.WriteLine(pads + "touched");
            }

            graphics.Show();
        }
Пример #3
0
        void Switch_OnChannelStatusChanged(object sender, ChannelStatusChangedEventArgs e)
        {
            ThreadPool.QueueUserWorkItem(new WaitCallback(obj =>
            {
                var channel = _resources.Channels.FirstOrDefault(c => c.Id == e.Address);
                if (channel == null)
                {
                    return;
                }
                channel.ApplyChanges(e);
                var disconnectedClients = new List <Client>();
                foreach (var client in _resources.GetActiveClients())
                {
                    try
                    {
                        client.Callback.OnChannelStatusChanged(e);
                    }
                    catch
                    {
                        disconnectedClients.Add(client);
                    }
                }

                disconnectedClients.ForEach(OnClientDisconnected);

                // ktra do chuong
                this.IsRinging = _resources.Channels.Any(c => (c.HostPhone.MultiDestEnabled || c.HostPhone.AlertEnabled) && c.LineStatus == eLineStatus.Ring);
            }));
        }
Пример #4
0
        void SensorChannelStatusesChanged(object sender, ChannelStatusChangedEventArgs e)
        {
            graphics.Clear();
            graphics.Stroke = 1;

            for (int i = 0; i < e.ChannelStatus.Count; i++)
            {
                int numpadIndex = 0;
                for (int columns = 0; columns < 3; columns++)
                {
                    for (int rows = 3; rows >= 0; rows--)
                    {
                        if (numpadIndex == i)
                        {
                            if (e.ChannelStatus[(Mpr121.Channels)i])
                            {
                                graphics.DrawRectangle(columns * 57 + 38, rows * 57 + 10, 51, 51, Meadow.Foundation.Color.Cyan, true);
                            }
                            else
                            {
                                graphics.DrawRectangle(columns * 57 + 38, rows * 57 + 10, 51, 51, true);
                            }
                        }
                        numpadIndex++;
                    }
                }
            }

            graphics.Show();
        }
 public override void OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
 {
     base.OnChannelStatusChanged(e);
     if (!e.Handled)
     {
         CheckOutgoingCall();
     }
 }
 public override void OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
 {
     ProcessMessageInController(e);
     if (e.Handled)
     {
         return;
     }
 }
Пример #7
0
 public override void OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
 {
     if (e.Address == this.Channel.HostPhone.Address)
     {
         this.Channel.ApplyChanges(e);
         SaveLog();
         e.Handled = true;
     }
 }
Пример #8
0
        protected override void OnLineStatusChanged(LineStatusMessageBase msg)
        {
            if (msg.Type == eLineStatusType.PO_Status || msg.Type == eLineStatusType.PO_Tone)
            {
                var e = new POStatusChangedEventArgs(msg.Address);
                if (msg.Type == eLineStatusType.PO_Status)
                {
                    e.Status = (((POStatusMessage)msg).Status == eStatus.On) ? ePOStatus.OffHook : ePOStatus.OnHook;
                }
                else
                {
                    e.Tone = ((NumberReceivedMessage)msg).Number;
                }

                if (this.OnPOStatusChanged != null)
                {
                    OnPOStatusChanged(this, e);
                }
            }
            else
            {
                var e = new ChannelStatusChangedEventArgs(msg.Address);

                switch (msg.Type)
                {
                case eLineStatusType.Line:
                    var lmsg = msg as LineStatusMessage;
                    e.Status = lmsg.Status;
                    break;

                case eLineStatusType.Revert:
                    break;

                case eLineStatusType.Tone:
                case eLineStatusType.CallerId:
                    var nmsg = msg as NumberReceivedMessage;
                    if (msg.Type == eLineStatusType.Tone)
                    {
                        e.Tone = nmsg.Number;
                    }
                    else
                    {
                        e.CallerId = nmsg.Number;
                    }
                    break;
                }

                if (this.OnChannelStatusChanged != null)
                {
                    OnChannelStatusChanged(this, e);
                }
            }
        }
Пример #9
0
        void OnChannelStatusChangedHandler(ChannelStatusChangedEventArgs e)
        {
            if (this.MainController != null)
            {
                this.MainController.OnChannelStatusChanged(e);
            }

            if (this.Channels != null)
            {
                var ringChannels = this.Channels.Items.Where(c => c.LineStatus == eLineStatus.Ring && IsChannelUsable(c));
                this.IsRinging = ringChannels.Any();
            }
        }
Пример #10
0
        public virtual void ApplyChanges(ChannelStatusChangedEventArgs e, bool applyTone = true)
        {
            if (e.Status.HasValue)
            {
                this.LineStatus = e.Status.Value;
            }

            if (applyTone && !string.IsNullOrEmpty(e.Tone))
            {
                this.Tone = e.Tone;
            }

            if (!string.IsNullOrEmpty(e.CallerId))
            {
                this.CallerId = e.CallerId;
            }
        }
Пример #11
0
        private void Sensor_ChannelStatusesChanged(object sender, ChannelStatusChangedEventArgs e)
        {
            string pads = string.Empty;

            for (int i = 0; i < e.ChannelStatus.Count; i++)
            {
                if (e.ChannelStatus[(Mpr121.Channels)i] == true)
                {
                    pads += i + ", ";
                }
            }

            if (string.IsNullOrEmpty(pads))
            {
                Console.WriteLine("none");
            }
            else
            {
                Console.WriteLine(pads + "touched");
            }
        }
Пример #12
0
        public override void OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
        {
            ProcessMessageInController(e);
            if (e.Handled)
            {
                return;
            }

            var channel = this.ClientApp.GetChannels(p => p.Id == e.Address).FirstOrDefault();

            if (channel != null)
            {
                // disable unused channel
                if ((this.ClientApp.WorkingMode == eWorkingMode.Alert && channel.HostPhone.AlertEnabled == false) ||
                    (this.ClientApp.WorkingMode == eWorkingMode.MultiDest && channel.HostPhone.MultiDestEnabled == false))
                {
                    channel.LineStatus = eLineStatus.Disconnect;
                    channel.Status     = ePhoneStatus.Disconnect;
                }
                else
                {
                    var applyTone = channel.SelectedPanelId == ClientApp.ClientId;
                    if (applyTone == false)
                    {
                        applyTone = this.GetController(channel) != null;
                    }

                    channel.ApplyChanges(e, applyTone);

                    if (!string.IsNullOrEmpty(e.CallerId) && channel.LineStatus == eLineStatus.Ring)
                    {
                        var u = this.ClientApp.Units.Search(e.CallerId, channel.AreaCode);
                        if (u != null && u.SelectedPanelId == null)
                        {
                            u.Status = ePhoneStatus.Ring;
                        }
                    }
                }
            }
        }
Пример #13
0
        public override void OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
        {
            if (e.Address != Channel.Id)
            {
                return;
            }
            if (AlertStatus == AlertMemberStatus.CanNotConnect)
            {
                // TODO: notify or writelog
                return;
            }

            bool isWaitingForKeycode = AlertStatus == AlertMemberStatus.WaitForKeycode && !string.IsNullOrEmpty(Unit.Password);

            if (isWaitingForKeycode && (e.Tone?.Contains(Unit.Password) ?? false))
            {
                AlertStatus = AlertMemberStatus.WaitForCommand;
                e.Handled   = true;
            }

            base.OnChannelStatusChanged(e);
        }
Пример #14
0
 public virtual void OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
 {
 }
Пример #15
0
 private void Afs_StatusChanged(object sender, ChannelStatusChangedEventArgs args)
 {
     Debug.WriteLine(args.Status);
 }
Пример #16
0
 void INovaAlertServiceCallback.OnChannelStatusChanged(ChannelStatusChangedEventArgs e)
 {
     Application.Current.Dispatcher.Invoke(_priority, new Action <ChannelStatusChangedEventArgs>(OnChannelStatusChangedHandler), e);
 }
Пример #17
0
 private void Afs_StatusChanged(object sender, ChannelStatusChangedEventArgs args)
 {
     Debug.WriteLine(args.Status);
 }
Пример #18
0
 private void OnDeviceChannelStatusChanged(object sender, ChannelStatusChangedEventArgs e)
 {
     DeviceChannelStatusChanged?.Invoke(sender, e);
 }