tango-frame

en ja

GitHub GitHub Pages Ohara Lab

tango-frame automatically constructs a TANGO Device Server and a corresponding Python client wrapper from an ordinary Python device-control class.

Purpose

The existing Python device-control API is used as the definition of the device API, without rewriting the device class for TANGO.

Python device class
      |
      +--> public method --> TANGO command
      |
      +--> @property     --> TANGO attribute

The device class remains independent of TANGO. Public methods are exposed as named TANGO commands, and Python properties are exposed as TANGO attributes.

The client communicates through TANGO DeviceProxy while presenting Python methods and properties corresponding to the original device API.

Design boundaries

src/tango_frame/ is a reusable framework that does not depend on a concrete device class.

A device-specific package keeps its TANGO-independent device-control class and uses AutoDispatchDevice / AutoDispatchClient in a device-specific server_tango layer.

Native TANGO-compatible values are transported as native TANGO types. JSON encoding is used only when a Python call or return value cannot be represented directly by the TANGO command model.

Version

Current version: 0.1.0