Пример #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;
        }