OBJECT CLASS Device
isa* ScanObject
DESCRIPTION: "An analytical device attached to Beam Line 7, ALS,
such as motors, spectrometers, scan devices,
monochromators, the beam."
REP: deviceNumber
ATTRIBUTE deviceNumber: [1,1] INTEGER
DESCRIPTION: "Device number. Possible values are:
0 - null, 1 - photon, 2 - motor, 3 - piezo, 4 - quads"
ATTRIBUTE deviceName: [0,1] CHAR(50)
DESCRIPTION: "Device name"
ATTRIBUTE subDeviceMapping (subDeviceIndex, subDeviceName):
list-of [0,] ([1,1] INTEGER, [1,1] VARCHAR(255))
DESCRIPTION: "Mapping of integer numbers to sub-devices' names:
Device Photon: Subdevice
Device Motor: 0 = X, 1 = Y, 2 = Z, 3 = Theta, 4 = Phi
Device Piezo: 0 = H, 1 = V
Device Quads: 0 = H, 1 = V"
ATTRIBUTE subdevs: set-of [0,] SubDevice
DESCRIPTION: "Subdevices of this device"
ATTRIBUTE nrSubdevices
DERIVATION: count of subdevs
DESCRIPTION: "Number of sub devices"
ATTRIBUTE scanType: [0,1] INTEGER
DESCRIPTION: "0 = Computed, 1 = Tabulated"
Device and SubDevice are classes that handle the information about the positions in the sample space where measurements are taken from. These classes do not actually correspond to physical devices, but rather map the existing hardware configurations. For example, a motor is a device that has as subdevices, a position in the 3D space and two angles for rotation.