Esempio n. 1
0
        public void Startup_Procedure(object x, System.EventArgs e)
        {
            Console.WriteLine("Запуск главной формы");

            Application app = Current;

            //Считываем с диска файл с параметрами,имя файла запомнено с помощью
            //механизма ApplicationSettingBase
            mySettings = new MyUserSettings();
            scull_Furnaces_Main_Window = new Scull_Furnaces_Main_Window();
            scull_Furnaces_Main_Window.InitializeComponent();
            //Устанавливаем имя считываемого файла из сохранённого значания, оно будет обновлятся
            //после диалога с пользователем
            TabControlData[0].canvasForDiplayedPlot = scull_Furnaces_Main_Window.voltageGraph;
            TabControlData[1].canvasForDiplayedPlot = scull_Furnaces_Main_Window.currentGraph;
            TabControlData[2].canvasForDiplayedPlot = scull_Furnaces_Main_Window.vacuumGraph;
            TabControlData[3].canvasForDiplayedPlot = scull_Furnaces_Main_Window.waterGraph;
            scull_Furnaces_Main_Window._remembranceOfFileName.fileName = mySettings.FileName;
            //записываем его в глобальное поле как для доступа из консольной программы
            Globals.fileName = scull_Furnaces_Main_Window._remembranceOfFileName.fileName;
            WriteLine("Считанное имя файла : {0}", Globals.fileName);
            scull_Furnaces_Main_Window._remembranceOfFileName.PropertyChanged += rememberTheChosenFileName;

            Globals.readAllTheBytes(Globals.fileName);                                    //проверка файла через чтение его в память и проверку первого блока
            ReadParamFromDisk packedParameters = new ReadParamFromDisk(Globals.fileName); //повторное чтение файла параметров

            //в память с инструментарием для работы с ним.
            unpackedParameters = new TickParamsAll(packedParameters); //получение распакованного массива
                                                                      //File.WriteAllBytes(Globals.fileName+".bin", unpackedParameters.inflatedParameters); //запись на диск
                                                                      //распакованного массива


            //scull_Furnaces_Main_Window.maxValueForCurrentOnYAxis.Text = mySettings.UpperLimitForCurrent;
            scull_Furnaces_Main_Window.maxValueForCurrentOnYAxis.DataContext = mySettings;
            scull_Furnaces_Main_Window.maxValueForVoltageOnYAxis.DataContext = mySettings;

            scull_Furnaces_Main_Window.begTimeOnXAxis.clockWatch.Alarm_On           = false; //не обнавлять график при начальной установке диапазона времени для отображения
            scull_Furnaces_Main_Window.endTimeOnXAxis.clockWatch.Alarm_On           = false; //не обнавлять график при начальной установке диапазона времени для отображения
            scull_Furnaces_Main_Window.begTimeForVoltageOnXAxis.clockWatch.Alarm_On = false;
            scull_Furnaces_Main_Window.endTimeForVoltageOnXAxis.clockWatch.Alarm_On = false;

            scull_Furnaces_Main_Window.begTimeOnXAxis.Ticks.Text           = mySettings.TimeLowerBoundaryForTheCurrent.ToString();
            scull_Furnaces_Main_Window.endTimeOnXAxis.Ticks.Text           = mySettings.TimeUpperBoundaryForTheCurrent.ToString();
            scull_Furnaces_Main_Window.begTimeForVoltageOnXAxis.Ticks.Text = mySettings.TimeLowerBoundaryForTheVoltage.ToString();
            scull_Furnaces_Main_Window.endTimeForVoltageOnXAxis.Ticks.Text = mySettings.TimeUpperBoundaryForTheVoltage.ToString();

            scull_Furnaces_Main_Window.begTimeOnXAxis.clockWatch.AlarmProcedure           += scull_Furnaces_Main_Window.setMinTimeValue;
            scull_Furnaces_Main_Window.endTimeOnXAxis.clockWatch.AlarmProcedure           += scull_Furnaces_Main_Window.setMaxTimeValue;
            scull_Furnaces_Main_Window.begTimeForVoltageOnXAxis.clockWatch.AlarmProcedure += scull_Furnaces_Main_Window.setMinTimeForVoltageValue;
            scull_Furnaces_Main_Window.endTimeForVoltageOnXAxis.clockWatch.AlarmProcedure += scull_Furnaces_Main_Window.setMaxTimeForVoltageValue;

            scull_Furnaces_Main_Window.momentOfTime.clockWatch.AlarmProcedure      += scull_Furnaces_Main_Window.setParameterValueOnTheTab;
            scull_Furnaces_Main_Window.momentOfTime.clockWatch.AlarmProcedure      += testAlarm;
            scull_Furnaces_Main_Window.begTimeOnXAxis.clockWatch.Alarm_On           = true; //обновлять график при изменении нижней границы диапазона времени
            scull_Furnaces_Main_Window.endTimeOnXAxis.clockWatch.Alarm_On           = true; //обновлять график при изменении верхней границы диапазона времени
            scull_Furnaces_Main_Window.begTimeForVoltageOnXAxis.clockWatch.Alarm_On = true;
            scull_Furnaces_Main_Window.endTimeForVoltageOnXAxis.clockWatch.Alarm_On = true;

            scull_Furnaces_Main_Window.unpackedParameters = this.unpackedParameters;
            scull_Furnaces_Main_Window.WindowStyle        = WindowStyle.ToolWindow;
            scull_Furnaces_Main_Window.Show();
            //Создаём табло с набором дискретных параметров и привязкой каждого из них к свойству parameterState
            //в обьекте класса ColorSource
            ParameterAllValues parameterDescription = null;

            foreach (var pair in ParameterData)
            {
                parameterDescription = pair.Value;
                if (parameterDescription.parameterType == ParameterType.дискретный)
                {
                    DiscretePlaque btnControl = new DiscretePlaque()
                    {
                        Content = parameterDescription.parameterName
                    };
                    btnControl.discreteNumber = pair.Key;                     // the key in the Dictionary remembered

                    ColorSource colorSourceForAParameter = new ColorSource(); //в свойстве parameterState этого объекта храниться состояние дискрета вкл/выкл
                    //опеределяющее цвет привязанного к нему Plaque, информационной таблички-кнопки.
                    parameterDescription.colorBinding.Source    = colorSourceForAParameter;
                    parameterDescription.colorBinding.Converter = colorSourceForAParameter;

                    btnControl.SetBinding(Button.BackgroundProperty, parameterDescription.colorBinding);
                    btnControl.Template = (ControlTemplate)scull_Furnaces_Main_Window.FindResource("MyBetterButtonTemplate");

                    scull_Furnaces_Main_Window.uniGrid.Children.Add(btnControl);
                }
            }

            //Устанаваливаем номер вкладки на окне из сохранённого значения, он будет обновлятся далее
            //автоматически через привязку BINDING к номеру вкладки в XAML окна

            scull_Furnaces_Main_Window._typeOfParameters.PropertyChanged += SelectThePageWithParameters;
            scull_Furnaces_Main_Window._typeOfParameters.PropertyChanged += testSelectPage;
            scull_Furnaces_Main_Window._typeOfParameters.theNumberOfTab   = mySettings.SelectedIndex;
            TimeMover.numberOfSecond = 0;
        }
