private void ClearData() { _model = null; _openFile = null; _manufacturerData = null; _hardware = null; _product = null; _catalogItem = null; _catalogSection = null; _applicationProgram = null; _hardware2Program = null; _appProgRef = null; _codeSegment = null; Parameters.Clear(); RaiseChanged(); }
private void Open(object param) { try { if (_model != null) { var cancel = AskSaveCancel(); if (cancel) { return; } } var filePath = _dialogService.ChooseFileToOpen(_fileExtension, _fileFilter); if (filePath == null) { return; } _openFile = filePath; XmlSerializer serializer = new XmlSerializer(typeof(KNX)); using (var reader = new StreamReader(_openFile)) { _model = (KNX)serializer.Deserialize(reader); } if (File.Exists("knx_master.xml")) { using (var reader = new StreamReader("knx_master.xml")) { var masterData = (KNX)serializer.Deserialize(reader); _model.MasterData = masterData.MasterData; } } _manufacturerData = _model.ManufacturerData.First(); _hardware = _manufacturerData.Hardware.First(); _product = _hardware.Products.First(); _catalogSection = _manufacturerData.Catalog.First(); _catalogItem = _catalogSection.CatalogItem.First(); _hardware2Program = _hardware.Hardware2Programs.First(); _applicationProgram = _manufacturerData.ApplicationPrograms.First(); _appProgRef = _hardware2Program.ApplicationProgramRef.First(); _codeSegment = _applicationProgram.Static.Code.RelativeSegment.First(); var parameterList = _applicationProgram.Static.Parameters.Parameter; foreach (var item in parameterList) { item.AllTypes = ParameterTypes; item.Type = ParameterTypes.First(t => t.Id == item.ParameterType); Parameters.Add(item); } RaiseChanged(); } catch (Exception ex) { ClearData(); _dialogService.ShowMessage(ex.ToString()); } }
private void CreateNew(object param) { try { if (_model != null) { var cancel = AskSaveCancel(); if (cancel) { return; } } _model = new KNX(); string lang = Thread.CurrentThread.CurrentCulture.Name; _manufacturerData = new ManufacturerData_TManufacturer(); _applicationProgram = new ApplicationProgram_T(); _hardware = new Hardware_T(); _catalogSection = new CatalogSection_T(); _product = new Hardware_TProductsProduct(); _hardware2Program = new Hardware2Program_T(); _appProgRef = new ApplicationProgramRef_T(); _catalogItem = new CatalogSection_TCatalogItem(); _model.ManufacturerData.Add(_manufacturerData); _manufacturerData.Catalog.Add(_catalogSection); _manufacturerData.ApplicationPrograms.Add(_applicationProgram); _manufacturerData.Hardware.Add(_hardware); _hardware.Products.Add(_product); _hardware.Hardware2Programs.Add(_hardware2Program); _hardware2Program.ApplicationProgramRef.Add(_appProgRef); _catalogSection.CatalogItem.Add(_catalogItem); _model.CreatedBy = _toolName; _model.ToolVersion = _toolVersion; ApplicationNumber = 0; ApplicationVersion = 0; _applicationProgram.ProgramType = ApplicationProgramType_T.ApplicationProgram; _applicationProgram.MaskVersion = "MV-57B0"; _applicationProgram.LoadProcedureStyle = LoadProcedureStyle_T.MergedProcedure; _applicationProgram.PeiType = 0; _applicationProgram.DefaultLanguage = lang; _applicationProgram.DynamicTableManagement = false; _applicationProgram.Linkable = false; _applicationProgram.MinEtsVersion = "5.0"; _applicationProgram.ReplacesVersions = null; _applicationProgram.IsSecureEnabled = false; _applicationProgram.MaxSecurityIndividualAddressEntries = 32; _applicationProgram.MaxSecurityGroupKeyTableEntries = 50; var appStatic = new ApplicationProgramStatic_T(); _applicationProgram.Static = appStatic; var code = new ApplicationProgramStatic_TCode(); appStatic.Code = code; _codeSegment = new ApplicationProgramStatic_TCodeRelativeSegment(); code.RelativeSegment.Add(_codeSegment); _codeSegment.Name = "Parameters"; _codeSegment.Offset = 0; _codeSegment.LoadStateMachine = 4; _codeSegment.Size = 0; appStatic.Parameters = new ApplicationProgramStatic_TParameters(); appStatic.AddressTable = new ApplicationProgramStatic_TAddressTable(); appStatic.AddressTable.MaxEntries = ushort.MaxValue; appStatic.AssociationTable = new ApplicationProgramStatic_TAssociationTable(); appStatic.AssociationTable.MaxEntries = ushort.MaxValue; appStatic.ComObjectTable = new ApplicationProgramStatic_TComObjectTable(); appStatic.Options = new ApplicationProgramStatic_TOptions(); HardwareSerial = "0"; HardwareVersion = 0; _hardware.HasIndividualAddress = true; _hardware.HasApplicationProgram = true; _hardware.IsIPEnabled = true; _product.IsRailMounted = false; _product.DefaultLanguage = lang; OrderNumber = "0"; _hardware2Program.MediumTypes.Add("MT-5"); _hardware2Program.MediumTypes.Add("MT-2"); _catalogSection.Name = Ressources.Devices; _catalogSection.Number = "1"; _catalogSection.DefaultLanguage = lang; _catalogItem.Name = _product.Text; _catalogItem.Number = 1; _catalogItem.ProductRefId = _product.Id; _catalogItem.Hardware2ProgramRefId = _hardware2Program.Id; _catalogItem.DefaultLanguage = lang; RaiseChanged(); } catch (Exception ex) { _dialogService.ShowMessage(ex.ToString()); ClearData(); } }