文档

使用脚本自动化仿真万博1manbetx软件项目任务

这个例子展示了如何使用仿真软件项目API自动化项目任务操作文件,包括万博1manbetx处理修改文件、依赖、快捷键和标签。

得到仿真万博1manbetx软件项目在命令行

打开机身项目和使用simulinkproject项目对象在命令行操作万博1manbetx项目。你必须打开一个项目在仿真软件项目执行命令行操作这个项目万博1manbetx。

sldemo_slproject_airframe项目= simu万博1manbetxlinkproject
为项目创建沙箱。创建示例文件在“C: \ slexamples \ airframe21”初始化:跑步项目路径识别跟踪项目文件:C: \ slexamples \ airframe21 \ \ set_up_project的工具。m建筑“MinGW64编译器C”。墨西哥人成功完成。项目= ProjectManager属性:名称:仿真软件项目机身例子的信息:[1×1 slp万博1manbetxroject。信息)的依赖关系:[1×1 slproject。依赖]捷径:[1×9 slproject。快捷方式]ProjectPath: [1×7 slproject。slproject PathFolder] ProjectReferences: [1×0。ProjectReference]类别:[1×1 slproject。类别]文件:[1×33 slproject。ProjectFile] RootFolder:“C: \ slexamples \ airframe21”

发现项目的命令

找出你可以与你的项目有关。

方法(项目)
slproject方法类。ProjectManager: addFile isLoaded addFolderIncludingChildFiles listModifiedFiles密切refreshSourceControl createCategory重载出口removeCategory findCategory removeFile findFile getFilesRequiredBy

检查项目文件

获得一个项目对象后,您可以检查等项目属性文件。

文件= proj.Files
文件= 1×33 ProjectFile数组属性:路径修正SourceControlStatus标签

在这个列表中使用索引访问文件。下面的命令文件14号。每个文件都有描述它的路径和附加标签属性。

