protected void CreateTasks(IPadtCRDNodeList nodes) { if (nodes == null || nodes.GetCount() <= 0) { return; } nodes.SetToHeadPos(); while (true) { IPadtCRDNode node = nodes.GetNext() as IPadtCRDNode; if (node == null) { break; } switch ((ResourceType)node.GetType()) { case ResourceType.kCrdTaskNode: case ResourceType.kCrdTaskContainerNode: CreateTasks(node.GetChildList() as IPadtCRDNodeList); break; case ResourceType.kCrdTuiTaskNode: ViGETResTask task = new ViGETResTask(); if (task.CreateTask(node)) { if (DTasks.ContainsKey(task.Key)) { DTasks[task.Key].DBlocks = task.DBlocks; DTasks[task.Key].DVariables = task.DVariables; } else { string shownPath = task.ShownPath; if (DTasks.ContainsKey(shownPath)) { ViGETResTask exist = DTasks[shownPath]; exist.CrdPath = task.CrdPath; exist.DBlocks = task.DBlocks; exist.DVariables = task.DVariables; } else { DTasks[task.Key] = task; } } } break; } } }
protected void LoadMakInfo(string makFile) { IniFile iniFile = new IniFile(makFile); this.Stage = CPUDataStage.Base; this.ShownText = iniFile.GetValue(makSection, "SHOWNTEXT", PCSFile.GetFileKey(this.MakeFile)); this._station = iniFile.GetValue(makSection, "STATION", ""); this._hardware = iniFile.GetValue(makSection, "HARDWARE", ""); this._connection = iniFile.GetValue(makSection, "CONNECTION", ""); this.PCDFile = string.Format(@"{0}{1}\{1}.PCD", this.Project.ProjectGenPath, this.CrdPath); this.DFiles.Clear(); this.DTypes.Clear(); this.DTasks.Clear(); this.DCVariables.Clear(); if (this._DSVariables != null) { this._DSVariables.Clear(); } CPUFileType fileType = CPUFileType.TASKS; PCSFile pcsFile; ViGETResTask task; iniFile.LoopSections( (section) => { if (section.Equals("TASKS", StringComparison.OrdinalIgnoreCase)) { fileType = CPUFileType.TASKS; } else if (section.Equals("GLOBAL", StringComparison.OrdinalIgnoreCase)) { fileType = CPUFileType.GLOBAL; } else if (section.Equals("DIRECT_GLOBAL", StringComparison.OrdinalIgnoreCase)) { fileType = CPUFileType.DIRECT_GLOBAL; } else if (section.Equals("PIV_FILES", StringComparison.OrdinalIgnoreCase)) { fileType = CPUFileType.PIV_FILES; } else { return(false); } return(true); }, (key, value) => { if (key.IsPrefixIndex("FILE") && !string.IsNullOrEmpty(value)) { if (fileType != CPUFileType.TASKS) { pcsFile = new PCSFile(FileType.Variable, ViGETVarFile.GetFullFileName(value, this.Project.ProjectPath, ".POE")); } else { pcsFile = this.Project.GetPCSFile(value); } if (pcsFile != null) { key = PCSFile.GetFileKey(value); if (fileType == CPUFileType.TASKS) { task = new ViGETResTask(ResourceType.kCrdTuiTaskNode, key, key); task.File = pcsFile.File; this.DTasks[key] = task; } // this.DFiles[key] = pcsFile; this.DTypes[key] = fileType; } } return(true); }); }