sardana-org / sardana

Moved to GitLab: https://gitlab.com/sardana-org/sardana
39 stars 52 forks source link

Remote controllers/devices #1311

Open stanislaw55 opened 4 years ago

stanislaw55 commented 4 years ago

Hi, I wonder if there's possibility for Sardana to treat external Tango Device, which implements whole interface of some class like MotorController, as Sardana's MotorController?

What I mean is that it would be nice to have some plain Tango Device with all StartOne, StartAll, StopAll, and so but somehow discovered and used by Sardana despite the fact that it's not installed on the same machine or loaded via PoolPath.

guifrecuni commented 4 years ago

Hi, It is a good idea, thanks. I'd suggest you write a "TangoDSMotorController" class and implement the translation there.

Some time ago we wrote "standard controllers for TANGO attributes": https://github.com/ALBA-Synchrotron/sardana-tango/tree/master/sardana_tango/ctrl In that case, the controller connects to several external TANGO attributes and "exports" them different axes (devices), so there is no external device managing the "StartAll" command.

In your proposal I understand you want one external TANGO device as being the whole controller of a series of axes. In that case you would need on one side the device for the "controller function" (which could be a sardana motor controller property), and on the other side export the different axes at each "AddDevice".