File: imgfel.py

package info (click to toggle)
extra-data 1.20.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 952 kB
  • sloc: python: 10,421; makefile: 4
file content (120 lines) | stat: -rw-r--r-- 4,120 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
from .base import DeviceBase
from .control_common import interlock_keys, triggers_keys


class IMGFELCamera(DeviceBase):
    control_keys = [
        ('Logger/file/maxBackupIndex', 'u4', ()),
        ('Logger/file/maxFileSize', 'u4', ()),
        ('Logger/file/mode', 'u4', ()),
        ('acqFrameCount', 'u4', ()),
        ('autoGain', 'u1', ()),
        ('bin/X', 'i4', ()),
        ('bin/Y', 'i4', ()),
        ('exposureTime', 'f8', ()),
        ('flip/X', 'u1', ()),
        ('flip/Y', 'u1', ()),
        ('frameRate', 'f8', ()),
        ('frameTransmissionDelay', 'u4', ()),
        ('gain', 'f8', ()),
        ('imageDepth', 'i4', ()),
        ('interPacketDelay', 'u4', ()),
        ('latencyTime', 'f8', ()),
        ('nbFrames', 'i4', ()),
        ('packetSize', 'u4', ()),
        ('pollingInterval', 'i4', ()),
        ('roi/Height', 'i4', ()),
        ('roi/Width', 'i4', ()),
        ('roi/X', 'i4', ()),
        ('roi/Y', 'i4', ()),
        ('rotation', 'i4', ()),
        ('sensorSize/height', 'i4', ()),
        ('sensorSize/width', 'i4', ()),
        ('simulateCamera', 'u1', ()),
        ('socketBufferSize', 'u4', ()),
        ('temperature', 'f8', ()),
        ('writeFile', 'u1', ()),
    ]

    # Technically, only the part before the / is the output channel.
    # But there is a structure associated with the part one level after that,
    # and we don't know what else to call it.
    output_channels = ('daqOutput/data',)

    instrument_keys = [
        ('image/bitsPerPixel', 'i4', ()),
        ('image/dimTypes', 'i4', (2,)),
        ('image/dims', 'u8', (2,)),
        ('image/encoding', 'i4', ()),
        ('image/pixels', 'u2', (1944, 2592)),
        ('image/roiOffsets', 'u8', (2,)),
    ]


class IMGFELMotor(DeviceBase):
    control_keys = [
        ('ABackEMF', 'u2', ()),
        ('ACoilResistance', 'u2', ()),
        ('ADynOffsFactor', 'f4', ()),
        ('ADynOffsetType', 'u1', ()),
        ('AFunctionInput1', 'u1', ()),
        ('AFunctionInput2', 'u1', ()),
        ('AIntCounter7041', 'u1', ()),
        ('AMotorFullStep', 'u2', ()),
        ('AOffsetDynamic', 'f4', ()),
        ('AOverrun', 'f4', ()),
        ('aMax', 'i2', ()),
        ('acceleration', 'f4', ()),
        ('actualPosition', 'f4', ()),
        ('backlash', 'f4', ()),
        ('busy', 'u1', ()),
        ('calibrateTarget', 'f4', ()),
        ('checkLimitConsistency', 'u1', ()),
        ('controllerVoltage', 'f4', ()),
        ('deadband', 'f4', ()),
        ('encodeStep', 'f4', ()),
        ('epsilon', 'f4', ()),
        ('extEncoderEnabled', 'u1', ()),
        ('force', 'u1', ()),
        ('gear', 'f4', ()),
        ('hardwareErrorDescriptor', 'u4', ()),
        ('hardwareStatusBitField', 'u4', ()),
        ('homeNoLimit', 'u1', ()),
        ('homeUp', 'u1', ()),
        ('invLogicLim1', 'u1', ()),
        ('invLogicLim2', 'u1', ()),
        ('isCCWLimit', 'u1', ()),
        ('isCWLimit', 'u1', ()),
        ('isIdleOpenLoop', 'u1', ()),
        ('isInternalCounter', 'u1', ()),
        ('isInvertLimits', 'u1', ()),
        ('isLimitless', 'u1', ()),
        ('isOnTarget', 'u1', ()),
        ('isSWLimitHigh', 'u1', ()),
        ('isSWLimitLow', 'u1', ()),
        ('isSlave', 'u1', ()),
        ('limitPosH', 'f4', ()),
        ('limitPosL', 'f4', ()),
        ('masterSlaveCorrelation', 'f4', ()),
        ('maxCurrent', 'u2', ()),
        ('maxUpdateFrequency', 'f4', ()),
        ('modus', 'u1', ()),
        ('motorDriverVoltage', 'f4', ()),
        ('offset', 'f4', ()),
        ('pConst', 'f4', ()),
        ('plcCycleAveraging', 'u1', ()),
        ('pollInterval', 'f4', ()),
        ('reducedCurrent', 'u2', ()),
        ('saveLimitPosition', 'u1', ()),
        ('softDeviceId', 'u4', ()),
        ('stepCounterPosition', 'f4', ()),
        ('stepLength', 'f4', ()),
        ('syncEncoder', 'u1', ()),
        ('targetPosition', 'f4', ()),
        ('targetVelocity', 'i2', ()),
        ('terminal', 'u4', ()),
        ('terminalTemperature', 'u1', ()),
        ('vMax', 'i2', ()),
        ('vMin', 'i2', ()),
        ('velocity', 'f4', ()),
    ] + interlock_keys + triggers_keys