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
+452
View File
@@ -0,0 +1,452 @@
# saved_on,DATA
# master_file,R20705P0.CSV
# remote_begin,BEGIN_REMOTE_CSV SOURCE=BOARD_REMOTE SPI=2 BIT=4 POINTS=442 MODE=ORDINARY STATUS=OK
# source,BOARD_REMOTE
# spi,SPI2
# tick_ms,234271
# bit,4
# edge_mode,ORDINARY
# points,442
x,y
89,77
90,77
91,77
87,78
88,78
89,78
90,78
87,79
88,79
89,79
86,80
87,80
88,80
89,80
85,81
86,81
87,81
84,82
85,82
86,82
83,83
84,83
85,83
83,84
84,84
82,85
83,85
84,85
81,86
82,86
83,86
80,87
81,87
82,87
80,88
81,88
79,89
80,89
81,89
78,90
79,90
80,90
78,91
79,91
80,91
76,92
77,92
78,92
76,93
77,93
78,93
75,94
76,94
77,94
75,95
76,95
74,96
75,96
76,96
73,97
74,97
75,97
72,98
73,98
74,98
75,98
72,99
73,99
71,100
72,100
73,100
74,100
71,101
72,101
70,102
71,102
72,102
70,103
71,103
72,103
70,104
71,104
68,105
69,105
70,105
68,106
69,106
68,107
69,107
70,107
67,108
68,108
66,109
67,109
68,109
66,110
67,110
68,110
65,111
66,111
67,111
64,112
65,112
66,112
67,112
65,113
66,113
65,114
66,114
64,115
65,115
66,115
63,116
64,116
65,116
64,117
63,118
64,118
63,119
62,120
63,120
62,121
63,121
61,122
62,122
61,123
62,123
63,123
61,124
62,124
60,125
61,125
62,125
60,126
61,126
60,127
61,127
59,128
60,128
61,128
59,129
60,129
59,130
60,130
58,131
59,131
60,131
59,132
58,133
59,133
58,134
59,134
58,135
59,135
57,136
58,136
59,136
57,137
58,137
59,137
58,138
57,139
58,139
56,140
57,140
56,141
57,141
58,141
56,142
57,142
56,143
57,143
58,143
56,144
57,144
56,145
57,145
55,146
56,146
57,146
55,147
56,147
57,147
55,148
56,148
55,149
56,149
57,149
55,150
56,150
55,151
56,151
55,152
56,152
57,152
54,153
55,153
56,153
54,154
55,154
56,154
55,155
56,155
55,156
56,156
55,157
56,157
55,158
56,158
54,159
55,159
56,159
54,160
55,160
55,161
56,161
54,162
55,162
56,162
54,163
55,163
56,163
54,164
55,164
56,164
54,165
55,165
56,165
55,166
56,166
54,167
55,167
56,167
55,168
56,168
54,169
55,169
56,169
55,170
55,171
56,171
54,172
55,172
56,172
57,172
55,173
56,173
55,174
56,174
57,174
55,175
56,175
55,176
56,176
57,176
55,177
56,177
56,178
55,179
56,179
57,179
55,180
56,180
57,180
56,181
57,181
56,182
57,182
58,182
57,183
56,184
57,184
58,184
57,185
58,185
58,186
57,187
58,187
59,187
57,188
58,188
59,188
57,189
58,189
57,190
58,190
59,190
58,191
59,191
58,192
59,192
58,193
59,193
60,193
59,194
60,194
59,195
60,195
61,195
59,196
60,196
61,196
59,197
60,197
61,197
62,197
60,198
61,198
60,199
61,199
61,200
62,200
61,201
62,201
60,202
61,202
62,202
63,202
61,203
62,203
63,204
64,204
62,205
64,205
62,206
63,206
64,206
65,206
63,207
64,207
63,208
64,208
65,208
64,209
65,209
66,209
64,210
65,210
65,211
66,211
65,212
66,212
67,212
66,213
67,213
68,213
66,214
67,214
68,214
66,215
67,215
68,215
67,216
68,216
67,217
68,217
69,217
70,217
68,218
69,218
70,218
68,219
69,219
69,220
70,220
71,220
70,221
71,221
72,221
71,222
72,222
71,223
72,223
73,223
71,224
72,224
73,224
72,225
73,225
74,225
72,226
73,226
74,226
73,227
74,227
75,227
73,228
74,228
75,228
74,229
75,229
75,230
76,230
76,231
77,231
77,232
78,232
79,232
77,233
78,233
79,233
78,234
79,234
80,234
79,236
80,236
81,236
80,237
81,237
82,237
81,238
82,238
83,238
82,239
83,239
85,239
82,240
83,240
84,240
84,241
85,241
84,242
85,242
86,242
85,243
86,243
87,243
86,244
87,244
88,244
86,245
87,245
88,245
89,245
87,246
88,246
89,246
90,246
91,246
89,247
90,247
91,247
1 # saved_on DATA
2 # master_file R20705P0.CSV
3 # remote_begin BEGIN_REMOTE_CSV SOURCE=BOARD_REMOTE SPI=2 BIT=4 POINTS=442 MODE=ORDINARY STATUS=OK
4 # source BOARD_REMOTE
5 # spi SPI2
6 # tick_ms 234271
7 # bit 4
8 # edge_mode ORDINARY
9 # points 442
10 x y
11 89 77
12 90 77
13 91 77
14 87 78
15 88 78
16 89 78
17 90 78
18 87 79
19 88 79
20 89 79
21 86 80
22 87 80
23 88 80
24 89 80
25 85 81
26 86 81
27 87 81
28 84 82
29 85 82
30 86 82
31 83 83
32 84 83
33 85 83
34 83 84
35 84 84
36 82 85
37 83 85
38 84 85
39 81 86
40 82 86
41 83 86
42 80 87
43 81 87
44 82 87
45 80 88
46 81 88
47 79 89
48 80 89
49 81 89
50 78 90
51 79 90
52 80 90
53 78 91
54 79 91
55 80 91
56 76 92
57 77 92
58 78 92
59 76 93
60 77 93
61 78 93
62 75 94
63 76 94
64 77 94
65 75 95
66 76 95
67 74 96
68 75 96
69 76 96
70 73 97
71 74 97
72 75 97
73 72 98
74 73 98
75 74 98
76 75 98
77 72 99
78 73 99
79 71 100
80 72 100
81 73 100
82 74 100
83 71 101
84 72 101
85 70 102
86 71 102
87 72 102
88 70 103
89 71 103
90 72 103
91 70 104
92 71 104
93 68 105
94 69 105
95 70 105
96 68 106
97 69 106
98 68 107
99 69 107
100 70 107
101 67 108
102 68 108
103 66 109
104 67 109
105 68 109
106 66 110
107 67 110
108 68 110
109 65 111
110 66 111
111 67 111
112 64 112
113 65 112
114 66 112
115 67 112
116 65 113
117 66 113
118 65 114
119 66 114
120 64 115
121 65 115
122 66 115
123 63 116
124 64 116
125 65 116
126 64 117
127 63 118
128 64 118
129 63 119
130 62 120
131 63 120
132 62 121
133 63 121
134 61 122
135 62 122
136 61 123
137 62 123
138 63 123
139 61 124
140 62 124
141 60 125
142 61 125
143 62 125
144 60 126
145 61 126
146 60 127
147 61 127
148 59 128
149 60 128
150 61 128
151 59 129
152 60 129
153 59 130
154 60 130
155 58 131
156 59 131
157 60 131
158 59 132
159 58 133
160 59 133
161 58 134
162 59 134
163 58 135
164 59 135
165 57 136
166 58 136
167 59 136
168 57 137
169 58 137
170 59 137
171 58 138
172 57 139
173 58 139
174 56 140
175 57 140
176 56 141
177 57 141
178 58 141
179 56 142
180 57 142
181 56 143
182 57 143
183 58 143
184 56 144
185 57 144
186 56 145
187 57 145
188 55 146
189 56 146
190 57 146
191 55 147
192 56 147
193 57 147
194 55 148
195 56 148
196 55 149
197 56 149
198 57 149
199 55 150
200 56 150
201 55 151
202 56 151
203 55 152
204 56 152
205 57 152
206 54 153
207 55 153
208 56 153
209 54 154
210 55 154
211 56 154
212 55 155
213 56 155
214 55 156
215 56 156
216 55 157
217 56 157
218 55 158
219 56 158
220 54 159
221 55 159
222 56 159
223 54 160
224 55 160
225 55 161
226 56 161
227 54 162
228 55 162
229 56 162
230 54 163
231 55 163
232 56 163
233 54 164
234 55 164
235 56 164
236 54 165
237 55 165
238 56 165
239 55 166
240 56 166
241 54 167
242 55 167
243 56 167
244 55 168
245 56 168
246 54 169
247 55 169
248 56 169
249 55 170
250 55 171
251 56 171
252 54 172
253 55 172
254 56 172
255 57 172
256 55 173
257 56 173
258 55 174
259 56 174
260 57 174
261 55 175
262 56 175
263 55 176
264 56 176
265 57 176
266 55 177
267 56 177
268 56 178
269 55 179
270 56 179
271 57 179
272 55 180
273 56 180
274 57 180
275 56 181
276 57 181
277 56 182
278 57 182
279 58 182
280 57 183
281 56 184
282 57 184
283 58 184
284 57 185
285 58 185
286 58 186
287 57 187
288 58 187
289 59 187
290 57 188
291 58 188
292 59 188
293 57 189
294 58 189
295 57 190
296 58 190
297 59 190
298 58 191
299 59 191
300 58 192
301 59 192
302 58 193
303 59 193
304 60 193
305 59 194
306 60 194
307 59 195
308 60 195
309 61 195
310 59 196
311 60 196
312 61 196
313 59 197
314 60 197
315 61 197
316 62 197
317 60 198
318 61 198
319 60 199
320 61 199
321 61 200
322 62 200
323 61 201
324 62 201
325 60 202
326 61 202
327 62 202
328 63 202
329 61 203
330 62 203
331 63 204
332 64 204
333 62 205
334 64 205
335 62 206
336 63 206
337 64 206
338 65 206
339 63 207
340 64 207
341 63 208
342 64 208
343 65 208
344 64 209
345 65 209
346 66 209
347 64 210
348 65 210
349 65 211
350 66 211
351 65 212
352 66 212
353 67 212
354 66 213
355 67 213
356 68 213
357 66 214
358 67 214
359 68 214
360 66 215
361 67 215
362 68 215
363 67 216
364 68 216
365 67 217
366 68 217
367 69 217
368 70 217
369 68 218
370 69 218
371 70 218
372 68 219
373 69 219
374 69 220
375 70 220
376 71 220
377 70 221
378 71 221
379 72 221
380 71 222
381 72 222
382 71 223
383 72 223
384 73 223
385 71 224
386 72 224
387 73 224
388 72 225
389 73 225
390 74 225
391 72 226
392 73 226
393 74 226
394 73 227
395 74 227
396 75 227
397 73 228
398 74 228
399 75 228
400 74 229
401 75 229
402 75 230
403 76 230
404 76 231
405 77 231
406 77 232
407 78 232
408 79 232
409 77 233
410 78 233
411 79 233
412 78 234
413 79 234
414 80 234
415 79 236
416 80 236
417 81 236
418 80 237
419 81 237
420 82 237
421 81 238
422 82 238
423 83 238
424 82 239
425 83 239
426 85 239
427 82 240
428 83 240
429 84 240
430 84 241
431 85 241
432 84 242
433 85 242
434 86 242
435 85 243
436 86 243
437 87 243
438 86 244
439 87 244
440 88 244
441 86 245
442 87 245
443 88 245
444 89 245
445 87 246
446 88 246
447 89 246
448 90 246
449 91 246
450 89 247
451 90 247
452 91 247