resourceSpecification
类:matlab.DiscreteEventSystem
包:matlab
为资源获取或创建规范资源释放事件
语法
resRequest = resourceSpecification(资源、数量)
描述
指定的名称和数量的资源resRequest
= resourceSpecification (资源
,量
)eventAcquireResource
或者是eventReleaseResource
请求。
例如,这个代码指定了一个单位的Resource1
和两个单位的Resource2
。
resRequest = obj.resourceSpecification (“Resource1”1);resRequest = [resReq obj.resourceSpecification (“Resource2”,2)];
如果你指定的金额eventReleaseResource
超过的金额收购前,所有以前获得的资源被释放。
例如,假设一个实体先前获得的三种资源类型Resource1
和四个类型的资源Resource2
。这个代码指定的金额eventReleaseResource
。
resRequest = obj.resourceSpecification (“Resource1”2);resRequest = [resReq obj.resourceSpecification (“Resource2”5)];事件= eventReleaseResource (resReq '放弃');
释放后,实体类型的一个资源Resource1
和零资源类型Resource2
。
您可以指定所有先前获得的资源利用的释放eventReleaseAllResources
。
输入参数
输出参数
例子
一个简单的资源规范的例子
当一个实体进入存储元素,它获得的资源。获得一个资源类型的实体Resource1
和一个资源类型Resource2
,它被定义为规范。然后使用规范eventAcquireResource
与标签MyResourceAcquireEvent
。
函数(实体、事件)=条目(obj、存储实体,源)%在入口处,获得一个资源类型的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 = getEntityTypesImpl (obj) entityTypes (1) = obj.entityType (“部分”);结束函数(输入、输出)= getEntityPortsImpl (obj)输入= {“部分”};输出= {“部分”};结束函数[storageSpec, I, O] = getEntityStorageImpl (obj) storageSpec (1) = obj.queueFIFO (“部分”1);I = 1;O = 1;结束函数resNames = getResourceNamesImpl (obj)%定义资源的名称。resNames = obj.resourceType (“部分”,{“Test1”,“Test2”});结束结束方法函数(实体、事件)=条目(obj、存储实体,源)%在实体条目,获取指定的资源池。如果entity.data。测试= = 1%如果Material1实体产生Test1请求。resReq = obj.resourceSpecification (“Test1”1);其他的%如果Material2实体产生Test2请求。resReq = obj.resourceSpecification (“Test2”1);结束%获得相应的资源池。事件= obj.eventAcquireResource (resReq,“TestTag”);结束函数(实体、事件)= resourceAcquired (obj、存储、…实体、资源标签)%资源收购后,提出了实体到输出。事件= obj.eventForward (“输出”0.0、存储);结束结束结束