Esempio n. 2
0
    public void Startup_Procedure(object x, System.EventArgs e)
    {
        Console.WriteLine("Запуск главной формы");

        Application app = Current;

        //Считываем с диска файл с параметрами,имя файла запомнено с помощью
        //механизма ApplicationSettingBase
        mySettings = new MyUserSettings();
        scull_Furnaces_Main_Window = new Scull_Furnaces_Main_Window();
        scull_Furnaces_Main_Window.InitializeComponent();
        //Устанавливаем имя считываемого файла из сохранённого значания, оно будет обновлятся
        //после диалога с пользователем
        scull_Furnaces_Main_Window._remembranceOfFileName.fileName = mySettings.FileName;
        //записываем его в глобальное поле как для доступа из консольной программы
        Globals.fileName = scull_Furnaces_Main_Window._remembranceOfFileName.fileName;
        WriteLine("Считанное имя файла : {0}", Globals.fileName);
        scull_Furnaces_Main_Window._remembranceOfFileName.PropertyChanged += rememberTheChosenFileName;

        Globals.readAllTheBytes(Globals.fileName);                                    //проверка файла через чтение его в память и проверку первого блока
        ReadParamFromDisk packedParameters = new ReadParamFromDisk(Globals.fileName); //повторное чтение файла параметров

        //в память с инструментарием для работы с ним.
        unpackedParameters = new TickParamsAll(packedParameters); //получение распакованного массива
                                                                  //File.WriteAllBytes(Globals.fileName+".bin", unpackedParameters.inflatedParameters); //запись на диск
                                                                  //распакованного массива


        //scull_Furnaces_Main_Window.maxValueForCurrentOnYAxis.Text = mySettings.UpperLimitForCurrent;
        scull_Furnaces_Main_Window.maxValueForCurrentOnYAxis.DataContext = mySettings;

        scull_Furnaces_Main_Window.begTimeOnXAxis.clockWatch.Alarm_On        = false; //не обнавлять график при начальной установке диапазона времени для отображения
        scull_Furnaces_Main_Window.endTimeOnXAxis.clockWatch.Alarm_On        = false; //не обнавлять график при начальной установке диапазона времени для отображения
        scull_Furnaces_Main_Window.begTimeOnXAxis.Ticks.Text                 = mySettings.TimeLowerBoundaryForTheCurrent.ToString();
        scull_Furnaces_Main_Window.endTimeOnXAxis.Ticks.Text                 = mySettings.TimeUpperBoundaryForTheCurrent.ToString();
        scull_Furnaces_Main_Window.begTimeOnXAxis.clockWatch.AlarmProcedure += scull_Furnaces_Main_Window.setMinTimeValue;
        scull_Furnaces_Main_Window.endTimeOnXAxis.clockWatch.AlarmProcedure += scull_Furnaces_Main_Window.setMaxTimeValue;
        scull_Furnaces_Main_Window.begTimeOnXAxis.clockWatch.Alarm_On        = true; //обновлять график при изменении нижней границы диапазона времени
        scull_Furnaces_Main_Window.endTimeOnXAxis.clockWatch.Alarm_On        = true; //обновлять график при изменении верхней границы диапазона времени

        scull_Furnaces_Main_Window.WindowStyle = WindowStyle.ToolWindow;
        scull_Furnaces_Main_Window.Show();

        ParameterAllValues parameterDescription = null;

        foreach (var pair in ParameterData)
        {
            parameterDescription = pair.Value;
            if (parameterDescription.parameterType == ParameterType.дискретный)
            {
                DiscretePlaque btnControl = new DiscretePlaque()
                {
                    Content = parameterDescription.parameterName
                };
                btnControl.discreteNumber = pair.Key; // the key in the Dictionary remembered
                                                      //Binding colorBindingForAParameter = new Binding("parameterState"); //to the parameterDesription !!!
                Binding     colorBindingForAParameter = parameterDescription.colorBinding;
                ColorSource colorSourceForAParameter  = new ColorSource();
                colorBindingForAParameter.Source = colorSourceForAParameter;
                //put the Binding into initial state, setting the parameterState in colorSourceForAParameter in accordance with the parameter value being read from disk

                colorBindingForAParameter.Converter = colorSourceForAParameter;

                btnControl.SetBinding(Button.BackgroundProperty, colorBindingForAParameter);
                btnControl.Template = (ControlTemplate)scull_Furnaces_Main_Window.FindResource("MyBetterButtonTemplate");
                //btnControl.discreteNumber - ?? how to define ? the number in  []

                scull_Furnaces_Main_Window.uniGrid.Children.Add(btnControl);
            }
        }

        //Устанаваливаем номер вкладки на окне из сохранённого значения, он будет обновлятся далее
        //автоматически через привязку BINDING к номеру вкладки в XAML окна

        scull_Furnaces_Main_Window._typeOfParameters.PropertyChanged += rememberThePageWithParameters;
        scull_Furnaces_Main_Window._typeOfParameters.theNumberOfTab   = mySettings.SelectedIndex;

        TimeMover.numberOfSecond = 1; //Начинаем просмотр дискретов с 1 секунды!
    }