Exemple #1
0
        public void OnRadioChanged(object sender, RangeMsg e)
        {
            Debug.Assert(e.Count > 0);
            int absPageBegin = _RdPageBT.Page * _NumPositionsByPage;

            for (int i = Math.Max(e.From, absPageBegin), to = Math.Min(e.From + e.Count, absPageBegin + _NumPositionsByPage); i < to; i++)
            {
                RdButton bt  = _RdButtons[i - absPageBegin];
                RdDst    dst = _StateManager.Radio[i];

                /*
                 * if (!dst.Restored || dst.Unavailable)
                 * {
                 *  Reset(bt, dst);
                 *
                 *  if (!dst.Unavailable && i < Settings.Default.AssignatedStates.Count)
                 *  {
                 *      Settings.Default.AssignatedStates.RemoveAt(i - absPageBegin);
                 *      Settings.Default.AssignatedStates.Insert(i - absPageBegin, dst.Frecuency + "," + dst.Rx.ToString() + "," + dst.Tx +
                 *                                          "," + dst.AudioVia + "," + dst.Unavailable);
                 *  }
                 *  else if (!dst.Unavailable)
                 *  {
                 *      Settings.Default.AssignatedStates.Add(dst.Frecuency + "," + dst.Rx.ToString() + "," + dst.Tx +
                 *                                          "," + dst.AudioVia + "," + dst.Unavailable);
                 *  }
                 *  // Envío de vuelta confirmación para que Engine envíe histórico (si corresponde)
                 *  // De momento a este comando solo se atiende si Engine es OPE (CD30)
                 *  _CmdManager.SendCmdHistoricalEvent(_StateManager.Title.Id, dst.Frecuency);
                 * }
                 * else*/
                {
                    EstadoAsignacion estado = _EstadosAsignacion[i - absPageBegin];
                    Reset(bt, dst, ref estado);
                    //Reset(bt, dst);
                    _EstadosAsignacion[i - absPageBegin] = estado;

                    if (/*!dst.Unavailable &&*/ i < Settings.Default.AssignatedStates.Count)
                    {
                        Settings.Default.AssignatedStates.RemoveAt(i - absPageBegin);
                        Settings.Default.AssignatedStates.Insert(i - absPageBegin, dst.Frecuency + "," + estado._Rx.ToString() + "," + estado._Tx +
                                                                 "," + dst.AudioVia + "," + dst.Unavailable);
                    }
                    else //if (!dst.Unavailable)
                    {
                        Settings.Default.AssignatedStates.Add(dst.Frecuency + "," + estado._Rx.ToString() + "," + estado._Tx +
                                                              "," + dst.AudioVia + "," + dst.Unavailable);
                    }

                    // Envío de vuelta confirmación para que Engine envíe histórico (si corresponde)
                    // De momento a este comando solo se atiende si Engine es OPE (CD30)
                    _CmdManager.SendCmdHistoricalEvent(_StateManager.Title.Id, dst.Frecuency);
                }
            }

            Settings.Default.Save();

            _RtxBT.Enabled = _RtxEnabled;
        }
