public ProcessValidateProcessListFile()
        {
            base.SetName("ValidateProcessListFile");
            base.SetTitle("验证地理空间列表文件格式");
            base.Abstract = "验证地理空间列表文件格式";

            ParaItem[] inputs = new ParaItem[4];
            ParaItem item = new ParaItem("ProcessListFile", "String", "地理空间处理列表文件", false, "");
            inputs[0] = item;
            item = new ParaItem("ProcessDescriptionsValidateFile", "String", "地理空间处理列表验证文件", false, "");
            inputs[1] = item;
            item = new ParaItem("GroupValidateFile", "String", "地理空间处理分组验证文件", false, "");
            inputs[2] = item;
            item = new ParaItem("ProcessDescriptionValidateFile", "String", "地理空间处理验证文件", false, "");
            inputs[3] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[2];
            item = new ParaItem("ProcessListFile", "String");
            item.Title = "地理空间处理列表文件";
            outputs[0] = item;

            item = new ParaItem("ValidationInfo", "String");
            item.Title = "验证结果";
            outputs[1] = item;
            base.SetOutputParameters(outputs);
        }
        public ProcessValidateModelFileWithProcessList()
        {
            base.SetName("ValidateModelFileWithProcessList");
            base.SetTitle("使用地理空间列表验证模型文件格式");
            base.Abstract = "验证模型文件格式,察看模型中的地理空间处理是否在地理空间列表中,是否有效";

            ParaItem[] inputs = new ParaItem[2];
            ParaItem item = new ParaItem("ModelFile", "String", "模型文件", false, "");
            inputs[0] = item;
            item = new ParaItem("ProcessListFile", "String", "地理空间处理列表文件", false, "");
            inputs[1] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[3];
            item = new ParaItem("ModelFile", "String");
            item.Title = "模型文件";
            outputs[0] = item;

            item = new ParaItem("ProcessListFile", "String");
            item.Title = "地理空间处理列表文件";
            outputs[1] = item;

            item = new ParaItem("ValidationInfo", "String");
            item.Title = "验证结果";
            outputs[2] = item;
            base.SetOutputParameters(outputs);
        }
        public ProcessRunModel()
        {
            base.SetName("RunModel");
            base.SetTitle("运行模型");
            base.Abstract = "解析模型文件,设置参数,运行模型";

            ParaItem[] inputs = new ParaItem[2];
            ParaItem item = new ParaItem("ModelFile", "String", "模型文件", false, "");
            inputs[0] = item;
            item = new ParaItem("ParaSet", "ParameterSet", "参数", false, "");
            inputs[1] = item;
            base.SetInputParameters(inputs);
        }
        public ProcessSettingModelParameter()
        {
            base.SetName("SettingModelParameter");
            base.SetTitle("输入模型参数");
            base.Abstract = "弹出参数设置对话框,由用户输入参数";

            ParaItem[] inputs = new ParaItem[1];
            ParaItem item = new ParaItem("Paras", "ParaItem[]", "参数", false, "");
            inputs[0] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[1];
            item = new ParaItem("ParaSet", "ParameterSet");
            item.Title = "参数";
            outputs[0] = item;
            base.SetOutputParameters(outputs);
        }
Esempio n. 5
0
        public ProcessSettingModelParameter()
        {
            base.SetName("SettingModelParameter");
            base.SetTitle("输入模型参数");
            base.Abstract = "弹出参数设置对话框,由用户输入参数";

            ParaItem[] inputs = new ParaItem[1];
            ParaItem   item   = new ParaItem("Paras", "ParaItem[]", "参数", false, "");

            inputs[0] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[1];
            item       = new ParaItem("ParaSet", "ParameterSet");
            item.Title = "参数";
            outputs[0] = item;
            base.SetOutputParameters(outputs);
        }
        public ProcessExtractModelParameter()
        {
            base.SetName("ExtractModelParameter");
            base.SetTitle("提取模型参数");
            base.Abstract = "遍历模型文件,从中提取没有进行设置值的参数,做为模型参数";

            ParaItem[] inputs = new ParaItem[1];
            ParaItem item = new ParaItem("ModelFile", "String", "模型文件", false, "");
            inputs[0] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[2];
            item = new ParaItem("ModelFile", "String");
            item.Title = "模型文件";
            outputs[0] = item;

            item = new ParaItem("ModelParameter", "ParaItem[]");
            item.Title = "模型参数";
            outputs[1] = item;
            base.SetOutputParameters(outputs);
        }
