Esempio n. 1
0
        //___________________________СЕРИАЛИЗАЦИЯ______________________________________________
        ///////////////////////////////////////////////////////////////////////////////////////

        private void saveButton_Click(object sender, EventArgs e)
        {
            SaveFileDialog sDial = new SaveFileDialog();

            int ind = lastSaveDirectory.LastIndexOf(@"\") + 1;

            sDial.InitialDirectory = lastSaveDirectory.Substring(0, ind);
            if (ind >= lastSaveDirectory.Length)
            {
                sDial.FileName = "";
            }
            else
            {
                sDial.FileName = lastSaveDirectory.Substring(ind, lastSaveDirectory.Length - ind);
            }

            sDial.Filter          = "(*.xml)|*.xml";
            sDial.OverwritePrompt = true;
            sDial.Title           = "SH TestDataGenerator - Сохранить конфигурацию";
            if (sDial.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }

            lastSaveDirectory = sDial.FileName;
            XmlTextWriter outStream = new XmlTextWriter(File.Create(sDial.FileName), Preferences.Output.OUTPUT_ENCODING);

            outStream.Formatting = Formatting.Indented;


            Application.UseWaitCursor = true;
            this.Enabled = false;
            Application.DoEvents();

            List <Sensor>     sensors    = new List <Sensor>(sensorPanels.Count);
            List <StaticData> staticData = new List <StaticData>(staticDataPanels.Count);

            foreach (SensorPanel sensorPanel in sensorPanels)
            {
                sensors.Add(sensorPanel.DataProvider);
            }

            foreach (StaticDataPanel staticDataPanel in staticDataPanels)
            {
                staticData.Add(staticDataPanel.DataProvider);
            }

            DataGenConfiguration genConfig = new DataGenConfiguration(sensors, staticData, intervalController.IntervalMS, startTimePicker.Value,
                                                                      outputDate.Checked, outputTime.Checked, outputMS.Checked, outputSensorFieldTitles.Checked, outputStructureToFile.Checked, outputStatDataFieldTitles.Checked);

            DataContractSerializer dataContractSerializer = new DataContractSerializer(typeof(DataGenConfiguration), DataGenRoutine.KnownGenerationTypes);

            dataContractSerializer.WriteObject(outStream, genConfig);
            outStream.Close();

            Application.UseWaitCursor = false;
            this.Enabled = true;
        }
Esempio n. 2
0
        private void loadButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog oDial = new OpenFileDialog();
            int            ind   = lastSaveDirectory.LastIndexOf(@"\") + 1;

            oDial.InitialDirectory = lastSaveDirectory.Substring(0, ind);
            oDial.Filter           = "(*.xml)|*.xml";
            oDial.Title            = "SH TestDataGenerator - Загрузить конфигурацию";
            oDial.CheckFileExists  = true;

            if (oDial.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }

            lastSaveDirectory = oDial.FileName;
            XmlTextReader inStream = new XmlTextReader(oDial.FileName);


            Application.UseWaitCursor = true;
            this.Enabled = false;
            Application.DoEvents();


            DataContractSerializer dataContractSerializer = new DataContractSerializer(typeof(DataGenConfiguration), DataGenRoutine.KnownGenerationTypes);
            DataGenConfiguration   genConfig = (DataGenConfiguration)dataContractSerializer.ReadObject(inStream);

            inStream.Close();


            //Очистить текущий список датчиков
            foreach (SensorPanel sensorPanel in sensorPanels)
            {
                sensorsContainer.Controls.Remove(sensorPanel);
            }
            sensorPanels.Clear();

            foreach (StaticDataPanel staticDataPanel in staticDataPanels)
            {
                staticDataContainer.Controls.Remove(staticDataPanel);
            }
            staticDataPanels.Clear();


            //Устанавливаем простые свойства формы
            intervalController.IntervalMS = genConfig.IntervalMS;
            outputDate.Checked            = genConfig.OutputDate;
            outputTime.Checked            = genConfig.OutputTime;
            outputMS.Checked = genConfig.OutputMS;
            outputSensorFieldTitles.Checked   = genConfig.OutputSensorFieldTitles;
            outputStructureToFile.Checked     = genConfig.OutputStructureToFile;
            outputStatDataFieldTitles.Checked = genConfig.OutputStaticDataFieldTitles;
            startTimePicker.Value             = genConfig.StartDateTime;

            //Добавляем панели датчиков и статических данных
            foreach (Sensor sensor in genConfig.Sensors)
            {
                AddSensor(sensor);
            }
            foreach (StaticData staticData in genConfig.StaticData)
            {
                AddStaticData(staticData);
            }

            //Восстанавливаем список доступных сидов
            UpdateAvailableSeeds();


            Application.UseWaitCursor = false;
            this.Enabled = true;
        }