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