开门见山,笔者在Amesim中运行了贪吃蛇游戏。
不光有贪吃蛇,还有锻炼记忆力的益智游戏。
难道Amesim真的有隐藏的内置游戏?
答案没有的,上述游戏都是通过python编写的,而为了实现从Amesim的草图界面执行Python文件,需要使用Simulation库的scriptinteractive
(SCRCALL01)模块:
在模块参数中设置好需要运行的脚本文件与解释器。
双击模块或在右键菜单启动即可运行。
需要注意的是scriptinteractive
模块只能通过Amesim的草图界面进行交互,也就是只能在GUI中运行的模型中使用。
由于其本身不会进行任何仿真运算,所以在仿真期间不会产生任何作用。
命令或脚本可通过以下几种方式调用:
- 在参数或仿真模式下双击
scriptinteractive
模块。 - 在仿真开始前和结束后。
- 在参数更改时。
设置参数
scriptinteractive
模块的设置参数包括三个部分:
- 全局设置
- 参数模式设置(Parameter mode)
- 仿真模式设置(Simulation mode)
全局设置
全局设置包括debug mode
、assistant name
、command interpreter
三项。
-
debug mode
用于调试命令,设置为
true
后会开启一个debug窗口,展示命令的执行情况
-
assistant name
此参数定义助手的名称。其显示在组件图标的上下文菜单和“调试”窗口的标题。
-
command interpreter
在此参数中定义命令解释器。它将被添加到您在其他参数中指定的所有命令中,将其设置为
AMEPython
可使用Amesim内置的python解释器。例如,如果想调用python脚本,可以将命令解释器设置为windows的"python.bat"或UNIX/Linux的"python.sh"。
参数模式设置
-
command for open action:
该参数定义了在参数模式下双击组件图标时启动的命令。如果在图标右键菜单中选择 “Launch User command…(启动用户命令…)”,也会执行同样的操作。如果已经定义了命令解释器,则该解释器将自动预置到该命令中。
-
open action is blocking:
该参数定义了之前的命令在执行过程中是否阻塞。如果设置为true,则会出现以下消息框并阻塞,直到命令结束为止:
-
command on parameter change:
这条命令将在每次模型中的参数更改时被调用。该命令始终是阻塞的。
在命令行中可以使用一些关键字,稍后会描述其中的一些关键字。然而,其中有一个关键字是专门针对该参数的:
${changed_param_list}
当该关键字出现在命令行中时,它会被自动替换为一个文件,其中包含当前操作所更改的所有参数的列表。如果该关键字用于其他命令,生成的文件将不包含任何参数。
仿真模式设置
-
command for open action:
同参数模式。
-
open action is blocking:
同参数模式
-
command to call before a simulation:
定义在仿真之前要调用的命令。
-
command to call after a simulation:
该参数定义仿真后调用的命令。即使仿真失败,也会启动此命令。
-
command called after a simulation is blocking:
该参数定义上述命令是否在执行过程中阻塞Amesim。如果设置为true,则会显示消息并阻止 Amesim,直到命令结束
关键字
除了命令行中可以执行的操作外,还可以使用一些关键字:
${circuit_name}
:替换为当前模型的名称。${full_circuit_name}
:替换为包含绝对路径的当前模型名称。${library_node}
:替换为包含SCRCALL01的库的绝对根路径。默认情况下,该值等同于目录。然而,如果您自定义了这个子模型,这将指向您在路径列表中指定的目录,以使自定义子模型可用。${all_param_list}
:此关键字用于将模型的所有参数的xml列表发送给脚本。脚本可以使用这些信息。然而,目前脚本无法通过修改这些信息来更新模型。此关键字将被替换为一个临时文件,该文件包含模型的所有可见参数列表。命令完成后,该文件将被删除。根据模型的大小,生成该文件可能需要很长时间。${changed_param_list}
:此关键字用于将模型中所有更改参数的xml列表发送给脚本。脚本可以使用这些信息。然而,目前脚本无法通过修改这些信息来更新模型。此关键字将被替换为一个临时文件,该文件包含当前更改参数的列表。当参数的值或标题被更改时,参数被视为已更改。命令完成后,该文件将被删除,此关键字仅在“参数更改命令”中有用。
总结
使用scriptinteractive
模块的初衷当然不是用来玩游戏,而是一种定义特定预处理和后处理工具的简便方法,也将外部预处理和后处理工具连接到系统。
具体怎样去使用,就需要大家发挥想象力了。
标签:玩游戏,关键字,Python,命令,Amesim,参数,设置,command From: https://blog.csdn.net/laughzjh/article/details/139492878关注基算仿真公众号并在后台回复:“游戏” 即可获取文中用到的模型源文件。