脚本故障查询

在我们编写康耐视的加拨本的时候,可能会产生一些BUG,有写BUG是语法的原因造成,有些BUG是由于其他原因造成的非语法内错误。这种错误可能是由于数据的传输了这些原因造成的。需要调试才能找到BUG的原因,那么需要怎么样才能调试康耐视的脚本你?

语法类错误

脚本对接prometheus_脚本对接prometheus

语法类的脚本错误,一般vp会进行相应的提示,比如简单的分隔符忘记了这些;或者定义的变量不存在l

脚本对接prometheus_正常运行_02

我们只需要将关键字进行修改,就能解决问题;

Line 38, column 65: Error - 未能找到类型或命名空间名称“CogPMAlignToo1l”(是否缺少 using 指令或程序集引用?) 在这里,会提示大家在那一行存在错误。有错误了是没办法进行运行的。

脚本对接prometheus_Line_03

当整体我们点击发行没有报错的时候,我们才可以使用脚本;

未知类错误

当我们发行了脚本后,他也没有错误,也没有报警,但是,程序运行出错。例如:

脚本对接prometheus_Line_04

脚本对接prometheus_Line_05

那这个时候我们检查语法没有问题,逻辑没有出错,怎么办呢?

```js 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中去运行。 具体操作如下》: 1. 将这一行的代码的注释去掉,;

脚本对接prometheus_正常运行_06

2. 打开VS,点击调试,然后选择附加到进程;

脚本对接prometheus_赋值_07

3. 在里面找到我们的脚本

脚本对接prometheus_正常运行_08

4. 运行你的VPP程序,将脚本 “发行”改为“调试 * 5. 程序进入VS调试中,开始单步运行; 发现我们定义的pat为null

脚本对接prometheus_正常运行_09

仔细一看,我们工具的名字写错了,多了一个1

脚本对接prometheus_正常运行_10

我们在脚本中进行更改,将调试再改回来。代码注释掉。运行

脚本对接prometheus_赋值_11

我们成工的修改掉了BUG 以上就是我们本次所讲类容。