Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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);
            });
        }