代理状态图中 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 属性中做到这一点)
我可以知道模型中的所有元素是否都可以访问 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 属性中做到这一点)