代理状态图中 main 的可访问性

Accessibility of main from agent's statechart

我可以知道模型中的所有元素是否都可以访问 main 吗?

我问的原因是我创建了一个简单的 M/M/n 模型,其中包含一种通过 ResourcePool 创建的资源类型。资源类型的行为是使用状态图实现的。我在状态图中的转换动作中写了一个简单的代码,即

if (agent_variable < main.my_parameter) { /* do something */ }

代码无法编译并给出错误信息“main cannot be resolved to a variable”。我不明白为什么状态图不能识别主。

谢谢

欢迎来到 SOF,斯蒂芬。

首先,始终使用代码补全 (Ctrl+space)。然后,您将看到从您所在的位置可以访问什么以及不能访问什么。在你的情况下,main 甚至不是一个选项:-)

现在,您的模型根目录(通常是 main)始终可以通过 getModelRootAgent() 访问,但您需要将其转换为 Main class,即((Main)getModelRootAgent())

否则,Main 以某种方式嵌入到 Main 中的所有代理都可以访问。这就是 classic OOP 原则。您的资源代理实际上不是嵌入式群体,因此无法直接访问 Main。 (不过,您可以在 ResourcePool 属性中做到这一点)