Exemplo n.º 1
0
        //-- PRM Parsing
        public List <RecipeConfigKnsPrm> KNSParaPARSE(string sDirPath, string recipeName)
        {
            //string BODY_MGR_CODE = DateTime.Now.ToString("yyyyMMddHHmmss") + SequenceGeneratorGlobal.GetInstance().Next().ToString("0000");
            //string sDirPath = string.Empty;
            System.IO.DirectoryInfo DI = null;
            string fileExtension       = string.Empty;
            string fileRead            = string.Empty;
            string fileName            = string.Empty;
            string groupid             = string.Empty;
            string wireMaster          = string.Empty;
            string masterxValue        = string.Empty;
            string masteryValue        = string.Empty;
            string masteryUnit         = string.Empty;
            string units = string.Empty;

            string[] fileSplit;

            RecipeConfigKnsPrm recipeConfig = null;

            ArrayList REFList     = new ArrayList();
            ArrayList groupIdList = new ArrayList();
            List <RecipeConfigKnsPrm> RecipeParaList = new List <RecipeConfigKnsPrm>();
            ArrayList RecipeWireList = new ArrayList();

            #region
            //-- 1. 이름변경 'Recipename.tgz', 2. TGZ 압축해제(untgz_RECIPENAME)

            //DI = new System.IO.DirectoryInfo(filePath);
            //string tgzFileName = filePath + recipeName + ".tgz";
            //foreach (var item in DI.GetFiles())
            //{
            //    if (item.Name.Equals(recipeName))
            //    {
            //        System.IO.File.Copy(filePath + recipeName, tgzFileName, true);
            //        break;
            //    }
            //}

            //sDirPath = filePath + "untgz_" + recipeName + "\\";
            //DI = new DirectoryInfo(sDirPath);
            //if (DI.Exists == false)
            //{
            //    DI.Create();
            //}
            //FIleCompact.UnTgz(tgzFileName, sDirPath);

            //            Directory.Delete(tgzFileName, true);

            //fileExtension = string.Empty;
            //-- 3. Parameter(.PRM) Group ID = .WIR


            //DI = null;
            #endregion
            DI = new System.IO.DirectoryInfo(sDirPath);

            foreach (var item in DI.GetFiles())
            {
                if (item.Extension == ".WIR")
                //if (item.Extension == ".PHY")
                {
                    try
                    {
                        fileSplit     = null;
                        groupIdList   = new ArrayList();
                        fileExtension = item.Name;
                        fileRead      = File.ReadAllText(sDirPath + fileExtension);
                        fileSplit     = fileRead.Replace("\r", "").Split('\n');
                        for (int i = 0; i < fileSplit.Length; i++)
                        {
                            if (fileSplit[i].Contains(".PRM"))
                            {
                                string[] groupIdSplit = fileSplit[i].Split(' ');
                                if (groupIdSplit[0].Equals("group") && groupIdSplit[1].Contains(".PRM"))
                                {
                                    groupIdList.Add(groupIdSplit[0] + groupIdSplit[3] + ":" + groupIdSplit[1]);
                                }
                            }
                        }
                        fileRead  = null;
                        fileSplit = null;
                    }
                    catch (Exception ex)
                    {
                        fileRead  = null;
                        fileSplit = null;
                    }
                }
            }

            for (int i = 0; i < groupIdList.Count; i++)
            //Get parameter
            {
                fileSplit = groupIdList[i].ToString().Split(':');
                fileName  = fileSplit[1];
                groupid   = fileSplit[0];
                try
                {
                    fileRead  = File.ReadAllText(sDirPath + fileSplit[1]);
                    fileSplit = fileRead.Split('\n');
                    for (int j = 15; j < fileSplit.Length; j++)
                    {
                        recipeConfig           = new RecipeConfigKnsPrm();
                        recipeConfig.FILE_NAME = fileName;
                        recipeConfig.GROUP_ID  = groupid;
                        recipeConfig.WB_TYPE   = "P";
                        if (fileSplit[j].Contains("="))
                        {
                            string[]      paraSplit       = fileSplit[j].ToString().Replace(" ", ",").Split(',');
                            List <string> paraRefactoring = new List <string>();
                            //paraRefactoring.Add(group_id);
                            foreach (string str in paraSplit)
                            {
                                if (!string.IsNullOrEmpty(str) && !str.Equals("="))
                                {
                                    paraRefactoring.Add(str);
                                }
                            }
                            //# symbol          = value    units    sys_type  parm_type    class   min     max     default
                            //recipeConfig.ITEM_ID = paraRefactoring[0];
                            //recipeConfig.PARA_VALUE = paraRefactoring[1];

                            //recipeConfig.PARA_MIN = paraRefactoring[6];
                            //recipeConfig.PARA_MAX = paraRefactoring[7];
                            //recipeConfig.PARA_DEF = paraRefactoring[8];

                            recipeConfig.ITEM_ID    = paraRefactoring[0];
                            recipeConfig.PARA_VALUE = paraRefactoring[1];

                            if (paraRefactoring[2].Equals("no_units"))
                            {
                                recipeConfig.ITEM_UNIT = "";
                            }
                            else
                            {
                                recipeConfig.ITEM_UNIT = paraRefactoring[2];
                            }

                            recipeConfig.PARA_sys_type   = paraRefactoring[3];
                            recipeConfig.PARA_param_type = paraRefactoring[4];
                            recipeConfig.PARA_CLASS      = paraRefactoring[5];
                            recipeConfig.PARA_MIN        = paraRefactoring[6];
                            recipeConfig.PARA_MAX        = paraRefactoring[7];
                            recipeConfig.PARA_DEF        = paraRefactoring[8];

                            RecipeParaList.Add(recipeConfig);
                        }
                    }
                    fileSplit    = null;
                    fileRead     = null;
                    recipeConfig = null;
                }
                catch (Exception ex)
                {
                    fileSplit    = null;
                    fileRead     = null;
                    recipeConfig = null;
                }
            }
            return(RecipeParaList);
        }
