吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 4390|回复: 0

RP系列 | 强大的调试器和软件新功能

[复制链接]
  • TA的每日心情
    奋斗
    2022-4-11 09:15
  • 签到天数: 38 天

    [LV.5]常住居民I

    542

    主题

    140

    回帖

    6

    积分

    小白

    积分
    6
    发表于 2021-5-31 14:26 | 显示全部楼层 |阅读模式
    我们的软件可以很方便的与表格一起使用。但脚本编程为您提供了惊人的灵活性,这可能是其他任何方式都无法实现的。

    调试器
    最重要的新特性-适用于 RP Fiber Power, RP Resonator, RP Coating and RP ProPulse-新的脚本调试器。
    软件调试器的一般可能是这样,您可以逐步执行任务,并随时检查系统的状态。在我们的案例中,有趣的是一个“步骤”到底应该是什么。简单的解释是,这是一个命令。然而,这被证明是不够的,因为很多复杂的编程可以在表达式级别上完成。在许多情况下,您希望跟踪复杂表达式的求值——包括嵌套循环等——而不仅仅是得到报告的最终结果,例如,当表达式的值被分配给一个变量时,这通常与用户定义的函数有关。
    软件调试器的一般思想可能总是这样,您可以逐步执行任务,并随时检查系统的状态。在我们的案例中,一个有趣的问题是一个“步骤”到底应该是什么。简单的解释是,这是一个命令。因此,我们为两种不同的调试方法实现了特性:
    第一个命令允许您一次执行一个命令。您可以在代码中放置“断点”(“@”符号位于行首),软件将进入调试模式,允许您检查系统并决定下一步要做什么。您还可以通过按Ctrl-B或使用一些新按钮进入调试模式。
    第二个方法提供表达式内部的调试。这里,断点是由新函数debug()的调用定义的。这个概念被证明是更灵活的不仅仅是把某个断点字符代码:您可以很容易地得到条件断点(调用函数只在一定条件下),并计算函数可以提交一个消息,告知你对系统的状态更密切。
    当使用第二种调试方法时,右边的截图显示了检查器工具。

    这个系统确实运行得很好。有许多方便的特性,例如,可以快速计算进一步的步骤,并且只在临时断点处再次停止——例如,在循环后面,您希望避免执行所有的多个循环。

    在我们的网站上,有一个页面有更多关于新的调试器的细节。

    调试器包含在上述软件产品的最新版本中(例如RP Fiber Power V7)。现有用户将很快获得非常公平的升级优惠;与往常一样,我们对此类升级收取的费用只比许可价格的差价高一点(而其他软件公司通常会试图获得全部成本的一半,甚至更多,即使新版本的许可价格仅略微提高)。

    在实现调试器时,现在可以使用脚本代码的额外缩进来提高可读性。

    旧的规则很简单,命令必须从一行的开头开始,后面的缩进行(即,至少以一个空白字符开始)被解释为属于同一个命令。

    然而,事实证明,对于命令级别的编程控制结构(例如循环或if-then-else语句),需要额外缩进内部部分。所以现在允许(并推荐)这样做。下面是一个示例代码,只是为了演示该特性:

    if alpha > 0 then
    begin
      sum := 0
      for j := 1 to N do
        sum := sum + f(j, alpha)
      show "Result: ", sum:d3
    end
    顺便说一下,最近我们决定改变脚本代码的标准格式。一种方法是插入更多的空白字符—例如,在大多数操作符之前和之后。另一个改进是使控制结构的格式现代化。

    例如,instead of
    for j:=1 to N
    do sum:=sum+f(j,alpha)
    I would now write:
    for j := 1 to N do
      sum := sum + f(j, alpha)
    虽然它占用了更多的空间,但它绝对更容易阅读——这当然是最重要的方面,因为我们经常花费大量的时间来阅读代码,试图理解它或定位错误。

    除了新的缩进规则,这些改进实际上不需要对软件进行任何更改,但是需要对现有的演示脚本进行重新格式化,PDF手册的一部分是一个交互式帮助系统,以及web页面。通过软件更新,您将获得重新格式化的演示脚本。

    新的控制结构
    脚本语言已经提供了基本的控制结构:if-then-else、for-do、while-do和repeat-until。然而,我又介绍了两个:

    例如,“goto”语句对于一些“快速修复”很方便,尽管它通常不是if-then的良好替代。一个特殊的特性是跳转目标可以是一个计算字符串;因此,你可以使用goto (" POINT " + str(j)),这可能会导致你的行包含OINT17,如果j是17。
    新的命令“terminate”允许您终止脚本执行,甚至终止程序,后者可能会延迟到执行完成(包括生成图形)。你也可以发送错误代码,例如,通过调用软件的批处理作业来检查。
    还有一个新的命令行参数/e,允许您直接执行脚本(不需要手动干预)。因此,你可以以一种自动化的方式调用软件,这样它就可以执行一个脚本,例如,从一个准备好的文件中处理一些数据,将结果写入另一个文件,并在完成时终止。

    字符映射表
    这在之前简单提到过:编辑菜单现在包含项目“字符映射”。这样,您就可以选择某些类型的字符,然后选择要插入到脚本中的特殊字符。由于引入了完整的Unicode编码,现在基本上可以在脚本中插入任何字符,比如中文或日文字符。



    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2024-11-23 08:09 , Processed in 0.203125 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表