Refine telemetry-driven HUD and fitness feedback

This commit is contained in:
2026-03-24 11:24:50 +08:00
parent 2c03d1a702
commit a117a25824
12 changed files with 2071 additions and 211 deletions

View File

@@ -0,0 +1,40 @@
import { type LonLatPoint } from '../../utils/projection'
import { type GameSessionStatus } from '../core/gameSessionState'
export interface TelemetryState {
sessionStatus: GameSessionStatus
sessionStartedAt: number | null
sessionEndedAt: number | null
elapsedMs: number
distanceMeters: number
currentSpeedKmh: number | null
averageSpeedKmh: number | null
distanceToTargetMeters: number | null
targetControlId: string | null
targetPoint: LonLatPoint | null
lastGpsPoint: LonLatPoint | null
lastGpsAt: number | null
lastGpsAccuracyMeters: number | null
heartRateBpm: number | null
caloriesKcal: number | null
calorieTrackingAt: number | null
}
export const EMPTY_TELEMETRY_STATE: TelemetryState = {
sessionStatus: 'idle',
sessionStartedAt: null,
sessionEndedAt: null,
elapsedMs: 0,
distanceMeters: 0,
currentSpeedKmh: null,
averageSpeedKmh: null,
distanceToTargetMeters: null,
targetControlId: null,
targetPoint: null,
lastGpsPoint: null,
lastGpsAt: null,
lastGpsAccuracyMeters: null,
heartRateBpm: null,
caloriesKcal: null,
calorieTrackingAt: null,
}