我们的软件可以很方便的与表格一起使用。但脚本编程为您提供了惊人的灵活性,这可能是其他任何方式都无法实现的。
调试器
最重要的新特性-适用于 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)),这可能会导致你的行包含:POINT17,如果j是17。
新的命令“terminate”允许您终止脚本执行,甚至终止程序,后者可能会延迟到执行完成(包括生成图形)。你也可以发送错误代码,例如,通过调用软件的批处理作业来检查。
还有一个新的命令行参数/e,允许您直接执行脚本(不需要手动干预)。因此,你可以以一种自动化的方式调用软件,这样它就可以执行一个脚本,例如,从一个准备好的文件中处理一些数据,将结果写入另一个文件,并在完成时终止。
一个用户使用这个功能为他的日本同事制作精美的定制表单。
字符映射表
这在之前简单提到过:编辑菜单现在包含项目“字符映射”。这样,您就可以选择某些类型的字符,然后选择要插入到脚本中的特殊字符。由于引入了完整的Unicode编码,现在基本上可以在脚本中插入任何字符,比如中文或日文字符。
相关文章可在仿真秀搜索:
在RP Fiber Power 中建模多级放大器
RP Fiber Power 掺铒光纤放大器的双诱导淬灭建模
RP Resonator 如何处理模拟中的热透镜效应
RP Fiber Power 超短脉冲的数值表示
RP 系列 | 命名空间:避免名称冲突的一种好方法
RP Fiber Power 光纤中基于模态或数值光束传播的光场传播
RP Fiber Power 在数值光束传播中创建多模光束
RP Fiber Power 无源光纤之多模光纤
RP Fiber Power 无源光纤之单模光纤
RP Fiber Power 无源光纤之玻璃光纤
RP Fiber Power 无源光纤之光纤模式
RP Fiber Power 新增Numerical Power Package数字工具箱 | 让运算速度快得飞起