private bool EquipmentMatchInParameters(IEquipment equipment)
        {
            if (equipment.Rarity > InParameters.Rarity)
            {
                return(false);
            }

            if (InParameters.UseEquipmentOverride)
            {
                EquipmentViewModel found = AllEquipments.FirstOrDefault(x => x.Name == equipment.Name);
                if (found != null && found.IsPossessed == false)
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #2
0
        //private object locker = new object();

        public UCMainViewModel()
        {
            //lock (locker)
            {
                _uiContext = System.Threading.SynchronizationContext.Current;

                Load();
                SipAgentInitAndStart();
                SnmpAgentInitAndStart();

                Title     = String.Format("Simulador de Equipos Radio Voip. Nucleo 2018. [{0}:{1}]", Config.VoipAgentIP, Config.VoipAgentPort);
                Btn01Text = "Config";
                Btn02Text = "Salir";

                ForceSquelchCmd = new DelegateCommandBase((obj) =>
                {
                    if (obj is SimulatedRadioEquipment)
                    {
                        var ses = (obj as SimulatedRadioEquipment);
                        if (ses.Habilitado == true && ses.IsTx == false)
                        {
                            ses.AircrafSquelch = !ses.AircrafSquelch;
                            if (ses.CallId != -1)
                            {
                                if (LocalAudioPlayer != -1 && !ses.ScvSquelch)
                                {
                                    if (ses.AircrafSquelch)
                                    {
                                        SipAgent.MixerLink(LocalAudioPlayer, ses.CallId);
                                    }
                                    else if (!ses.AircrafSquelch)
                                    {
                                        SipAgent.MixerUnlink(LocalAudioPlayer, ses.CallId);
                                    }
                                }

                                SipAgent.SquelchSet(ses.CallId, ses.Squelch);
                            }
                        }
                    }
                    if (obj is SimulatedFrequecy)
                    {
                        var frequency = obj as SimulatedFrequecy;
                        //var receivers = frequency.Equipments.Where(eq => eq.Habilitado == true && eq.IsTx == false).ToList();
                        var receivers = AllEquipments.Where(eq => eq.FreqObject == frequency && eq.Habilitado == true && eq.IsTx == false).ToList();
                        receivers.ForEach(receiver =>
                        {
                            receiver.AircrafSquelch = !receiver.AircrafSquelch;
                            if (receiver.CallId != -1)
                            {
                                if (LocalAudioPlayer != -1 && !receiver.ScvSquelch)
                                {
                                    if (receiver.AircrafSquelch)
                                    {
                                        SipAgent.MixerLink(LocalAudioPlayer, receiver.CallId);
                                    }
                                    else if (!receiver.AircrafSquelch)
                                    {
                                        SipAgent.MixerUnlink(LocalAudioPlayer, receiver.CallId);
                                    }
                                }

                                SipAgent.SquelchSet(receiver.CallId, receiver.Squelch);
                            }
                        });
                        frequency.AircrafSquelch = !frequency.AircrafSquelch;
                    }
                });

                EnableDisableCmd = new DelegateCommandBase((obj) =>
                {
                    if (obj is SimulatedRadioEquipment)
                    {
                        var ses = (obj as SimulatedRadioEquipment);
                        if (ses.CallId != -1)
                        {
                            SipAgent.HangupCall(ses.CallId, SipAgentNet.SIP_OK);
                            ses.Reset();
                        }
                        ses.Habilitado = !ses.Habilitado;
                    }
                });
            }
        }
Beispiel #3
0
 private void UpdateStatus()
 {
     Status = $"{AllEquipments.Count(x => x.IsVisible)} sets";
 }