Example #1
0
        void _consult_ClassStateChanged(ConsultClassState state)
        {
            string text = String.Format("{0} [{1}]",
                                        this.Tag,
                                        state.ToString()
                                        );

            HelperClass.BeginInvoke(this, delegate { Text = text; });
        }
        /// <summary>
        /// Проверка состояния ECU
        /// </summary>
        /// <param name="newState">Состояние ECU, которое надо выставить если ECU_IDLE.
        /// Если ECU_IDLE - освободить</param>
        internal void SetClassState(ConsultClassState newState)
        {
            lock (_lockChangeClassState)
            {
                ConsultClassState oldState = _classState;
                switch (newState)
                {
                //Если ECU_IDLE то выставляем - свободен и выходим
                case ConsultClassState.ECU_IDLE:
                    _classState = ConsultClassState.ECU_IDLE;
                    break;

                case ConsultClassState.ECU_CONNECTING:
                    if (_classState != ConsultClassState.ECU_OFFLINE)
                    {
                        throw new ConsultException("Перед подключением необходимо отключиться!");
                    }
                    break;

                case ConsultClassState.ECU_OFFLINE:
                    _classState = newState;
                    break;

                case ConsultClassState.ECU_STREAMING_MONITORS:
                default:
                    if (_classState != ConsultClassState.ECU_IDLE)
                    {
                        string errMess = String.Format("Невозможно выставить новое состояние [{0}] при текущем [{2}]. Возможно только если [{1}]",
                                                       newState.ToString(),
                                                       ConsultClassState.ECU_IDLE,
                                                       State);
                        throw new ConsultException(errMess);
                    }

                    _classState = newState;
                    break;
                }

                //raise event if not null
                if (newState != oldState && ClassStateChanged != null)
                {
                    ClassStateChanged.DynamicInvoke(_classState);
                }
            }
        }
Example #3
0
        void _consult_ClassStateChanged(ConsultClassState state)
        {
            string text = String.Format("{0} [{1}]",
                this.Tag,
                state.ToString()
                );

            HelperClass.BeginInvoke(this, delegate { Text = text; });
        }
Example #4
0
        /// <summary>
        /// Проверка состояния ECU
        /// </summary>
        /// <param name="newState">Состояние ECU, которое надо выставить если ECU_IDLE.
        /// Если ECU_IDLE - освободить</param>
        internal void SetClassState(ConsultClassState newState)
        {
            lock (_lockChangeClassState)
            {
                ConsultClassState oldState = _classState;
                switch (newState)
                {
                    //Если ECU_IDLE то выставляем - свободен и выходим
                    case ConsultClassState.ECU_IDLE:
                        _classState = ConsultClassState.ECU_IDLE;
                        break;
                    case ConsultClassState.ECU_CONNECTING:
                        if (_classState != ConsultClassState.ECU_OFFLINE)
                            throw new ConsultException("Перед подключением необходимо отключиться!");
                        break;
                    case ConsultClassState.ECU_OFFLINE:
                        _classState = newState;
                        break;
                    case ConsultClassState.ECU_STREAMING_MONITORS:
                    default:
                        if (_classState != ConsultClassState.ECU_IDLE)
                        {
                            string errMess = String.Format("Невозможно выставить новое состояние [{0}] при текущем [{2}]. Возможно только если [{1}]",
                                newState.ToString(),
                                ConsultClassState.ECU_IDLE,
                                State);
                            throw new ConsultException(errMess);
                        }

                        _classState = newState;
                        break;
                }

                //raise event if not null
                if (newState != oldState && ClassStateChanged != null)
                    ClassStateChanged.DynamicInvoke(_classState);
            }
        }