类:matlab。DiscreteEventSystem
包:matlab
创建实体迭代事件
事件= eventIterate (storageID、标签、优先级)
定义一个事件来迭代存储元素的实体。
函数事件=出口(obj、存储实体,dst)定义一个事件来迭代存储元素的实体%—该事件与存储元素2有关% -事件有一个自定义标签'search'% -事件将在当前模拟时钟时间执行%—该事件的优先级为10(较小的数值)%表示更高的事件优先级)事件= obj.eventIterate (2“搜索”10);结束
在本例中,自定义块允许实体通过其输入端口输入其存储元素。存储元素是一个优先级队列,它根据实体的属性对其进行排序直径
属性按升序排列。块存储中的每个实体条目都调用一个迭代事件来显示存储中每个实体的直径和位置。
有关更多信息,请参见使用迭代事件创建自定义实体存储块.
classdefCustomEntityStorageBlockIteration < matlab。DiscreteEventSystem一个自定义的实体存储块,有一个输入端口和一个存储元素。% Nontunable属性属性(Nontunable)%的能力能力= 5;结束%创建具有一个输入和一个存储的存储元素。方法(访问=保护)函数num = getNumInputsImpl(obj) num = 1;结束函数num = getNumOutputsImpl(obj) num = 0;结束函数entityTypes = getEntityTypesImpl(obj)“轮”);entityTypes = entityType1;结束函数[inputTypes,outputTypes] = getEntityPortsImpl(obj) inputTypes = {“轮”};outputTypes = {};结束函数[storageSpecs, I, O] = getEntityStorageImpl(obj)“轮”obj。能力,“直径”,“提升”);I = 1;O = [];结束结束%实体条目事件动作方法函数[entity, event] = WheelEntry(obj,storage,entity, source)% Entity条目调用迭代事件。事件= obj.eventIterate (1,'');结束% itarate事件动作函数(实体、事件、下)= WheelIterate (obj、存储实体,标签,cur)%显示轮子id,在存储器中的位置和直径。coder.extrinsic (“流”);流('车轮id %d,当前位置%d,直径%d\n',...entity.sys。id、cur.position entity.data.Diameter);如果fprintf(curt .size == curt .position‘迭代结束\n’)结束下一个= true;事件= [];结束结束结束