我想要的是:

我在真实系统上有一个变量isWorking(boolean)的传感器。现在,我希望有一个查看器向我显示传感器是否在工作。例如,传感器节点是绿色或红色。

我有的:

我在CoDeSys上有一个变量isWorking的softSPS程序。使用JEasyOPC,我可以读取/覆盖此变量并将其打印到Eclipse控制台中。
正如我发现的所有Sirius教程中所示,我还在日食运行时为系统创建了Sirius模型。我看到可以使用条件样式更改节点的颜色。

所以我有一个节点Sensor和一个变量isWorking,但是我不知道如何连接它们。

我在Sirius文档中找到了有关“外部Java动作”的信息。 Sirius论坛中也有一个示例(https://www.eclipse.org/forums/index.php/t/764175/),但我不知道它是否可以解决我的问题以及如何与他们一起使用JEasyOPC。

我发现的另一种方法是JFace数据绑定,但是我只找到了一个适用于EMF模型而不适用于Sirius图(http://www.vogella.com/tutorials/EclipseDataBindingEMF/article.html)的教程。我不想更改我的元模型。

最佳答案

我认识Eclipse和Sirius。如果我对您的理解正确,那么您就有一个可用的变量,您想根据变量值用不同的颜色显示一个节点。
要做到这一点,您必须忙于等待[1],这不是最好的做法,最好的做法是将可变值更改的侦听器通知给您。

然后,按照您选择的策略,忙于等待(使用一个循环读取变量的线程)或侦听器,您需要更新EMF模型,以使Sirius对您的EMF模型更改做出反应并使其更改节点的颜色。

最好的祝福。

[1] http://en.wikipedia.org/wiki/Busy_waiting

09-04 08:28