Exemple #2
0
        /** Esta funcion se ha trasladado al Model Module */
        //private void RecuperaEstadoAsignacionFrecuencias()
        //{
        //    int absPageBegin = _urrRdPageButton.Page * _NumPositionsByPage;

        //    for (int i = absPageBegin, to = absPageBegin + _NumPositionsByPage; i < to; i++)
        //    {
        //        if (i < Settings.Default.AssignatedStates.Count)
        //        {
        //            string[] estado = Settings.Default.AssignatedStates[i].Split(',');

        //            EstadoAsignacion eAsignacion = new EstadoAsignacion();

        //            eAsignacion._Rx = estado[1] == "True";
        //            eAsignacion._Tx = estado[2] == "True";
        //            switch (estado[3])
        //            {
        //                case "HeadPhones":
        //                    eAsignacion._AudioVia = RdRxAudioVia.HeadPhones;
        //                    break;
        //                case "Speaker":
        //                    eAsignacion._AudioVia = RdRxAudioVia.Speaker;
        //                    break;
        //                case "NoAudio":
        //                    eAsignacion._AudioVia = RdRxAudioVia.NoAudio;
        //                    break;
        //            }

        //            _EstadosAsignacion[i - absPageBegin] = eAsignacion;

        //        }
        //    }
        //}

        private void Reset(UrrRdButton bt, RdDst dst, ref EstadoAsignacion estado)
        {
            Reset(bt, dst);

            if (!dst.Unavailable && estado.Unavailable && !_StateManager.ScreenSaver.On)
            {
                if (estado._Rx && !dst.Rx)
                {
                    //RdButton_RxShortClick(bt, null);
                    Forced_RxShortClick(bt);
                }
                else if (estado._AudioVia == RdRxAudioVia.HeadPhones)
                {
                    if (dst.TipoFrecuencia == TipoFrecuencia_t.HF && (dst.AudioVia == RdRxAudioVia.HfSpeaker || dst.AudioVia == RdRxAudioVia.Speaker))
                    {
                        //RdButton_RxShortClick(bt, null);
                        Forced_RxShortClick(bt);
                    }
                    else if (dst.TipoFrecuencia != TipoFrecuencia_t.HF && dst.AudioVia == RdRxAudioVia.Speaker)
                    {
                        //RdButton_RxShortClick(bt, null);
                        Forced_RxShortClick(bt);
                    }
                }
                else if (estado._AudioVia == RdRxAudioVia.HfSpeaker && dst.AudioVia == RdRxAudioVia.Speaker)
                {
                    //RdButton_RxShortClick(bt, null);
                    Forced_RxShortClick(bt);
                }

                if (estado._Tx && !dst.Tx)
                {
                    //RdButton_TxClick(bt, null);
                    try
                    {
                        // Forzar la asignación de Tx independientemente de si está ya asignada en otra posición
                        _CmdManager.RdConfirmTxState(bt.Id);
                    }
                    catch (Exception ex)
                    {
                        int    pos = _RdButtons.IndexOf(bt);
                        string msg = string.Format("ERROR modificando Tx de frecuencia RD [Pos={0}] [Id={1}]", pos, bt.Id);
                        _Logger.Error(msg, ex);
                    }
                }
            }
            else if (!dst.Unavailable && !estado.Unavailable)
            {
                estado._Tx       = dst.Tx;
                estado._Rx       = dst.Rx;
                estado._AudioVia = dst.AudioVia;
            }

            estado.Unavailable = dst.Unavailable ||
                                 estado._Rx != dst.Rx ||
                                 estado._Tx != dst.Tx ||
                                 estado._AudioVia != dst.AudioVia;
        }
Exemple #3
0
        public void OnRadioChanged(object sender, RangeMsg e)
        {
            Debug.Assert(e.Count > 0);
            int absPageBegin = _urrRdPageButton.Page * _NumPositionsByPage;

            for (int i = Math.Max(e.From, absPageBegin), to = Math.Min(e.From + e.Count, absPageBegin + _NumPositionsByPage); i < to; i++)
            {
                UrrRdButton      bt     = _RdButtons[i - absPageBegin];
                RdDst            dst    = _StateManager.Radio[i];
                EstadoAsignacion estado = _EstadosAsignacion[i - absPageBegin];
                Reset(bt, dst, ref estado);
            }

            _RtxBT.Enabled = _RtxEnabled;
        }
Exemple #4
0
        public void OnRadioChanged(object sender, RangeMsg e)
        {
            Debug.Assert(e.Count > 0);
            int absPageBegin = _RdPageBT.Page * _NumPositionsByPage;

            _Logger.Debug("******** M+N [RadioView::OnRadioChanged]");

            for (int i = Math.Max(e.From, absPageBegin), to = Math.Min(e.From + e.Count, absPageBegin + _NumPositionsByPage); i < to; i++)
            {
                RdButton         bt     = _RdButtons[i - absPageBegin];
                RdDst            dst    = _StateManager.Radio[i];
                EstadoAsignacion estado = _EstadosAsignacion[i - absPageBegin];
                Reset(bt, dst, ref estado);
                //Reset(bt, dst);
                _EstadosAsignacion[i - absPageBegin] = estado;

                /** Esta funcion se ha trasladado al MODEL MODULE */
                //if (i < Settings.Default.AssignatedStates.Count)
                //{
                //    Settings.Default.AssignatedStates.RemoveAt(i - absPageBegin);
                //    Settings.Default.AssignatedStates.Insert(i - absPageBegin, dst.Frecuency + "," + _EstadosAsignacion[i - absPageBegin]._Rx.ToString() + "," +
                //                                        ((dst.TipoFrecuencia == TipoFrecuencia_t.HF) ? false : _EstadosAsignacion[i - absPageBegin]._Tx) +
                //                                            "," + _EstadosAsignacion[i - absPageBegin]._AudioVia + "," + _EstadosAsignacion[i - absPageBegin].Unavailable);
                //}
                //else
                //{
                //    Settings.Default.AssignatedStates.Add(dst.Frecuency + "," + _EstadosAsignacion[i - absPageBegin]._Rx.ToString() + "," +
                //                                        ((dst.TipoFrecuencia == TipoFrecuencia_t.HF) ? false : _EstadosAsignacion[i - absPageBegin]._Tx) +
                //                                            "," + _EstadosAsignacion[i - absPageBegin]._AudioVia + "," + _EstadosAsignacion[i - absPageBegin].Unavailable);
                //}
            }

            /** Esta funcion se ha trasladado al MODEL MODULE */
            //Settings.Default.Save();

            _RtxBT.Enabled = _RtxEnabled;
        }