telemetryState.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { type LonLatPoint } from '../../utils/projection'
  2. import { type GameSessionStatus } from '../core/gameSessionState'
  3. export interface TelemetryState {
  4. sessionStatus: GameSessionStatus
  5. sessionStartedAt: number | null
  6. sessionEndedAt: number | null
  7. elapsedMs: number
  8. distanceMeters: number
  9. currentSpeedKmh: number | null
  10. averageSpeedKmh: number | null
  11. distanceToTargetMeters: number | null
  12. targetControlId: string | null
  13. targetPoint: LonLatPoint | null
  14. lastGpsPoint: LonLatPoint | null
  15. lastGpsAt: number | null
  16. lastGpsAccuracyMeters: number | null
  17. heartRateBpm: number | null
  18. caloriesKcal: number | null
  19. calorieTrackingAt: number | null
  20. }
  21. export const EMPTY_TELEMETRY_STATE: TelemetryState = {
  22. sessionStatus: 'idle',
  23. sessionStartedAt: null,
  24. sessionEndedAt: null,
  25. elapsedMs: 0,
  26. distanceMeters: 0,
  27. currentSpeedKmh: null,
  28. averageSpeedKmh: null,
  29. distanceToTargetMeters: null,
  30. targetControlId: null,
  31. targetPoint: null,
  32. lastGpsPoint: null,
  33. lastGpsAt: null,
  34. lastGpsAccuracyMeters: null,
  35. heartRateBpm: null,
  36. caloriesKcal: null,
  37. calorieTrackingAt: null,
  38. }