/// <summary> /// Записывет начальное значение часов в платы и разрешает клок МС /// </summary> /// <param name="ожидание"></param> public void ежимСинхИлиНет(int ожидание) { try { TimeTaimer(ожидание); if (ClassParentsBAAK.Синхронизация) { rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Запуск с синхронизацией"; }));// Thread.Sleep(2000); if (!set.FlagClok) { rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Подготовка МС"; })); Thread.Sleep(2000); //TimeTaimer(ожидание); BAAK12T.ЗаписьВремяРегистрDelegate?.Invoke(); ClassBAAK12NoTail.ЗаписьВремяРегистрDelegate?.Invoke(); BAAK12T.СтартЧасовDelegate?.Invoke(); //СтартЧасовDelegate(); // Thread.Sleep(ожидание * 1000); int min = 0; while (min < ожидание * 1000) { rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Ожидание =" + ожидание + " сек." + " Осталось " + (((ожидание * 1000) - min) / 1000).ToString() + " сек."; })); Thread.Sleep(1000); min = min + 1000; } try { MS.АвтономныйКлокРазрешен(1); } catch { } try { // MS1.АвтономныйКлокРазрешен(1); } catch { } } else//запуск с МГВМ { rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Подготовка МГВС"; })); Thread.Sleep(1000); Thread.Sleep(1000); BAAK12T.ЗаписьВремяРегистрDelegate?.Invoke(); BAAK12T.СтартЧасовDelegate?.Invoke(); int min = 0; while (min < ожидание * 1000) { rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Ожидание =" + ожидание + "сек." + " Осталось " + (((ожидание * 1000) - min) / 1000).ToString() + "сек."; })); Thread.Sleep(1000); min = min + 1000; } int flagStart = 1; rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Ожидается ответ от МГВС"; })); Thread.Sleep(1000); while (flagStart == 1) { Thread.Sleep(500); string v = "{" + quote + "name" + quote + ":" + quote + "check_sync_progress" + quote + "," + quote + "link_mask" + quote + ":" + set.LincClok + "," + quote + "delay" + quote + ":" + set.DelayClok + "}"; ОтправкаЧтение(v, set.IpMGVS, set.PortMGVS); flagStart = MS.status; } rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Далее"; })); } } else { rezimYst.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { rezimYst.Content = "Запуск без синхронизации"; })); Thread.Sleep(2000); //TimeTaimer(5); BAAK12T.ЗаписьВремяРегистрDelegate?.Invoke(); ClassBAAK12NoTail.ЗаписьВремяРегистрDelegate?.Invoke(); // СтартЧасовDelegate(); } } catch (Exception ex) { MessageBox.Show("Ошибка при работе с синхронизацией"); } }