热度 20
2011-5-11 14:31
1346 次阅读|
0 个评论
流行的 脚本语言 包括 Perl 、 Python 、 VBScript 和 JavaScript 。 Lua 脚本语言特别适于嵌入式应用,因为它比多数其它脚本语言运行速度更快并采用占代码空间非常小的库实现。 吉时利 选择 Lua 用于支持测试脚本处理器( TSP )的仪器系列。 当测试测量仪器增加了脚本支持时,最困难的选择是什么呢?对拉,是如何向用户介绍脚本! 这种困难包括需要回答的一些难题,例如: “ 如何集成仪器指令集和脚本环境? ”“ 用户如何将脚本载入仪器中? ” 吉时利选择将脚本环境和指令集完全集成,这意味着所有仪器指令都是完全合法的 Lua 语句。基本上,送到仪器上的每条指令消息都作为 Lua 程序执行。 这种选择使用户很容易地从使用单条指令控制仪器过渡到使用脚本控制仪器,因为不需要学习整个新指令集。与脚本中使用的命令相同,指令可以通过 GPIB 或 LXI 接口发送到仪器。这极大地简化了从基于指令的简单控制到基于脚本的控制的过渡过程。用户能简单地发送较大的脚本而不是单独的指令到仪器。 下面我们用代码来举例说明一下: 案例分析 这种选择的缺点是仪器指令可能对于第一次使用的用户有点陌生。举一些例子有助于说明这一缺点。这些例子比较了吉时利 2400 型源表 (基于 SCPI 的单元)和 吉时利 2602 型 双通道数字源表(基于 TSP 的单元)。 让 2400 的源输出电流的指令是: ::SOUR:FUNC CURR 2602 对应的指令是: smua.source.func = smua.DC_AMPS smua 前缀指定双通道仪器 2602 的通道 A 。除了等号外,其余的指令类似于 SCPI 指令。这是 Lua 的赋值运算,将 mua.source.func 属性设为 smua.DC_AMPS 的值。 查询指令有一些陌生。因为指令是有效的 Lua 语句,所以使用 print 函数产生输出。 SCPI 查询返回到 2400 的源函数是: :SOUR:FUNC? 2602 对应的指令是: print(smua.source.func) 正如 SCPI 仪器通过分号分隔单独指令以支持复合指令,基于脚本的仪器也能通过语句分隔符分隔指令以支持复合指令。在 Lua 中,语句分隔符是空白字符。 假设我们的仪器已经配置为电压源。对于 2400 ,以下指令消息将设置输出电平,然后打开输出: :SOUR:VOLT 1.0; :OUTP 1 对于 2602 ,相应指令消息是: smua.source.levelv = 1.0 smua.source.output = 1 上述例子说明脚本仪器可以表现得与传统设备非常类似。仅指令语法稍;有改变。为了利用脚本引擎的全部能力,用户只用发送消息来使用脚本语言功能。