eventAcquireResource
类:matlab.DiscreteEventSystem
包:matlab
创建一个资源收购事件
语法
事件= eventAcquireResource (resourceSpec、标签)
描述
创建一个事件从现有的获取资源资源池块。您可以指定名称和数量的资源来获得。更多细节,请参阅事件
= eventAcquireResource (resourceSpec
,标签
)resourceSpecification
。
如果所有请求的资源不可用事件执行期间,收购活动仍然活跃。所请求的资源可用时,活动改期立即执行。
输入参数
输出参数
例子
获得资源在入口
在实体进入存储元素,一个实体获得一个资源的类型Test1
。这个资源收购事件的标记TestTag
。
函数(实体、事件)=条目(obj、存储实体,源)%在实体条目,获取指定的资源池。resourceSpec = obj.resourceSpecification (“Test1”1);事件= obj.eventAcquireResource (resourceSpec“TestTag”);结束
自定义块获取资源
这个例子展示了如何使用资源管理方法来创建一个自定义实体存储块从指定哪些实体获取资源资源池块。
假设你管理一个工厂生产零部件从两个不同的材料,材料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、存储);结束结束结束