Files
flutterApp/lib/features/remote_control/domain/entities/reverse_camera_data.dart

50 lines
1.5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<Object?> get props => [gear, steeringAngle, speed, rearDistanceCm];
}