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); } } }
/// <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); } }