Esempio n. 7
0
        public ProcessExtractModelParameter()
        {
            base.SetName("ExtractModelParameter");
            base.SetTitle("提取模型参数");
            base.Abstract = "遍历模型文件,从中提取没有进行设置值的参数,做为模型参数";

            ParaItem[] inputs = new ParaItem[1];
            ParaItem   item   = new ParaItem("ModelFile", "String", "模型文件", false, "");

            inputs[0] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[2];
            item       = new ParaItem("ModelFile", "String");
            item.Title = "模型文件";
            outputs[0] = item;

            item       = new ParaItem("ModelParameter", "ParaItem[]");
            item.Title = "模型参数";
            outputs[1] = item;
            base.SetOutputParameters(outputs);
        }
        public ProcessValidateModelFile()
        {
            base.SetName("ValidateModelFile");
            base.SetTitle("验证模型文件格式");
            base.Abstract = "验证模型文件格式,可以输入多个文件进行验证";

            ParaItem[] inputs = new ParaItem[2];
            ParaItem item = new ParaItem("FileArray", "String[]", "模型文件", false, "");
            inputs[0] = item;
            item = new ParaItem("ValidateFile", "String","模型文件",false,"");
            inputs[1] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[2];
            item = new ParaItem("FileArray", "String[]");
            item.Title = "模型文件";
            outputs[0] = item;

            item = new ParaItem("ValidationInfo", "String");
            item.Title = "验证结果";
            outputs[1] = item;
            base.SetOutputParameters(outputs);
        }
Esempio n. 9
0
        public ProcessValidateModelFile()
        {
            base.SetName("ValidateModelFile");
            base.SetTitle("验证模型文件格式");
            base.Abstract = "验证模型文件格式,可以输入多个文件进行验证";

            ParaItem[] inputs = new ParaItem[2];
            ParaItem   item   = new ParaItem("FileArray", "String[]", "模型文件", false, "");

            inputs[0] = item;
            item      = new ParaItem("ValidateFile", "String", "模型文件", false, "");
            inputs[1] = item;
            base.SetInputParameters(inputs);

            ParaItem[] outputs = new ParaItem[2];
            item       = new ParaItem("FileArray", "String[]");
            item.Title = "模型文件";
            outputs[0] = item;

            item       = new ParaItem("ValidationInfo", "String");
            item.Title = "验证结果";
            outputs[1] = item;
            base.SetOutputParameters(outputs);
        }
