主要内容

resourceSpecification

类:matlab。DiscreteEventSystem
包:matlab

为资源获取或资源释放事件创建规范

语法

resRequest = resourceSpecification(资源、数量)

描述

resRequest= resourceSpecification (资源属性的资源的名称和数量eventAcquireResource或者是eventReleaseResource请求。

例如,这段代码指定了一个单元Resource1两个单位Resource2

resRequest = obj.resourceSpecification (“Resource1”1);resRequest = [resReq obj. resourcspecification (“Resource2”, 2)];

如果您为eventReleaseResource如果大于之前获取的资源数量,则会释放之前获取的所有资源。

例如,假设一个实体以前获得了三个类型的资源Resource1以及四种类型资源Resource2.这段代码指定了金额eventReleaseResource

resRequest = obj.resourceSpecification (“Resource1”2);resRequest = [resReq obj. resourcspecification (“Resource2”5)];事件= eventReleaseResource(resReq, ' relinquish ');

在释放之后,实体拥有一个类型的资源Resource1没有类型的资源Resource2

您可以通过使用eventReleaseAllResources

输入参数

全部展开

的资源的名称eventAcquireResource或者是eventReleaseResource请求。可以指定多个资源。

的资源数量eventAcquireResource或者是eventReleaseResource请求。

输出参数

全部展开

资源请求获取或释放事件指定为MATLAB结构的向量。

例子

一个简单的资源规范示例

当实体进入存储元素时,它会获取资源。实体获取一个类型的资源Resource1和一个类型资源Resource2,它们被定义为规范。然后将这些规范用于eventAcquireResource与标签MyResourceAcquireEvent

函数[entity,events] = entry(对象,存储,实体,源)%在进入时,获取一个Resource1类型的资源和一个Resource2类型的资源。resRequest (1) = obj.resourceSpecification (“Resource1”1);resRequest (2) = obj.resourceSpecification (“Resource2”1);事件= obj.eventAcquireResource (resRequest,“MyResourceAcquireEvent”);结束

自定义资源获取器块中的资源规范

此示例演示如何使用资源管理方法创建自定义实体存储块,实体在该存储块中从指定的存储块中获取资源资源池块。

假设你管理一个工厂,它生产两种不同的材料,材料1和材料2,以完成订单。零件生产后,要进行质量评价,以保证质量。

质量控制的两种检测方法是:

  • 试验1用于由材料生产的部件1

  • 试验2用于由材料生产的部件2

在生产阶段之后,根据零件的材料进行标记,以应用正确的测试。

有关更多信息,请参见创建自定义资源获取器块

classdefCustomBlockAcquireResources < matlab。DiscreteEventSystem%自定义资源获取块示例。方法(访问=保护)函数num = getNumInputsImpl(obj) num = 1;结束函数num = getNumOutputsImpl(obj) num = 1;结束函数entityTypes(1) = obj. entitytype (“部分”);结束函数[input, output] = getEntityPortsImpl(obj) input = {“部分”};输出= {“部分”};结束函数[storageSpec, I, O] = getEntityStorageImpl(obj) storageSpec(1) = obj. queuefifo (“部分”1);I = 1;O = 1;结束函数resNames = getResourceNamesImpl (obj)%定义要获取的资源的名称。resNames = obj.resourceType (“部分”, {“Test1”“Test2”}) ;结束结束方法函数[entity,events] = entry(对象,存储,实体,源)%在实体条目上,从指定的池中获取资源。如果entity.data.Test = = 1%如果实体是从Material1生成的,请求Test1。resReq = obj.resourceSpecification (“Test1”1);其他的%如果实体是从Material2生成的,请求Test2。resReq = obj.resourceSpecification (“Test2”1);结束%从相应的池中获取资源。事件= obj.eventAcquireResource (resReq,“TestTag”);结束函数[entity,events] = resourceAcquired(obj, storage,...实体、资源标签)%获取资源后,将实体转发到输出。事件= obj.eventForward (“输出”0.0、存储);结束结束结束
介绍了R2019a