Exemplo n.º 2
0
        private void dataGridViewPara_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            //-- Revision row Data
            if (Global.FilePath.Contains("KNS"))
            {
                int colindex = e.ColumnIndex;
                RecipeConfigKnsPrm revision = Global.KnsParaList[e.RowIndex];


                //-- 범위 검사
                if (e.ColumnIndex == 4)
                {
                    if (Convert.ToInt32(revision.PARA_VALUE) > Convert.ToInt32(revision.PARA_MAX) || Convert.ToInt32(revision.PARA_VALUE) < Convert.ToInt32(revision.PARA_MIN))
                    {
                        MessageBox.Show("out of range.");
                        return;
                    }
                }

                //-- changeKnsParaList 의 중복 검사
                if (Global.changeKnsParaList.Count == 0)
                {
                    Global.changeKnsParaList.Add(revision);
                }
                else
                {
                    List <int> dblIndx = new List <int>();

                    //-- set check list
                    for (int i = 0; i < Global.changeKnsParaList.Count; i++)
                    {
                        string checkGroupItem    = Global.changeKnsParaList[i].GROUP_ID + "/" + Global.changeKnsParaList[i].ITEM_ID;
                        string revisionGroupItem = revision.GROUP_ID + "/" + revision.ITEM_ID;
                        if (checkGroupItem == revisionGroupItem)
                        {
                            dblIndx.Add(i);
                        }
                    }

                    if (dblIndx.Count == 0)
                    {
                        Global.changeKnsParaList.Add(revision);
                    }
                    else
                    {
                        foreach (int removeIndex in dblIndx)
                        {
                            Global.changeKnsParaList.RemoveAt(removeIndex);
                            Global.changeKnsParaList.Add(revision);
                        }
                    }
                    dblIndx = null;
                }
                revision = null;
                //-- Revision flag
                if (Global.changeKnsParaList.Count != 0 || Global.changeKnsWireList.Count != 0)
                {
                    lblStatus.Text = "Revision";
                }
            }
            else if (Global.FilePath.Contains("SKW"))
            {
            }
        }