本文已参与「新人创作礼」活动,一起开启掘金创作之路。
脚本故障查询
在我们编写康耐视的加拨本的时候,可能会产生一些BUG,有写BUG是语法的原因造成,有些BUG是由于其他原因造成的非语法内错误。这种错误可能是由于数据的传输了这些原因造成的。需要调试才能找到BUG的原因,那么需要怎么样才能调试康耐视的脚本你?
语法类错误
语法类的脚本错误,一般vp会进行相应的提示,比如简单的分隔符忘记了这些;或者定义的变量不存在l
我们只需要将关键字进行修改,就能解决问题;
Line 38, column 65: Error - 未能找到类型或命名空间名称“CogPMAlignToo1l”(是否缺少 using 指令或程序集引用?)
在这里,会提示大家在那一行存在错误。有错误了是没办法进行运行的。
当整体我们点击发行没有报错的时候,我们才可以使用脚本;
未知类错误
当我们发行了脚本后,他也没有错误,也没有报警,但是,程序运行出错。例如:
那这个时候我们检查语法没有问题,逻辑没有出错,怎么办呢?
mToolBlock.Outputs["patCount"].Value = 0;
mToolBlock.Outputs["patZuoBiao"].Value =" 0.00,0.00";
CogPMAlignTool pat = mToolBlock.Tools["CogPMAlig1nTool1"] as CogPMAlignTool;
// Run each tool using the RunTool function
foreach(ICogTool tool in mToolBlock.Tools)
mToolBlock.RunTool(tool, ref message, ref result);
//工具运行结束后,我们需要判断工具是否正常运行
//本文由宋小童创建于2020/05/18
if( pat.RunStatus.Result == CogToolResultConstants.Accept)
{
//模板的个数赋值给输出的个数
mToolBlock.Outputs["patCount"].Value = pat.Results.Count;
//模板的第二个坐标的值赋给我们的输出;
mToolBlock.Outputs["patZuoBiao"].Value = pat.Results[1].GetPose().TranslationX.ToString("0.00") + "," + pat.Results[1].GetPose().TranslationY.ToString("0.00");
}
else
{
mToolBlock.Outputs["patCount"].Value = "error";
mToolBlock.Outputs["patZuoBiao"].Value = "工具运行失败";
}
语法没有问题,逻辑判断也没有问题。
这个时候我们就需要将这个脚本带入到我们的VS中去运行。
具体操作如下》:
- 将这一行的代码的注释去掉,;
2. 打开VS,点击调试,然后选择附加到进程;
3. 在里面找到我们的脚本
4. 运行你的VPP程序,将脚本 “发行”改为“调试 ***
5. 程序进入VS调试中,开始单步运行;
发现我们定义的pat为null
仔细一看,我们工具的名字写错了,多了一个1
我们在脚本中进行更改,将调试再改回来。代码注释掉。运行
我们成工的修改掉了BUG
以上就是我们本次所讲类容。