Example #1
0
        private void Reset(LcButton bt, LcDst dst)
        {
            bt.Id = dst.Id;

            if (_SlowBlinkList.Remove(bt) && (_SlowBlinkList.Count == 0))
            {
                _SlowBlinkTimer.Enabled = false;
                _SlowBlinkOn            = true;
            }

            if (dst.IsConfigurated)
            {
                Color rx = VisualStyle.ButtonColor;
                Color tx = VisualStyle.ButtonColor;

                if (!dst.Unavailable)
                {
                    switch (dst.Rx)
                    {
                    case LcRxState.Idle:
                        break;

                    case LcRxState.Rx:
                    case LcRxState.RxNotif:
                        rx = VisualStyle.Colors.Green;
                        break;

                    case LcRxState.Mem:
                        rx = VisualStyle.Colors.Orange;
                        break;
                    }

                    switch (dst.Tx)
                    {
                    case LcTxState.Idle:
                    case LcTxState.Out:
                        break;

                    case LcTxState.Tx:
                        tx = VisualStyle.Colors.Green;
                        break;

                    case LcTxState.Congestion:
                        tx = _SlowBlinkOn ? VisualStyle.Colors.Red : VisualStyle.ButtonColor;
                        _SlowBlinkList[bt]      = VisualStyle.Colors.Red;
                        _SlowBlinkTimer.Enabled = true;
                        break;

                    case LcTxState.Busy:
                        tx = VisualStyle.Colors.Red;
                        break;
                    }
                }

                bt.Reset(dst.Dst, dst.Unavailable, rx, tx);
                bt.Enabled = LcDstEnabled(dst);
            }

            bt.Visible = dst.IsConfigurated;
        }
        public void LcSet(int id, bool on)
        {
            LcDst dst = _StateManager.Lc[id];

            if (on && (dst.Rx == LcRxState.Mem))
            {
                _StateManager.Lc.ResetMem(id);
            }
            else
            {
                _EngineCmdManager.SetLc(id, on);
            }
        }
Example #3
0
        public void OnLcChanged(object sender, RangeMsg e)
        {
            for (int i = e.From, to = e.From + e.Count; i < to; i++)
            {
                LcDst dst = _StateManager.Lc[i];
                if (dst.Tx == LcTxState.Tx)
                {
                    CloseWindow();

                    break;
                }
            }
        }
Example #4
0
        public void OnLcChanged(object sender, RangeMsg e)
        {
            Debug.Assert(e.Count > 0);

            for (int i = e.From, to = e.From + e.Count; i < to; i++)
            {
                LcDst dst           = _StateManager.Lc[i];
                int   headerOfGroup = dst.Group != 0 ? _StateManager.Lc.HeaderLc(dst.Group) : i; //17_01_13 (-1)

                if (headerOfGroup < _NumPositionsByPage)
                {
                    LcButton bt        = _LcButtons[headerOfGroup];
                    LcDst    activeDst = dst.Group != 0 ? _StateManager.Lc.ActiveLc(dst.Group, bt.Id) : dst; //17_01_13 (-1)

                    if ((bt.Id != activeDst.Id) || (bt.Id == i))
                    {
                        Reset(bt, activeDst);
                    }
                }
            }
        }
Example #5
0
 private bool LcDstEnabled(LcDst dst)
 {
     return(_StateManager.Tft.Enabled && _StateManager.Engine.Operative && !dst.Unavailable);
 }