JDraw drawings cannot handle DS stopped status

Hello!

I had an opportunity to use JDraw drawings in TaurusJDrawSynopticsView widgets in my GUI application, but came across a very critical bug(?).

Let me explain the situation: there are some JDRectangles placed in the test.jdw file, they reflects the real states of some valves, which periodically changes its states(open/close; single valve has it's own DS instance in database). I've placed this drawing inside the TaurusJDrawSynopticsView widget in the UI application, let's call it valveStateUI. If for some reasons, an operator stops valves Device Server instances in Astor(or they simply crash), I can't see this on the valveStateUI, the view just freezes with normal values(I mean open/close, not UNKNOWN or FAULT). If I open Jive, I indeed see that DS's are not responding, but the valveStateUI still shows that Valves are open or closed. The critical thing in this, is when valves physically changes their state(while its DS is not working) and someone looking at the valveStateUI still, erroneously thinks that it represents the real states it might be really dangerous.

Have you ever experienced it? If yes, how did you handle it?
I don't actually know if JDraw tool is still under development, I only found that Leader of this project is:
Synoptic drawing tool (jdraw) - ESRF - Jean Luc Pons
For accuracy here is my configuration:
- Windows 10
- Tango 8.1.2 (x64)
- JDraw Editor 1.14

Checking required dependencies of taurus.core…
        Checking for Python >=2.6.0… [←[0;32mOK←[0m] (Found 2.7.8)
        Checking for PyTango >=7.1.0… [←[0;32mOK←[0m] (Found 8.1.6)
Checking required dependencies of taurus.qt…
        Checking for PyQt >=4.4.0… [←[0;32mOK←[0m] (Found 4.11.4)
        Checking for PyQwt >=5.2.0… [←[0;32mOK←[0m] (Found 5.2.3)

Hope, you can help me finding the workaround.. smile
Regards,
Jagoda
Hi

To identify the origin of the problem I suggest you the following

Within jdraw, try to run the synoptic handler: click on views->tango synoptic view

you should see the animated synopsis and be able to modify the states of the devices
If, when killing a server, you cannot reproduce the problem, then it may come from the taurus side
If the problem is still there, then we can have a look on the events configuration
Are you using the events?
Cheers
Jean-Michel
This doesn't happen when going through tango synoptic view, but relying on this type of checking may be tricky sometimes.

For example case of ATK swing object: VoidVoidCommandViewer.
As you can see, states changes in 1 and 2:
1. http://www.mediafire.com/view/67jmuwct614tzs4/1Command.PNG#
2. http://www.mediafire.com/view/3o8r7ccu7j18g45/2Command.PNG#
3. http://www.mediafire.com/view/2zugz74ia59azyv/3taurus.PNG#
But here, in 3, when running in Taurus widget.. something went wrong smile

What's your suggestion? How can I solve the issue with TaurusWidget causing the valveStateUI problem?
Regards,
Jagoda
Edited 8 years ago
Hi Jagoda!

I was able to reproduce your problems and I think that they originates from Taurus. Both Taurus 3 and Taurus 4 are affected, while in Taurus 4, apart of not reacting to the DS shutdown, there is a clear exception when starting up the `python taurus/qt/qtgui/graphic/jdraw/jdraw_view.py <path-to-your-jdraw-file>`:

Traceback (most recent call last):
  File "/home/zreszela/workspace/taurus/lib/taurus/qt/qtgui/graphic/taurusgraphic.py", line 154, in run
    self.emitter.updateView.emit(v)
AttributeError: 'TaurusGraphicsUpdateThread' object has no attribute 'emitter'

Could you please report both issues in the Taurus issue tracker.

Cheers,
Zibi
 
Register or login to create to post a reply.