1. devices
– Representation of fusion device¶
In general usage, a customised subclass will be used rather than direct instantiation of classes in this module. The getDevice()
helper function is provided to simplify the use of device classes. If we have in our configuration file:
[Device:MyDevice]
dev_class = pyfusion.devices.H1.device.H1
param_1 = param_1_value
then getDevice()
will return an instance of dev_class:
>>> import pyfusion
>>> my_device = pyfusion.getDevice("MyDevice")
>>> my_device
<pyfusion.devices.H1.device.H1 instance at 0xa1d26ec>
>>> my_device.param_1
'param_1_value'
1.1. Base Device Objects¶
The following classes are provided by the base
submodule. In general, a customised subclass of Device
is used rather than the base class itself.
-
class
devices.base.
Device
(config_name=None, **kwargs)¶ Returns an instance of
Device
optionally initialised with an underlying instance of a specified subclass ofBaseAcquisition
.Parameters: config_name – configuration file section (i.e. [Device:config_name]) to load. Any configuration file option can be overridden by supplying an argument of the same name to
Device
. For example, given a configuration file:[Device:MyDevice] param_1 = param_1_value param_2 = param_2_value
the configuration will be loaded by specifying the config_name:
>>> import pyfusion >>> my_device = pyfusion.devices.base.Device(config_name="MyDevice") >>> my_device.param_1 'param_1_value' >>> my_device.param_2 'param_2_value' >>> my_other_device = pyfusion.devices.base.Device(config_name="MyDevice", param_1="some_other_value") >>> my_other_device.param_1 'some_other_value'
The only configuration parameter which is directly handled by
Device
is “acq_name”, which specifies the name of the data acquisition system (i.e. [Acquisition:MyAcquisition] in the configuration file) to be attached to theDevice
instance. So, for a configuration file:[Device:MyDevice] acq_name = MyAcquisition param_1 = param_1_value param_2 = param_2_value [Acquisition:MyAcquisition] acq_class = pyfusion.acquisition.base.BaseAcquisition
we get:
>>> import pyfusion >>> my_device = pyfusion.devices.base.Device(config_name="MyDevice") >>> my_device.acquisition <pyfusion.acquisition.base.BaseAcquisition object at 0x87a3a4c> >>> my_device.acq <pyfusion.acquisition.base.BaseAcquisition object at 0x87a3a4c>
where my_device.acquisition (and synonym my_device.acq) is an instance of
BaseAcquisition
.