Beispiel #1
0
        private void dtEditRadio_Click(object sender, RoutedEventArgs e)
        {
            FrameworkElement fe = sender as FrameworkElement;

            if (fe == null || fe.Tag == null)
            {
                return;
            }
            ViewModels.RadioSignalItemModel radioModel = fe.Tag as ViewModels.RadioSignalItemModel;
            if (radioModel == null)
            {
                return;
            }
            Windows.SingleRadioEditorWindow editor = new Windows.SingleRadioEditorWindow(radioModel);
            editor.ShowDialog();
        }
        public SingleRadioEditorViewModel(RadioSignalItemModel radioSignal)
        {
            if (radioSignal == null)
                throw new ArgumentNullException();

            _radioSignal = radioSignal;
            SignalingFormat = _radioSignal.SignalingFormat;
            SignalingUnitId = _radioSignal.UnitId;
            _unitName = _radioSignal.UnitName;
            _agencyName = _radioSignal.AgencyName;

            _radioTypes = new WPFCommon.ThreadSafeObservableCollection<SingleRadioEditorRadioType>();
            _radioTypes.Add(new SingleRadioEditorRadioType() { RadioType = Common.RadioTypeCode.Unknown, RadioTypeName = "<UNASSIGNED>" });
            _radioTypes.Add(new SingleRadioEditorRadioType() { RadioType = Common.RadioTypeCode.Mobile, RadioTypeName = "Mobile" });
            _radioTypes.Add(new SingleRadioEditorRadioType() { RadioType = Common.RadioTypeCode.Portable, RadioTypeName = "Portable" });
            _radioTypes.Add(new SingleRadioEditorRadioType() { RadioType = Common.RadioTypeCode.BaseStation, RadioTypeName = "Base Station" });

            _agencies = new WPFCommon.ThreadSafeObservableCollection<SingleRadioEditorAgency>();
            _agencies.Add(new SingleRadioEditorAgency() { AgencyId = Guid.Empty, AgencyName = "<UNASSIGNED>" });
            foreach (Common.AgencyInfo aInfo in RadioLog.Common.RadioInfoLookupHelper.Instance.AgencyList.OrderBy(a => a.AgencyName))
            {
                _agencies.Add(new SingleRadioEditorAgency() { AgencyId = aInfo.AgencyId, AgencyName = aInfo.AgencyName });
            }

            _units = new WPFCommon.ThreadSafeObservableCollection<SingleRadioEditorUnit>();
            _units.Add(new SingleRadioEditorUnit() { UnitId = Guid.Empty, AgencyId = Guid.Empty, UnitName = "<UNASSIGNED>" });
            foreach (Common.UnitInfo uInfo in RadioLog.Common.RadioInfoLookupHelper.Instance.UnitList.OrderBy(u => u.UnitName))
            {
                _units.Add(new SingleRadioEditorUnit() { UnitId = uInfo.UnitKeyId, AgencyId = uInfo.AgencyKeyId, UnitName = uInfo.UnitName });
            }

            if (!string.IsNullOrWhiteSpace(_radioSignal.SignalingFormat)&&!string.IsNullOrWhiteSpace(_radioSignal.UnitId))
            {
                Common.RadioInfo radioInfo = Common.RadioInfoLookupHelper.Instance.RadioList.FirstOrDefault(r => r.SignalingLookupKey == _radioSignal.SignalingLookupKey);
                if (radioInfo != null)
                {
                    _unitId = radioInfo.UnitKeyId;
                    _agencyId = radioInfo.AgencyKeyId;
                    _radioName = radioInfo.RadioName;
                    _roleName = radioInfo.RoleName;
                    _personnelName = radioInfo.PersonnelName;
                    _radioType = radioInfo.RadioType;
                    SignalingFormat = radioInfo.SignalingFormat;
                    SignalingUnitId = radioInfo.SignalingUnitId;
                }
            }
        }