Esempio n. 10
0
        protected override Boolean Run(XmlElement state)
        {
            try
            {
                if (!this.IsReady())
                {
                    return(false);
                }
                PopInputValue();

                String strModelFile = this.GetInputValue("ModelFile") as String;
                if (!System.IO.File.Exists(strModelFile))
                {
                    return(false);
                }
                IProcessListParser processList = InstanceManager.Instance.ProcessListParser;
                if (null == processList)
                {
                    return(false);
                }

                XmlDocument doc = new XmlDocument();
                doc.Load(strModelFile);
                XmlElement               root   = doc.DocumentElement;
                ParaItem                 para   = null;
                XmlAttribute             attri  = null;
                ProcessDefineDescription pdd    = null;
                ParaItem[]               inputs = null;
                ParaItem                 pid    = null;
                foreach (XmlNode node in root.GetElementsByTagName("operation"))
                {
                    pdd = processList.GetProcess(node.Attributes["name"].Value);
                    if (null == pdd)
                    {
                        continue;
                    }
                    inputs = pdd.Inputs;
                    foreach (XmlNode item in node.SelectSingleNode("inputs").ChildNodes)
                    {
                        if (String.IsNullOrEmpty(item.Attributes["variable"].Value))
                        {
                            para = new ParaItem(node.Attributes["name"].Value + "." + node.Attributes["id"].Value + "." + item.Attributes["name"].Value, item.Attributes["type"].Value);
                            pid  = FindPara(inputs, item.Attributes["name"].Value);
                            if (null != pid)
                            {
                                para.Abstract = pid.Abstract;
                                para.UIType   = pid.UIType;
                                para.Option   = pid.Option;
                                para.Title    = pid.Title;
                            }
                            attri = item.Attributes["title"];
                            if (null != attri)
                            {
                                para.Title = attri.Value;
                            }
                            _parameters.Add(para);
                        }
                    }
                }

                PushOutputValue();
                return(true);
            }
            catch (Exception ex)
            {
                IRunningLogger logger = InstanceManager.Instance.Context.GetVariable("RunningLogger") as IRunningLogger;
                if (null != logger)
                {
                    logger.Error("sample.ProcessValidateModelFile", ex.Message);
                }
            }
            finally
            {
            }

            return(false);
        }
        private ParaItem FindPara(ParaItem[] items, String name)
        {
            if (null == items || String.IsNullOrEmpty(name))
            {
                return null;
            }
            else
            {
                foreach (ParaItem item in items)
                {
                    if (String.Compare(item.Name, name, true) == 0)
                    {
                        return item;
                    }
                }
            }

            return null;
        }
        protected override Boolean Run(XmlElement state)
        {
            try
            {
                if (!this.IsReady())
                {
                    return false;
                }
                PopInputValue();

                String strModelFile = this.GetInputValue("ModelFile") as String;
                if (!System.IO.File.Exists(strModelFile))
                {
                    return false;
                }
                IProcessListParser processList = InstanceManager.Instance.ProcessListParser;
                if (null == processList)
                {
                    return false;
                }

                XmlDocument doc = new XmlDocument();
                doc.Load(strModelFile);
                XmlElement root = doc.DocumentElement;
                ParaItem para = null;
                XmlAttribute attri = null;
                ProcessDefineDescription pdd = null;
                ParaItem[] inputs = null;
                ParaItem pid = null;
                foreach (XmlNode node in root.GetElementsByTagName("operation"))
                {
                    pdd = processList.GetProcess(node.Attributes["name"].Value);
                    if (null == pdd)
                    {
                        continue;
                    }
                    inputs =  pdd.Inputs;
                    foreach (XmlNode item in node.SelectSingleNode("inputs").ChildNodes)
                    {
                        if (String.IsNullOrEmpty(item.Attributes["variable"].Value))
                        {
                            para = new ParaItem(node.Attributes["name"].Value + "." + node.Attributes["id"].Value + "." + item.Attributes["name"].Value, item.Attributes["type"].Value);
                            pid = FindPara(inputs, item.Attributes["name"].Value);
                            if (null != pid)
                            {
                                para.Abstract = pid.Abstract;
                                para.UIType = pid.UIType;
                                para.Option = pid.Option;
                                para.Title = pid.Title;
                            }
                            attri = item.Attributes["title"];
                            if (null != attri)
                            {
                                para.Title = attri.Value;
                            }
                            _parameters.Add(para);
                        }
                    }
                }

                PushOutputValue();
                return true;
            }
             catch (Exception ex)
             {
                 IRunningLogger logger = InstanceManager.Instance.Context.GetVariable("RunningLogger") as IRunningLogger;
                 if (null != logger)
                 {
                     logger.Error("sample.ProcessValidateModelFile", ex.Message);
                 }
             }
             finally
             {

             }

             return false;
        }
Esempio n. 13
0
        protected override Boolean Run(XmlElement state)
        {
            XmlReader xmlRead = null;

            try
            {
                if (!this.IsReady())
                {
                    return(false);
                }
                PopInputValue();

                String strModelFile = this.GetInputValue("ModelFile") as String;
                if (!System.IO.File.Exists(strModelFile))
                {
                    return(false);
                }
                String strProcessListFile = this.GetInputValue("ProcessListFile") as String;
                if (!System.IO.File.Exists(strProcessListFile))
                {
                    return(false);
                }

                IProcessListParser processListParser = InstanceManager.Instance.ProcessListParser;
                if (null == processListParser)
                {
                    return(false);
                }

                XmlDocument doc = new XmlDocument();
                doc.Load(strModelFile);
                XmlElement rootModelFile = doc.DocumentElement;
                doc.Load(strProcessListFile);
                XmlElement rootProcessListFile = doc.DocumentElement;

                ProcessDefineDescription pdd = null;
                String   strProcessName      = String.Empty;
                String   strParaName         = String.Empty;
                ParaItem para        = null;
                String   strParaType = String.Empty;
                foreach (XmlNode node in rootModelFile.GetElementsByTagName("operation"))
                {
                    strProcessName = node.Attributes["name"].Value;
                    pdd            = processListParser.GetProcess(strProcessName);
                    if (null == pdd)
                    {
                        _strValidationInfo += strProcessName + "不存在;";
                        continue;
                    }

                    ParaItem[] inputs = pdd.Inputs;
                    foreach (XmlNode nodeInput in node.SelectSingleNode("inputs").SelectNodes("input"))
                    {
                        strParaName = nodeInput.Attributes["name"].Value;
                        para        = FindPara(inputs, strParaName);
                        if (null == para)
                        {
                            _strValidationInfo += strProcessName + "的参数\"" + strParaName + "\"不正确;";
                        }
                        strParaType = nodeInput.Attributes["type"].Value;
                        if (String.Compare(strParaType, para.DataType, true) != 0)
                        {
                            _strValidationInfo += strProcessName + "的参数\"" + strParaName + "\"的类型不正确;";
                        }
                    }
                }

                PushOutputValue();
                return(true);
            }
            catch (Exception ex)
            {
                IRunningLogger logger = InstanceManager.Instance.Context.GetVariable("RunningLogger") as IRunningLogger;
                if (null != logger)
                {
                    logger.Error("sample.ProcessValidateModelFile", ex.Message);
                }
            }
            finally
            {
                if (null != xmlRead)
                {
                    xmlRead.Close();
                }
            }

            return(false);
        }
