Add alignment state indicator and pluggable data sources

- AlignmentThresholds dataclass + VisionEngine.__init__ for injection
- alignment_state computed per snapshot (ready/aligning/fault)
- MonitorPlot circle/vector/legend driven by state color
- Status dot + label moved into POSITION VISUALIZATION panel header
- CsvSessionSource + DemoSource pluggable DataSource layer
- Synthetic DATA/ready/ and DATA/aligning/ sessions for visual testing
- Fix CAM 3 label placement (below circle, not above)
This commit is contained in:
Your Name
2026-05-26 14:01:47 -07:00
parent b9adc7c0b8
commit 02327a7a21
60 changed files with 29018 additions and 71 deletions
+424
View File
@@ -0,0 +1,424 @@
# file,S20703P0.CSV
# source,BOARD_LOCAL
# spi,SPI2
# tick_ms,226699
# bit,4
# edge_mode,ORDINARY
# points,416
x,y
264,83
263,84
264,84
265,84
266,84
264,85
265,85
266,85
265,86
266,86
267,86
266,87
267,87
268,87
269,87
267,88
268,88
269,88
268,89
269,89
270,89
268,90
269,90
270,90
270,91
271,91
270,92
271,92
272,92
271,93
272,93
273,93
274,93
271,94
272,94
273,94
274,94
272,95
273,95
274,95
275,95
274,96
275,96
275,97
276,97
275,98
276,98
277,98
275,99
277,99
279,99
277,100
278,100
277,101
278,101
279,101
278,102
279,102
280,102
278,103
279,103
280,103
279,104
280,104
281,104
280,105
281,105
281,106
282,106
281,107
282,107
283,107
282,108
283,108
282,109
283,109
284,109
283,110
284,110
285,110
283,111
284,111
285,111
286,111
284,112
285,112
286,112
284,113
285,113
286,113
285,114
286,114
286,115
287,115
286,116
287,116
287,117
288,117
287,118
288,118
288,119
289,119
288,120
289,120
290,120
288,121
289,121
290,121
289,122
290,122
289,123
290,123
291,123
290,124
291,124
290,125
291,125
292,125
290,126
291,126
292,126
291,127
292,127
291,128
292,128
293,128
292,129
293,129
292,130
293,130
293,131
294,131
293,132
294,132
292,133
293,133
294,133
293,134
294,134
294,135
295,135
294,136
295,136
294,137
295,137
295,138
296,138
295,139
296,139
295,140
296,140
295,141
296,141
296,142
297,142
296,143
297,143
295,144
296,144
297,144
296,145
297,145
296,146
297,146
298,146
297,147
298,147
297,148
298,148
296,149
297,149
298,149
298,150
297,151
298,151
297,152
298,152
299,152
298,153
299,153
298,154
299,154
297,155
298,155
299,155
298,156
299,156
298,157
299,157
298,158
299,158
299,159
298,160
299,160
299,161
300,161
298,162
299,162
298,163
299,163
298,164
299,164
298,165
299,165
300,165
299,166
300,166
299,167
300,167
299,168
300,168
299,169
300,169
299,170
300,170
298,171
299,171
300,171
298,172
299,172
298,173
299,173
300,173
299,174
300,174
298,175
299,175
300,175
298,176
299,176
298,177
299,177
299,178
300,178
298,179
299,179
300,179
298,180
299,180
298,181
299,181
298,182
299,182
298,183
299,183
297,184
298,184
299,184
298,185
299,185
297,186
298,186
297,187
298,187
299,187
297,188
298,188
297,189
298,189
297,190
299,190
297,191
298,191
296,192
297,192
297,193
297,194
296,195
297,195
296,196
297,196
295,197
296,197
295,198
296,198
295,199
296,199
294,200
295,200
296,200
295,201
294,202
295,202
294,203
295,203
293,204
294,204
293,205
294,205
293,206
294,206
292,207
293,207
294,207
292,208
293,208
292,209
293,209
291,210
292,210
293,210
291,211
292,211
291,212
292,212
290,213
291,213
290,214
291,214
288,215
290,215
289,216
290,216
291,216
288,217
289,217
290,217
288,218
289,218
290,218
288,219
289,219
287,220
288,220
287,221
288,221
286,222
287,222
286,223
287,223
285,224
286,224
287,224
285,225
286,225
284,226
285,226
283,227
284,227
285,227
283,228
284,228
285,228
283,229
284,229
282,230
283,230
284,230
282,231
281,232
282,232
280,233
281,233
282,233
280,234
281,234
278,235
279,235
280,235
281,235
278,236
279,236
280,236
277,237
278,237
279,237
280,237
277,238
278,238
276,239
277,239
278,239
275,240
276,240
277,240
275,241
276,241
274,242
275,242
276,242
273,243
274,243
275,243
272,244
273,244
274,244
271,245
272,245
273,245
271,246
272,246
273,246
270,247
271,247
272,247
269,248
270,248
271,248
268,249
269,249
270,249
268,250
269,250
266,251
267,251
268,251
266,252
267,252
264,253
265,253
266,253
267,253
264,254
265,254
266,254
264,255
1 # file S20703P0.CSV
2 # source BOARD_LOCAL
3 # spi SPI2
4 # tick_ms 226699
5 # bit 4
6 # edge_mode ORDINARY
7 # points 416
8 x y
9 264 83
10 263 84
11 264 84
12 265 84
13 266 84
14 264 85
15 265 85
16 266 85
17 265 86
18 266 86
19 267 86
20 266 87
21 267 87
22 268 87
23 269 87
24 267 88
25 268 88
26 269 88
27 268 89
28 269 89
29 270 89
30 268 90
31 269 90
32 270 90
33 270 91
34 271 91
35 270 92
36 271 92
37 272 92
38 271 93
39 272 93
40 273 93
41 274 93
42 271 94
43 272 94
44 273 94
45 274 94
46 272 95
47 273 95
48 274 95
49 275 95
50 274 96
51 275 96
52 275 97
53 276 97
54 275 98
55 276 98
56 277 98
57 275 99
58 277 99
59 279 99
60 277 100
61 278 100
62 277 101
63 278 101
64 279 101
65 278 102
66 279 102
67 280 102
68 278 103
69 279 103
70 280 103
71 279 104
72 280 104
73 281 104
74 280 105
75 281 105
76 281 106
77 282 106
78 281 107
79 282 107
80 283 107
81 282 108
82 283 108
83 282 109
84 283 109
85 284 109
86 283 110
87 284 110
88 285 110
89 283 111
90 284 111
91 285 111
92 286 111
93 284 112
94 285 112
95 286 112
96 284 113
97 285 113
98 286 113
99 285 114
100 286 114
101 286 115
102 287 115
103 286 116
104 287 116
105 287 117
106 288 117
107 287 118
108 288 118
109 288 119
110 289 119
111 288 120
112 289 120
113 290 120
114 288 121
115 289 121
116 290 121
117 289 122
118 290 122
119 289 123
120 290 123
121 291 123
122 290 124
123 291 124
124 290 125
125 291 125
126 292 125
127 290 126
128 291 126
129 292 126
130 291 127
131 292 127
132 291 128
133 292 128
134 293 128
135 292 129
136 293 129
137 292 130
138 293 130
139 293 131
140 294 131
141 293 132
142 294 132
143 292 133
144 293 133
145 294 133
146 293 134
147 294 134
148 294 135
149 295 135
150 294 136
151 295 136
152 294 137
153 295 137
154 295 138
155 296 138
156 295 139
157 296 139
158 295 140
159 296 140
160 295 141
161 296 141
162 296 142
163 297 142
164 296 143
165 297 143
166 295 144
167 296 144
168 297 144
169 296 145
170 297 145
171 296 146
172 297 146
173 298 146
174 297 147
175 298 147
176 297 148
177 298 148
178 296 149
179 297 149
180 298 149
181 298 150
182 297 151
183 298 151
184 297 152
185 298 152
186 299 152
187 298 153
188 299 153
189 298 154
190 299 154
191 297 155
192 298 155
193 299 155
194 298 156
195 299 156
196 298 157
197 299 157
198 298 158
199 299 158
200 299 159
201 298 160
202 299 160
203 299 161
204 300 161
205 298 162
206 299 162
207 298 163
208 299 163
209 298 164
210 299 164
211 298 165
212 299 165
213 300 165
214 299 166
215 300 166
216 299 167
217 300 167
218 299 168
219 300 168
220 299 169
221 300 169
222 299 170
223 300 170
224 298 171
225 299 171
226 300 171
227 298 172
228 299 172
229 298 173
230 299 173
231 300 173
232 299 174
233 300 174
234 298 175
235 299 175
236 300 175
237 298 176
238 299 176
239 298 177
240 299 177
241 299 178
242 300 178
243 298 179
244 299 179
245 300 179
246 298 180
247 299 180
248 298 181
249 299 181
250 298 182
251 299 182
252 298 183
253 299 183
254 297 184
255 298 184
256 299 184
257 298 185
258 299 185
259 297 186
260 298 186
261 297 187
262 298 187
263 299 187
264 297 188
265 298 188
266 297 189
267 298 189
268 297 190
269 299 190
270 297 191
271 298 191
272 296 192
273 297 192
274 297 193
275 297 194
276 296 195
277 297 195
278 296 196
279 297 196
280 295 197
281 296 197
282 295 198
283 296 198
284 295 199
285 296 199
286 294 200
287 295 200
288 296 200
289 295 201
290 294 202
291 295 202
292 294 203
293 295 203
294 293 204
295 294 204
296 293 205
297 294 205
298 293 206
299 294 206
300 292 207
301 293 207
302 294 207
303 292 208
304 293 208
305 292 209
306 293 209
307 291 210
308 292 210
309 293 210
310 291 211
311 292 211
312 291 212
313 292 212
314 290 213
315 291 213
316 290 214
317 291 214
318 288 215
319 290 215
320 289 216
321 290 216
322 291 216
323 288 217
324 289 217
325 290 217
326 288 218
327 289 218
328 290 218
329 288 219
330 289 219
331 287 220
332 288 220
333 287 221
334 288 221
335 286 222
336 287 222
337 286 223
338 287 223
339 285 224
340 286 224
341 287 224
342 285 225
343 286 225
344 284 226
345 285 226
346 283 227
347 284 227
348 285 227
349 283 228
350 284 228
351 285 228
352 283 229
353 284 229
354 282 230
355 283 230
356 284 230
357 282 231
358 281 232
359 282 232
360 280 233
361 281 233
362 282 233
363 280 234
364 281 234
365 278 235
366 279 235
367 280 235
368 281 235
369 278 236
370 279 236
371 280 236
372 277 237
373 278 237
374 279 237
375 280 237
376 277 238
377 278 238
378 276 239
379 277 239
380 278 239
381 275 240
382 276 240
383 277 240
384 275 241
385 276 241
386 274 242
387 275 242
388 276 242
389 273 243
390 274 243
391 275 243
392 272 244
393 273 244
394 274 244
395 271 245
396 272 245
397 273 245
398 271 246
399 272 246
400 273 246
401 270 247
402 271 247
403 272 247
404 269 248
405 270 248
406 271 248
407 268 249
408 269 249
409 270 249
410 268 250
411 269 250
412 266 251
413 267 251
414 268 251
415 266 252
416 267 252
417 264 253
418 265 253
419 266 253
420 267 253
421 264 254
422 265 254
423 266 254
424 264 255