import 'package:equatable/equatable.dart'; /// 倒车影像数据契约:将来嵌入式实时回传的字段就映射到这里。 /// /// 嵌入式协议对齐清单(按这些语义推送即可): /// - gear:挡位。0=停车/空挡, 1=前进, 2=倒车。 /// - steeringAngle:当前转向角,单位度,范围 -45(左)~+45(右),0=正后。 /// - speed:当前实际速度,单位 m/s(>=0),预留给引导线流速等扩展动画。 /// - rearDistanceCm:后部障碍物距离(厘米),null 表示无测距传感器。 class ReverseCameraData extends Equatable { final int gear; final double steeringAngle; final double speed; final int? rearDistanceCm; const ReverseCameraData({ this.gear = 0, this.steeringAngle = 0, this.speed = 0, this.rearDistanceCm, }); /// 初始/待机态:不显示倒车引导线。 const ReverseCameraData.idle() : gear = 0, steeringAngle = 0, speed = 0, rearDistanceCm = null; /// 是否处于倒车挡(引导线显示的唯一开关)。 bool get isReversing => gear == 2; ReverseCameraData copyWith({ int? gear, double? steeringAngle, double? speed, int? rearDistanceCm, }) { return ReverseCameraData( gear: gear ?? this.gear, steeringAngle: steeringAngle ?? this.steeringAngle, speed: speed ?? this.speed, rearDistanceCm: rearDistanceCm ?? this.rearDistanceCm, ); } @override List get props => [gear, steeringAngle, speed, rearDistanceCm]; }