Beispiel #3
0
        protected virtual void ProcessRadioSignalItem(RadioLog.Common.RadioSignalingItem sigItem)
        {
            if (sigItem == null)
            {
                return;
            }
            sigItem.Latitude  = Services.GeoService.Instance.CurrentLatitude;
            sigItem.Longitude = Services.GeoService.Instance.CurrentLongitude;
            Common.RadioInfoLookupHelper.Instance.PerformLookupsOnRadioSignalItem(sigItem);
            if (_loggingEnabled)
            {
                _logger.LogRadioSignal(sigItem);
            }
            RadioSignalItemModel mdl = new RadioSignalItemModel(sigItem);

            MainViewModel.ProcessRadioSignal(mdl);

            SourceTitle          = mdl.Description;
            LastValidSourceTitle = mdl.Description;
        }
Beispiel #4
0
        internal static void StartMaydayForRadio(string signalingLookupKey)
        {
            if (string.IsNullOrWhiteSpace(signalingLookupKey))
            {
                return;
            }
            RadioSignalItemModel rItemModel = _radioLog.FirstOrDefault(r => r.SignalingLookupKey == signalingLookupKey);

            if (rItemModel == null)
            {
                return;
            }
            EmergencyRadioSignalItemModel mdl = _emergencyRadioLog.FirstOrDefault(r => r.SignalingLookupKey == signalingLookupKey);

            if (mdl != null)
            {
                mdl.EmergencyState = Common.EmergencyState.EmergencyActive;
                mdl.StartedDT      = DateTime.Now;
                mdl.EndedDT        = null;
            }
            else
            {
                mdl = new EmergencyRadioSignalItemModel(rItemModel.RawSignalItem);
                mdl.EmergencyState = Common.EmergencyState.EmergencyActive;
                mdl.StartedDT      = DateTime.Now;
                mdl.EndedDT        = null;
                if (_emergencyRadioLog.Count > 0)
                {
                    _emergencyRadioLog.Insert(0, mdl);
                }
                else
                {
                    _emergencyRadioLog.Add(mdl);
                }
            }
            foreach (RadioSignalItemModel rItem in _radioLog.Where(r => r.SignalingLookupKey == signalingLookupKey))
            {
                rItem.EmergencyState = Common.EmergencyState.EmergencyActive;
            }
        }
Beispiel #5
0
        internal static void ProcessRadioSignal(RadioSignalItemModel mdl)
        {
            if (mdl == null)
            {
                return;
            }

            _rollCallService.HandleRadioCall(mdl);

            if (_radioLog.Count > 0)
            {
                _radioLog.Insert(0, mdl);
                while (_radioLog.Count > _maxLogDisplayItems)
                {
                    _radioLog.RemoveAt(_radioLog.Count - 1);
                }
            }
            else
            {
                _radioLog.Add(mdl);
            }
            if (mdl.EmergencyState == Common.EmergencyState.EmergencyActive)
            {
                StartMaydayForRadio(mdl.SignalingLookupKey);
                if (_emergencyAlarmSound != null)
                {
                    _emergencyAlarmSound.PlaySound();
                }
            }
            else
            {
                EmergencyRadioSignalItemModel eMdl = _emergencyRadioLog.FirstOrDefault(m => m.SignalingLookupKey == mdl.SignalingLookupKey);
                if (eMdl != null)
                {
                    mdl.EmergencyState = eMdl.EmergencyState;
                }
            }
        }
