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