-
Notifications
You must be signed in to change notification settings - Fork 0
/
device.yml
187 lines (187 loc) · 5.65 KB
/
device.yml
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
%YAML 1.1
---
# yaml-language-server: $schema=https://harp-tech.org/draft-02/schema/device.json
device: CameraController
whoAmI: 1168
firmwareVersion: "1.1"
hardwareTargets: "1.0"
registers:
CameraStart: &cameratarget
address: 32
type: U8
access: Write
maskType: Cameras
description: Starts the generation of triggers on the specified camera lines.
CameraStop:
<<: *cameratarget
address: 33
description: Stops the generation of triggers on the specified camera lines.
ServoEnable: &servotarget
address: 34
type: U8
access: Write
maskType: Servos
description: Enables servo control on the specified camera lines.
ServoDisable:
<<: *servotarget
address: 35
description: Disables servo control on the specified camera lines.
OutputSet: &output
address: 36
type: U8
access: Write
maskType: DigitalOutputs
description: Set the specified digital output lines.
OutputClear:
<<: *output
address: 37
description: Clear the specified digital output lines
OutputState:
<<: *output
address: 38
description: Write the state of all digital output lines
DigitalInputState:
address: 39
type: U8
access: Event
maskType: DigitalInputs
description: Emits an event when the state of the digital input line changes.
Camera0Trigger: &cameraframeevent
address: 40
type: U8
access: Event
description: Emits an event when a frame is triggered on camera 0.
Camera1Trigger:
<<: *cameraframeevent
address: 41
description: Emits an event when a frame is triggered on camera 1.
Camera0Sync: &syncstateevent
address: 42
type: U8
access: Event
description: Emits an event when a sync state is toggled on camera 0.
Camera1Sync:
<<: *syncstateevent
address: 43
description: Emits an event when a sync state is toggled on camera 0.
ServoState:
address: 44
type: U8
access: Read
maskType: Servos
description: Returns the current state of the servo motors.
Reserved0: &reserved
address: 45
type: U8
access: Read
description: Reserved for future use.
visibility: private
SyncInterval:
address: 46
type: U8
access: Write
description: Configures the interval in seconds between each sync pulse
Reserved1:
<<: *reserved
address: 47
DI0Mode:
address: 48
type: U8
access: Write
maskType: DI0ModeConfig
description: Configures the mode of the digital input line 0.
Control0Mode: &controlmode
address: 49
type: U8
access: Write
maskType: ControlModeConfig
description: Configures the control mode of Camera/Servo 0.
Camera0Frequency: &camerafrequency
address: 50
maxValue: 600
minValue: 1
type: U16
access: Write
description: Configures the frequency (Hz) of the trigger pulses on Camera 0 when using Camera mode.
Servo0Period: &servoperiod
address: 51
type: U16
access: Write
description: Configures the servo motor period (us) when using Servo mode (sensitive to 2 us)
Servo0PulseWidth: &servopulsewidth
address: 52
type: U16
access: Write
description: Configures the servo pulse width (us) when using Servo mode (sensitive to 2 us)
Control1Mode:
<<: *controlmode
address: 53
description: Configures the control mode of Camera/Servo 1.
Camera1Frequency:
<<: *camerafrequency
address: 54
description: Configures the frequency (Hz) of the trigger pulses on Camera 1 when using Camera mode.
Servo1Period:
<<: *servoperiod
address: 55
access: Write
Servo1PulseWidth:
<<: *servopulsewidth
address: 56
type: U16
access: Write
Reserved2:
<<: *reserved
address: 57
Reserved3:
<<: *reserved
address: 58
EnableEvents:
address: 59
access: Write
type: U8
maskType: CameraControllerEvents
description: Specifies the active events in the device.
bitMasks:
Cameras:
description: Specifies the target camera line.
bits:
Camera0: 0x1
Camera1: 0x2
Servos:
description: Specifies the target servo-motor lines.
bits:
Servo0: 0x1
Servo1: 0x2
DigitalOutputs:
description: Available digital output lines.
bits:
Trigger0: 0x1
Sync0: 0x2
Trigger1: 0x4
Sync1: 0x8
DigitalInputs:
description: Available digital input lines.
bits:
DI0: 0x1
CameraControllerEvents:
description: Specifies the active events in the device.
bits:
TriggerAndSynch: {value: 0x1, description: Enables CameraTrigger and CameraSync events.}
DigitalInputs: {value: 0x2, description: Enables DigitalInputs}
groupMasks:
DI0ModeConfig:
description: Specifies the operation mode of digital input line 0.
values:
HighEnablesCamera0: {value: 0, description: "When High, enables Camera0 or Servo0."}
HighEnablesCamera1: {value: 1, description: "When High, enables Camera1 or Servo1."}
HighEnablesCameraBoth: {value: 2, description: "When High, enables both Cameras or Servos."}
LowEnablesCamera0: {value: 3, description: "When Low, enables Camera0 or Servo0."}
LowEnablesCamera1: {value: 4, description: "When Low, enables Camera1 or Servo1."}
LowEnablesCameraBoth: {value: 5, description: "When Low, enables both Cameras or Servos."}
Default: {value: 6, description: "The line will function as a passive digital input."}
ControlModeConfig:
description: Specifies the operation mode of a specific output line.
values:
Camera: {value: 0, description: Enables Camera mode and it will produce the configured trigger.}
Servo: {value: 1, description: Enables Servo mode and it will produce the configured trigger.}