| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { type LonLatPoint } from '../../utils/projection'
- import { type GameSessionStatus } from '../core/gameSessionState'
- export type DevicePose = 'upright' | 'tilted' | 'flat'
- export type HeadingConfidence = 'low' | 'medium' | 'high'
- 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
- accelerometer: { x: number; y: number; z: number } | null
- accelerometerUpdatedAt: number | null
- accelerometerSampleCount: number
- gyroscope: { x: number; y: number; z: number } | null
- deviceMotion: { alpha: number | null; beta: number | null; gamma: number | null } | null
- deviceHeadingDeg: number | null
- devicePose: DevicePose
- headingConfidence: HeadingConfidence
- 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,
- accelerometer: null,
- accelerometerUpdatedAt: null,
- accelerometerSampleCount: 0,
- gyroscope: null,
- deviceMotion: null,
- deviceHeadingDeg: null,
- devicePose: 'upright',
- headingConfidence: 'low',
- heartRateBpm: null,
- caloriesKcal: null,
- calorieTrackingAt: null,
- }
|