private void GhangeSubstate(int Substate, int DescrId) { NeedStatusRequest = (Substate != GlorySubState_Ok); switch (Substate) { case GlorySubState_Ok: if (CurrentGlorySubstate != Substate) { AllDoButtonsEnable(); cassetaLockState = true; pnlInkassMenu.SetBtnUnlockTxt("Разблокировать кассету"); GhangeConnectionState(CurrentConnectonState); } break; case GlorySubState_InitError: AllDoButtonsDisable(); this.Dispatcher.Invoke((Action)(() => { btnReset.IsEnabled = true; })); break; case GlorySubState_Init: AllDoButtonsDisable(); SetStatus("Инициализация. Обновите состояние"); break; case GlorySubState_WaitingRemovalReject: SetStatus("Удалите банкноты из лотка для сдачи", Colors.Red); break; case GlorySubState_WaitingRemovalCashout: AllDoButtonsDisable(); SetStatus("Удалите непринятые банкноты из лотка для сдачи", Colors.Red); break; case GlorySubState_Unlocking: AllDoButtonsDisable(); pnlInkassMenu.SetBtnUnlockEnable(true); MenuState = 2; SetStatus("Дверца разблокирована", Colors.Red); break; case GlorySubState_NonDescript: //AllDoButtonsDisable(); SetStatus(String.Format("Устройство находится в состоянии {0} : {1},", DescrId, FCCApi.GetStatusStringRus(DescrId)), Colors.Red); break; default: break; } CurrentGlorySubstate = Substate; }