All files / src/runtime types.ts

0% Statements 0/0
0% Branches 1/1
0% Functions 1/1
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65                                                                                                                                 
import { DetectedColorName } from '../sensors/sensor-manager';
import { MotorPort } from '../physics/motor-controller';
 
export interface TelemetryState {
  timeSeconds: number;
  matchTimerSeconds: number; // 150s (2:30) match timer
  fps: number;
  physicsHz: number;
  robot: {
    x: number; // meters
    y: number;
    z: number;
    yawDegrees: number;
  };
  motors: {
    left: {
      port: MotorPort;
      degrees: number;
      speed: number;
      targetPercent?: number;
      status?: 'IDLE' | 'RUNNING' | 'BRAKING';
    };
    right: {
      port: MotorPort;
      degrees: number;
      speed: number;
      targetPercent?: number;
      status?: 'IDLE' | 'RUNNING' | 'BRAKING';
    };
    all?: Record<
      string,
      {
        port: MotorPort;
        degrees: number;
        speed: number;
        targetPercent?: number;
        status?: 'IDLE' | 'RUNNING' | 'BRAKING';
      }
    >;
  };
  sensors: {
    colorC: {
      reflectedLight: number;
      color: DetectedColorName;
      rgb: [number, number, number];
    };
    colorD: {
      reflectedLight: number;
      color: DetectedColorName;
      rgb: [number, number, number];
    };
    distanceCm: number;
    gyroYaw?: number;
  };
}
 
export type ExecutionState = 'IDLE' | 'RUNNING' | 'PAUSED' | 'ERROR' | 'FINISHED';
 
export interface SpawnPose {
  x: number;
  y: number;
  z: number;
  yawDegrees: number;
}