类: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
.
当实体进入存储元素时,它会获取资源。实体获取一个类型的资源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、存储);结束结束结束
matlab。DiscreteEventSystem
|eventForward
|cancelAcquireResource
|getResourceNamesImpl
|resourceAcquired
|eventReleaseResource
|eventAcquireResource