Ohara Lab

Design Principles of SUSANOO

Back to the home page

SUSANOO separates a Python DeviceClass, which implements instrument control, from a communication Frame, which exposes that class over a network. A DeviceClass is an ordinary Python class independent of transport. It can be used directly in a local program; a device server and client/DeviceProxy are needed only for network access.

Local:    Application → DeviceClass → Instrument
Network:  Application → Client / DeviceProxy → Communication Frame → DeviceClass → Instrument

Transports and exposed APIs

Abstracting transports does not guarantee identical capabilities, data types, or event behavior across Frames. Validate API exposure, type conversion, error propagation, and concurrency against the instrument and transport in use.

Getting started


Author