()
| 311 | // --- the tick --- |
| 312 | |
| 313 | private resetSetpoint(): void { |
| 314 | this.azTracker.reset(); |
| 315 | this.elTracker.reset(); |
| 316 | this.lastObservedTs = 0; |
| 317 | // Vision state is target-specific — a stale lock or correction from the |
| 318 | // previous plane must not smear onto the new one. |
| 319 | this.lastDetection = null; |
| 320 | this.tracks.reset(); |
| 321 | this.prevLuma = null; |
| 322 | this.prevAim = null; |
| 323 | this.corrAz = 0; |
| 324 | this.corrEl = 0; |
| 325 | this.corrAzApp = 0; |
| 326 | this.corrElApp = 0; |
| 327 | this.visionGoodSince = 0; |
| 328 | this.ladderIdx = 0; |
| 329 | this.lastLadderAt = 0; |
| 330 | this.lastFocusZoom = 0; |
| 331 | this.lastFocusAt = 0; |
| 332 | this.focusCheckAt = 0; |
| 333 | this.panRateI = 0; |
| 334 | this.tiltRateI = 0; |
| 335 | this.lastPanRateCmd = 0; |
| 336 | this.lastTiltRateCmd = 0; |
| 337 | this.errPanLP = 0; |
| 338 | this.errTiltLP = 0; |
| 339 | } |
| 340 | |
| 341 | private tick(): void { |
| 342 | const now = Date.now(); |
no test coverage detected