问题描述
我一直在尝试使用 Resource Function timeInState(ResourceUsageState.USAGE_BUSY,TimeUnits.Hour)
来衡量机器忙碌的时间。这是我使用 HorasExtra 作为变量的方法:
我收到此错误:类 com.anylogic.engine.Agent 无法转换为类 horas_extra.M1_Extra(com.anylogic.engine.Agent 和 horas_extra.M1_Extra 位于加载程序“app”的未命名模块中)
我真的很想使用ResourceFunctions,但我想我遗漏了一些东西。我很可能没有完全理解这一点:“代理占用的资源可以通过代理的不可修改的 LinkedList resourceUnits 集合访问”。
AnyLogic 或其他网站上没有关于该主题的更多信息。请指教。谢谢!
解决方法
我找到了我的问题的解决方案,我想与大家分享,以防万一它对某人有帮助,或者有任何我应该被警告的事情。
- 我创建了一个资源类型
M1_Extra
(这将是我的机器)。 - 在 M1_Extra 中,我定义了:a) 变量:
Extra
,b) 函数:fnBusy
,c) 事件:fnUpdate
。 - 在 fnBusy 中:
Extra= timeInState(ResourceUsageState.USAGE_BUSY,TimeUnits.HOUR);
- 在 fnUpdate 中:
fnBusy();
- 然后,在 Main 我创建了:a) 变量:
HE
- 在资源池中,发布时:
HE = ((M1_Extra)unit).Extra;
和单位类型M1_Extra
这样您就可以访问资源功能。谢谢!