//___________________________СЕРИАЛИЗАЦИЯ______________________________________________ /////////////////////////////////////////////////////////////////////////////////////// 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; }
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; }