Ejemplo n.º 1
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;
        }