编译测试协议的python脚本
ctp的Python项目详细描述
CTP
用于将协议文件编译为二进制文件的脚本,该二进制文件可上载到组件测试仪的SD卡。这是因为手工编译每个
协议很快就会变得乏味,特别是对于较长的协议,很容易出错。因此,我制作了一个python脚本来自动执行该过程。
c ompilation已成功,但未生成输出文件
-c—从stdin读取代码,而不是文件
协议语法
==/>每个命令必须在单独的行上。跳过以``开头的行和仅由空格组成的行
。大小写(甚至像这样的混合大小写)
无关紧要。
协议将运行,直到"check"命令发现pin状态与指定的不匹配。如果发生这种情况,则组件未通过测试。
如果协议运行无误,则组件已通过测试。
‘管脚…’应用作正电压源。
有效管脚值为:5、14、15、16。
gnd-gnd<;pins…>;
指定"pins…"应作为接地。
有效pin值为:8,12。
delay
delay<;time>;
>将进一步执行延迟"time"毫秒(ms)。
*注意*:如果需要延迟大于65535ms,则需要延迟大于65535ms,则需要延迟65535ms,如果需要延迟大于65535ms,则需要将进一步执行延迟延迟"time"毫秒(ms)。
*注意*:如果需要延迟大于65535ms的延迟大于65535ms,则需要延迟65535ms,则需要延迟65535ms它必须分成
多个"延迟"调用。
set
set(<;value>;<;pins…>;)…
将"pins…"设置为"value"指定的值。
"value"是"on"或"off"(不带qoutation标记)。
"管脚…"是由空格分隔的管脚编号列表(介于1和16之间)。
任何未给定值的管脚将保持其当前状态
(无论是"开"还是"关")。此外,"rest"关键字可用于指定尚未给定值的任何管脚。但是请注意,不能在"rest"关键字之后指定pins,但*不*必须在"rest"之前指定pins。
其余管脚将保持其
当前状态(`on`或`off`)。
set on 12 off 3
这将管脚1和2设置为on,管脚3设置为`off`。其余管脚将
保持其当前状态("开"或"关"。
set on 1 2 off rest
此操作将管脚1和2设置为"开",所有其他管脚设置为"关"。
set on rest
此操作将每个管脚设置为"开",因为在"rest"之前未指定管脚。
check
check(<;value>;<;pins…>;)…
检查"pins…"是否具有由"value"指定的值。
"value"是"on"或"off"(不带qoutation标记)。
"pins…"是由空格分隔的管脚号列表(介于1和16之间)。
"check"的调用方式是si与"set"类似,只是必须为所有管脚指定
值。但是,仍然可以使用"rest"关键字来表示每个未给定值的管脚。
*注意*:如果管脚以前通过调用"vin"或"set"设置为"on",则"check"将假定该管脚应为"on",而不管
参数。
插脚是"关"的。
--------------------------------------------------------
以下程序将使用插脚16作为车辆识别号,插脚8作为接地。它将
然后将插脚1和2设置为"开",并检查插脚3是否为"开",而其他所有
(插脚16除外,因为这是车辆识别号,插脚1和2是因为我们之前将这些
设置为"开")是否为"关"。
gnd 8
vin 16
设置为1 2
检查3关休息
以下程序将使用插脚16作为车辆识别号,插脚8和12作为接地。
然后将插脚2设置为"开",等待2秒钟,然后再次将其设置为"关"。然后检查所有针脚(针脚16除外,因为这是车辆识别号)是否"关闭":
gnd 8 12
vin 16
设置为2
延迟2000
设置为2
检查休息
用于将协议文件编译为二进制文件的脚本,该二进制文件可上载到组件测试仪的SD卡。这是因为手工编译每个
协议很快就会变得乏味,特别是对于较长的协议,很容易出错。因此,我制作了一个python脚本来自动执行该过程。
c ompilation已成功,但未生成输出文件
-c—从stdin读取代码,而不是文件
协议语法
==/>每个命令必须在单独的行上。跳过以``开头的行和仅由空格组成的行
。大小写(甚至像这样的混合大小写)
无关紧要。
协议将运行,直到"check"命令发现pin状态与指定的不匹配。如果发生这种情况,则组件未通过测试。
如果协议运行无误,则组件已通过测试。
‘管脚…’应用作正电压源。
有效管脚值为:5、14、15、16。
gnd-gnd<;pins…>;
指定"pins…"应作为接地。
有效pin值为:8,12。
delay
delay<;time>;
>将进一步执行延迟"time"毫秒(ms)。
*注意*:如果需要延迟大于65535ms,则需要延迟大于65535ms,则需要延迟65535ms,如果需要延迟大于65535ms,则需要将进一步执行延迟延迟"time"毫秒(ms)。
*注意*:如果需要延迟大于65535ms的延迟大于65535ms,则需要延迟65535ms,则需要延迟65535ms它必须分成
多个"延迟"调用。
set
set(<;value>;<;pins…>;)…
将"pins…"设置为"value"指定的值。
"value"是"on"或"off"(不带qoutation标记)。
"管脚…"是由空格分隔的管脚编号列表(介于1和16之间)。
任何未给定值的管脚将保持其当前状态
(无论是"开"还是"关")。此外,"rest"关键字可用于指定尚未给定值的任何管脚。但是请注意,不能在"rest"关键字之后指定pins,但*不*必须在"rest"之前指定pins。
其余管脚将保持其
当前状态(`on`或`off`)。
set on 12 off 3
这将管脚1和2设置为on,管脚3设置为`off`。其余管脚将
保持其当前状态("开"或"关"。
set on 1 2 off rest
此操作将管脚1和2设置为"开",所有其他管脚设置为"关"。
set on rest
此操作将每个管脚设置为"开",因为在"rest"之前未指定管脚。
check
check(<;value>;<;pins…>;)…
检查"pins…"是否具有由"value"指定的值。
"value"是"on"或"off"(不带qoutation标记)。
"pins…"是由空格分隔的管脚号列表(介于1和16之间)。
"check"的调用方式是si与"set"类似,只是必须为所有管脚指定
值。但是,仍然可以使用"rest"关键字来表示每个未给定值的管脚。
*注意*:如果管脚以前通过调用"vin"或"set"设置为"on",则"check"将假定该管脚应为"on",而不管
参数。
插脚是"关"的。
--------------------------------------------------------
以下程序将使用插脚16作为车辆识别号,插脚8作为接地。它将
然后将插脚1和2设置为"开",并检查插脚3是否为"开",而其他所有
(插脚16除外,因为这是车辆识别号,插脚1和2是因为我们之前将这些
设置为"开")是否为"关"。
gnd 8
vin 16
设置为1 2
检查3关休息
以下程序将使用插脚16作为车辆识别号,插脚8和12作为接地。
然后将插脚2设置为"开",等待2秒钟,然后再次将其设置为"关"。然后检查所有针脚(针脚16除外,因为这是车辆识别号)是否"关闭":
gnd 8 12
vin 16
设置为2
延迟2000
设置为2
检查休息