OBJECT CLASS SubDevice
isa* ScanObject
DESCRIPTION: "Components of a device, such as angle, gap and eV
of the beam, x, y, z, theta, phi of a motor device."
REP: subdevNum, subdevName
ATTRIBUTE subdevNum: [1,1] INTEGER
DESCRIPTION: " Possible values are described in
SubDeviceMapping, in the object Device"
ATTRIBUTE subdevName: [0,1] CHAR(50)
ATTRIBUTE dOption: list-of [0,] INTEGER
DESCRIPTION: "Array for future use"
ATTRIBUTE range (rangeStart, rangeEnd, rangeStep):
list-of [0,] ([0,1] FLOAT, [0,1] FLOAT, [0,1] FLOAT)
DESCRIPTION: "Range of values of scandevices.
For example, values for X, Y, Z, Theta, PHi"
ATTRIBUTE tabPos: [0,1] PositionsTable
DESCRIPTION: "Requested postions for data gathering"
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.