Beispiel #6
0
        internal static void ProcessRadioSignal(RadioSignalItemModel mdl)
        {
            if (mdl == null)
                return;

            _rollCallService.HandleRadioCall(mdl);

            if(_radioLog.Count>0)
            {
                _radioLog.Insert(0, mdl);
                while (_radioLog.Count > _maxLogDisplayItems)
                {
                    _radioLog.RemoveAt(_radioLog.Count - 1);
                }
            }
            else
            {
                _radioLog.Add(mdl);
            }
            if (mdl.EmergencyState == Common.EmergencyState.EmergencyActive)
            {
                StartMaydayForRadio(mdl.SignalingLookupKey);
                if (_emergencyAlarmSound != null)
                {
                    _emergencyAlarmSound.PlaySound();
                }
            }
            else
            {
                EmergencyRadioSignalItemModel eMdl = _emergencyRadioLog.FirstOrDefault(m => m.SignalingLookupKey == mdl.SignalingLookupKey);
                if (eMdl != null)
                {
                    mdl.EmergencyState = eMdl.EmergencyState;
                }
            }
        }
        public SingleRadioEditorViewModel(RadioSignalItemModel radioSignal)
        {
            if (radioSignal == null)
            {
                throw new ArgumentNullException();
            }

            _radioSignal    = radioSignal;
            SignalingFormat = _radioSignal.SignalingFormat;
            SignalingUnitId = _radioSignal.UnitId;
            _unitName       = _radioSignal.UnitName;
            _agencyName     = _radioSignal.AgencyName;

            _radioTypes = new WPFCommon.ThreadSafeObservableCollection <SingleRadioEditorRadioType>();
            _radioTypes.Add(new SingleRadioEditorRadioType()
            {
                RadioType = Common.RadioTypeCode.Unknown, RadioTypeName = "<UNASSIGNED>"
            });
            _radioTypes.Add(new SingleRadioEditorRadioType()
            {
                RadioType = Common.RadioTypeCode.Mobile, RadioTypeName = "Mobile"
            });
            _radioTypes.Add(new SingleRadioEditorRadioType()
            {
                RadioType = Common.RadioTypeCode.Portable, RadioTypeName = "Portable"
            });
            _radioTypes.Add(new SingleRadioEditorRadioType()
            {
                RadioType = Common.RadioTypeCode.BaseStation, RadioTypeName = "Base Station"
            });

            _agencies = new WPFCommon.ThreadSafeObservableCollection <SingleRadioEditorAgency>();
            _agencies.Add(new SingleRadioEditorAgency()
            {
                AgencyId = Guid.Empty, AgencyName = "<UNASSIGNED>"
            });
            foreach (Common.AgencyInfo aInfo in RadioLog.Common.RadioInfoLookupHelper.Instance.AgencyList.OrderBy(a => a.AgencyName))
            {
                _agencies.Add(new SingleRadioEditorAgency()
                {
                    AgencyId = aInfo.AgencyId, AgencyName = aInfo.AgencyName
                });
            }

            _units = new WPFCommon.ThreadSafeObservableCollection <SingleRadioEditorUnit>();
            _units.Add(new SingleRadioEditorUnit()
            {
                UnitId = Guid.Empty, AgencyId = Guid.Empty, UnitName = "<UNASSIGNED>"
            });
            foreach (Common.UnitInfo uInfo in RadioLog.Common.RadioInfoLookupHelper.Instance.UnitList.OrderBy(u => u.UnitName))
            {
                _units.Add(new SingleRadioEditorUnit()
                {
                    UnitId = uInfo.UnitKeyId, AgencyId = uInfo.AgencyKeyId, UnitName = uInfo.UnitName
                });
            }

            if (!string.IsNullOrWhiteSpace(_radioSignal.SignalingFormat) && !string.IsNullOrWhiteSpace(_radioSignal.UnitId))
            {
                Common.RadioInfo radioInfo = Common.RadioInfoLookupHelper.Instance.RadioList.FirstOrDefault(r => r.SignalingLookupKey == _radioSignal.SignalingLookupKey);
                if (radioInfo != null)
                {
                    _unitId         = radioInfo.UnitKeyId;
                    _agencyId       = radioInfo.AgencyKeyId;
                    _radioName      = radioInfo.RadioName;
                    _roleName       = radioInfo.RoleName;
                    _personnelName  = radioInfo.PersonnelName;
                    _radioType      = radioInfo.RadioType;
                    SignalingFormat = radioInfo.SignalingFormat;
                    SignalingUnitId = radioInfo.SignalingUnitId;
                }
            }
        }
Beispiel #8
0
 public void HandleRadioCall(RadioSignalItemModel rsim)
 {
     if (!_firegroundEnabled)
         return;
     if (rsim == null || rsim.RawSignalItem == null)
         return;
     HandleRadioSignal(rsim.RawSignalItem, rsim.EmergencyState);
 }