proj.Files (14)
ans = ProjectFile属性:路径:“C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl”标签:[1×1 slproject。标签修改:' 2 ' SourceControlStatus:修改的

检查14日文件的标签。

proj.Files .Labels (14)
ans =标签的属性:文件:C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl”数据类型:“没有一个”数据:[]的名字:“设计”CategoryName:“分类”

得到一个特定文件的名字。

myfile = findFile(项目,“模型/ AnalogControl.mdl”)
myfile = ProjectFile属性:路径:“C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl”标签:[1×1 slproject。标签修改:' 2 ' SourceControlStatus:修改的

找出你可以做文件。

方法(myfile)
slproject方法类。ProjectFile: addLabel findLabel removeLabel

把修改的文件

通过添加任意修改项目模型文件块。

open_system (“AnalogControl”)add_block (“内置/子系统”,“AnalogControl /测试”)save_system (“AnalogControl”)

在项目的所有修改的文件。观察两个修改文件。与修改的文件视图在仿真软件项目中,在那里你可以看到一个修改后的模型文件,和相应的万博1manbetx.SimulinkProject定义文件。

modifiedfiles = listModifiedFiles(项目)
modifiedfiles = 1×2 ProjectFile数组属性:路径修正SourceControlStatus标签

第二个修改文件。观察到的文件SourceControlStatus属性修改。同样的,listModifiedFiles返回任何添加的文件,矛盾,删除,等等,出现在修改的文件视图模型项目。万博1manbetx

modifiedfiles (2)
ans = ProjectFile属性:路径:“C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl”标签:[1×1 slproject。标签修改:' 2 ' SourceControlStatus:修改

查询单个文件之前刷新源代码控制状态。你在使用之前不需要做listModifiedFiles

refreshSourceControl(项目)

得到所有的项目文件与一个特定的源控制地位。例如,文件未修改的

proj.Files (ismember ([proj.Files。SourceControlStatus], matlab.sourcecontrol.Status.Unmodified))
ans = 1×32 ProjectFile数组属性:路径修正SourceControlStatus标签

得到文件的依赖关系

更新文件的依赖关系。项目运行依赖分析更新项目文件之间的依赖关系。

更新(proj.Dependencies)

检查项目对象的依赖关系。项目依赖项属性的对象包含项目文件之间的依赖关系图的一个MATLAB有向图对象。您可以查看相同的依赖性分析影响视图的图模型项目。万博1manbetx如果你想画出图,而不是使用有向图对象,将影响视图保存到一个图像文件。

proj.Dependencies
ans =依赖项属性:图:(1×1有向图)

图的依赖性。你可以用有向图方法获得的信息图。

g = proj.Dependencies.Graph
g =有向图的属性:边缘:[24×1表]节点:[25×1表)

得到一个模型所需的文件。

requiredFiles = bfsearch (g (“AnalogControl”))
requiredFiles = 3×1单元阵列的C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl“C: \ slexamples \ airframe21 \ data \控制器。sldd“C: \ slexamples \ airframe21 \ data \ buses.sldd '

得到顶层文件的所有类型图。

顶级= g.Nodes.Name(入度(g) = = 0);

得到顶层文件的依赖关系。

顶级= g.Nodes.Name(入度(g) = = 0 &出度(g) > 0)
顶级= 7×1单元阵列' C: \ slexamples \ airframe21 \ \ DigitalControl模型。基金“C: \ slexamples \ airframe21 \ \ LinearActuator模型。基金“C: \ slexamples \ airframe21 \ \ slproject_f14模型。基金“C: \ \ f14_airframe_test.m slexamples \ airframe21 \测试”'C:\slexamples\airframe21\utilities\rebuild_s_functions.m' 'C:\slexamples\airframe21\utilities\set_up_project.m' 'C:\slexamples\airframe21\utilities\upgrade_project.m'

找到影响(或“上游”)文件通过创建一个转置图。

转置= flipedge (g)影响= bfsearch(转置,(“vertical_channel”))
转置=有向图的属性:边缘:[24×1表]节点:[25×1表]影响= 4×1单元阵列' C: \ slexamples \ airframe21 \ \ vertical_channel模型。基金“C: \ slexamples \ airframe21 \ \ f14_airframe模型。基金“C: \ slexamples \ airframe21 \ \ slproject_f14模型。基金“C: \ \ f14_airframe_test.m slexamples \ airframe21 \测试”

找到文件影响数据字典。

impacted2 = bfsearch(转置,(“buses.sldd”))
impacted2 = 11×1单元阵列的C: \ slexamples \ airframe21 \ data \公交车。sldd“C: \ slexamples \ airframe21 \ data \控制器。sldd“C: \ \ system_model slexamples \ airframe21 \数据。sldd“C: \ slexamples \ airframe21 \ \ f14_airframe_test测试。m的C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl“C: \ slexamples \ airframe21 \ \ DigitalControl模型。基金“C: \ slexamples \ airframe21 \ \ f14_airframe模型。基金“C: \ slexamples \ airframe21 \ \ LinearActuator模型。基金“C: \ slexamples \ airframe21 \ \ NonLinearActuator模型。mdl“C: \ slexamples \ airframe21 \ \ slproject_f14模型。基金“C: \ \ vertical_channel.slx slexamples \ airframe21 \模型”

了解你的文件,如依赖性和孤儿的数量。

averageNumDependencies =意味着(出度(g));numberOfOrphans =总和(入度(g) +出度(g) = = 0);

如果你想改变一个模型层次结构,从下到上,发现拓扑秩序。

命令= g.Nodes.Name(翻转(toposort (g)));

查询快捷键

检查项目的快捷方式属性。你可以自动启动和关闭任务使用快捷键,或用它们来拯救频繁任务和频繁访问的文件。

快捷键= proj.Shortcuts
快捷键= 1×9快捷数组的属性:文件RunAtStartup RunAtShutdown

检查数组中的一个快捷方式。

快捷键(9)
ans =快捷方式的属性:文件:C: \ \ set_up_project slexamples \ airframe21 \实用工具。m ' RunAtStartup: 1 RunAtShutdown: 0

RunAtStartup属性设置为1,所以这个快捷方式文件将在项目启动时运行。在命令行上,您可以查看但不能改变RunAtStartup和RunAtShutdown属性。要设置这些属性,可以使用快捷工具仿真软件项目。万博1manbetx得到一个快捷方式的文件路径。

快捷键(6).File
ans = 1×50字符数组C: \ slexamples \ airframe21 \ \ slproject_f14.pdf报告

检查单元阵列中的所有文件的快捷方式。

{shortcuts.File}’
ans = 9×1单元阵列' C: \ slexamples \ airframe21 \ batch_jobs \ billOfMaterials。m的C: \ slexamples \ airframe21 \ batch_jobs \ checkCodeProblems。m的C: \ slexamples \ airframe21 \ batch_jobs \ runUnitTest。m的C: \ slexamples \ airframe21 \ batch_jobs \ saveModelFiles。m的C: \ slexamples \ airframe21 \ \ slproject_f14模型。基金“C: \ slexamples \ airframe21 \ \ slproject_f14报告。pdf“C: \ slexamples \ airframe21 \ \ clean_up_project的工具。m的C: \ slexamples \ airframe21 \ \ rebuild_s_functions的工具。m的C: \ slexamples \ airframe21 \工具\ set_up_project.m”

创建一个逻辑数组显示快捷键设置在启动运行。

idx = [shortcuts.RunAtStartup]
逻辑阵列idx = 1×9 0 0 0 0 0 0 0 0 1)

使用逻辑数组只能得到启动快捷方式。

startupshortcuts =快捷键(idx)
startupshortcuts =快捷方式的属性:文件:C: \ \ set_up_project slexamples \ airframe21 \实用工具。m ' RunAtStartup: 1 RunAtShutdown: 0

被访问的路径启动快捷方式的文件属性。

startupshortcuts.File
ans = 1×51 char数组C: \ slexamples \ airframe21 \ \ set_up_project.m的工具

标签文件

创建一个新的类别的标签,char类型。在仿真万博1manbetx软件项目中,新工程师类别出现在标签窗格。

createCategory(项目,“工程师”,“字符”)
ans =类别与属性:名称:“工程师”单值:0数据类型:“字符”LabelDefinitions: [1×0 slproject.LabelDefinition]

找出你可以做新的类别。

类别= findCategory(项目,“工程师”);方法(类别)
slproject方法类。类别:createLabel findLabel removeLabel

定义一个新的标签在新的类别。

createLabel(类别,“鲍勃”);

得到一个标签定义。

ld = findLabel(类别,“鲍勃”)
ld = LabelDefinition属性:名称:“鲍勃”CategoryName:“工程师”

将一个标签附加到检索文件,myfile。如果您选择了文件在仿真软件项目中,您可以看到这个标签万博1manbetx的标签编辑器窗格中。

addLabel (myfile“工程师”,“鲍勃”);

获得一个特定的标签和附加数据,例如,一些文本。

标签= findLabel (myfile,“工程师”,“鲍勃”);标签。Data =“请评估”
标签=标签的属性:文件:C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl的数据类型:字符的数据:请评估”的名字:“鲍勃”CategoryName:“工程师”

您可以指定一个变量标签数据,例如:

mydata = label.Data
mydata = 1×13个字符数组,请评估

类别与数值数据类型创建一个新的标签。

createCategory(项目,“评估”,“双”);类别= findCategory(项目,“评估”);createLabel(类别,“山姆”);

新标签附加到指定文件并分配数据值2的标签。

myfile = proj.Files (14);addLabel (myfile“评估”,“山姆”,2)
ans =标签的属性:文件:C: \ slexamples \ airframe21 \ \ AnalogControl模型。mdl”数据类型,“双”数据:2名:“山姆”CategoryName:“陪审员”

关闭项目

关闭该项目在命令行一样关闭项目使用仿真软件工程工具。万博1manbetx例如,项目关闭脚本运行广告检查未保存的模型。

关上(项目)
运行:C: \ slexamples \ airframe21 \ \ clean_up_project的工具。项目模型m关闭清算:项目路径

更多的信息

使用API的更多细节,输入:医生si万博1manbetxmulinkproject

自动启动和关闭任务,明白了自动化启动任务

另请参阅

|||||

相关的话题

这个主题有帮助吗?