/// <summary> /// Save the ProjectModel to a xml format file /// </summary> /// <param name="filepath"></param> public void Save(XElement rootNode) { rootNode.SetAttributeValue("Name", ProjectName); rootNode.SetAttributeValue("DeviceType", CurrentDevice.Type); var settingNode = new XElement("Setting"); rootNode.Add(settingNode); rootNode.Add(ProjectHelper.CreateXElementByValueComments()); rootNode.Add(ProjectHelper.CreateXElementByValueAlias()); rootNode.Add(ProjectPropertyManager.CreateProjectPropertyXElement()); rootNode.Add(ProjectHelper.CreateXElementByLadderDiagram(MainRoutine)); rootNode.Add(MMonitorManager.MMWindow.CreateXElementByTables()); rootNode.Add(IFacade.MainWindow.ElemInitWind.CreatXElementByElements()); foreach (var ldmodel in SubRoutines) { if (ldmodel.ProgramName.Length == 0) { continue; } rootNode.Add(ProjectHelper.CreateXElementByLadderDiagram(ldmodel)); } foreach (var fbmodel in FuncBlocks) { if (fbmodel.ProgramName.Length == 0) { continue; } rootNode.Add(ProjectHelper.CreateXElementByFuncBlock(fbmodel)); } var mtnode = new XElement("Modbus"); MTVModel.Save(mtnode); rootNode.Add(mtnode); }
public void Dispose() { if (autoSavedManager != null) { autoSavedManager.Abort(); } if (AutoInstManager != null && AutoInstManager.IsAlive) { AutoInstManager.Abort(); } MainRoutine.Dispose(); MainRoutine = null; foreach (var subRoutine in SubRoutines) { subRoutine.Dispose(); } SubRoutines.Clear(); MMonitorManager.Dispose(); MTVModel.Dispose(); MMonitorManager = null; //MTVModel = null; PManager = null; UManager = null; LibFuncBlock.Dispose(); LibFuncBlock = null; foreach (var funcBlock in FuncBlocks) { funcBlock.Dispose(); } FuncBlocks.Clear(); }