Esempio n. 14
0
        private static void CreateIniParaFile()
        {
            #region create config file
            //DIO
            DIOItem a1 = new DIOItem();
            a1.DI         = new DINum[1];
            a1.DI[0]      = new DINum();
            a1.DI[0].No   = 10001;
            a1.DI[0].Name = "1#吸嘴真空已开";

            a1.DO         = new DONum[1];
            a1.DO[0]      = new DONum();
            a1.DO[0].No   = 10002;
            a1.DO[0].Name = "1#吸嘴开真空";
            XmlSerialization.SerializeObjectToFile(a1, lstDIOFile[0]);

            //Para
            ParaItem a2 = new ParaItem();
            a2.ParaSet             = new Para[2];
            a2.ParaSet[0]          = new Para();
            a2.ParaSet[0].Name     = "PickOffset";
            a2.ParaSet[0].Desc     = "1#吸嘴取料偏差";
            a2.ParaSet[0].Option   = false;
            a2.ParaSet[0].Select   = "";
            a2.ParaSet[0].Value    = "0.5";
            a2.ParaSet[0].MinValue = "-0.5";
            a2.ParaSet[0].MaxValue = "0.5";

            a2.ParaSet[1].Name     = "VisionName";
            a2.ParaSet[1].Desc     = "顶部相机图像场景";
            a2.ParaSet[1].Option   = true;
            a2.ParaSet[1].Select   = "Prd1,Prd2,Prd3";
            a2.ParaSet[1].Value    = "Prd1";
            a2.ParaSet[1].MinValue = "";
            a2.ParaSet[1].MaxValue = "";
            XmlSerialization.SerializeObjectToFile(a2, lstParaFile[0]);

            //ErrMsg
            ErrMsgItem a3 = new ErrMsgItem();
            a3.ErrCode         = new ErrMsg[1];
            a3.ErrCode[0]      = new ErrMsg();
            a3.ErrCode[0].Code = 2000;
            a3.ErrCode[0].Msg  = "1#吸嘴真空检测超时";
            XmlSerialization.SerializeObjectToFile(a3, lstErrMsgFile[0]);


            //Point
            PointItem a4 = new PointItem();
            a4.Location           = new Point[1];
            a4.Location[0]        = new Point();
            a4.Location[0].Name   = "SafePoint";
            a4.Location[0].X      = 1;
            a4.Location[0].Y      = 2;
            a4.Location[0].Z      = 2;
            a4.Location[0].Yaw    = 2;
            a4.Location[0].Pitch  = 2;
            a4.Location[0].Roll   = 2;
            a4.Location[0].Config = 2;
            XmlSerialization.SerializeObjectToFile(a4, lstPointFile[0]);

            //Profile
            ProfileItem a5 = new ProfileItem();
            a5.MoveProfile             = new Profile[1];
            a5.MoveProfile[0]          = new Profile();
            a5.MoveProfile[0].Name     = "QuickProfile";
            a5.MoveProfile[0].Acc      = 1;
            a5.MoveProfile[0].AccR     = 2;
            a5.MoveProfile[0].Dec      = 2;
            a5.MoveProfile[0].DecR     = 2;
            a5.MoveProfile[0].Speed    = 2;
            a5.MoveProfile[0].Speed2   = 2;
            a5.MoveProfile[0].InRange  = 2;
            a5.MoveProfile[0].Straight = false;
            XmlSerialization.SerializeObjectToFile(a5, lstProfileFile[0]);


            //PLC
            RegItem a6 = new RegItem();
            a6.PLCReg         = new RegNum[1];
            a6.PLCReg[0]      = new RegNum();
            a6.PLCReg[0].No   = "M1";
            a6.PLCReg[0].Name = "PLC 可以取料";
            XmlSerialization.SerializeObjectToFile(a6, lstPlcRegFile[0]);
            #endregion
        }