37 lines
1.1 KiB
Dart
37 lines
1.1 KiB
Dart
import '../enums/vehicle_command_type.dart';
|
||
|
||
class VehicleCommand {
|
||
final VehicleCommandType type;
|
||
final Map<String, dynamic>? params;
|
||
final String error;
|
||
|
||
VehicleCommand({required this.type, this.params, this.error = ''});
|
||
|
||
// 从字符串创建命令(用于从API响应解析)
|
||
factory VehicleCommand.fromString(
|
||
String commandStr, Map<String, dynamic>? params, String error) {
|
||
// 将字符串转换为枚举值
|
||
VehicleCommandType type;
|
||
try {
|
||
type = VehicleCommandType.values.firstWhere(
|
||
(e) => e.name == commandStr,
|
||
orElse: () => VehicleCommandType.unknown,
|
||
);
|
||
} catch (e) {
|
||
print('Error parsing command string: $e');
|
||
// 默认为搜车指令,或者你可以选择抛出异常
|
||
type = VehicleCommandType.unknown;
|
||
}
|
||
|
||
return VehicleCommand(type: type, params: params, error: error);
|
||
}
|
||
|
||
// 将命令转换为字符串(用于API请求)
|
||
String get commandString => type.name;
|
||
|
||
@override
|
||
String toString() {
|
||
return 'VehicleCommand(command: ${type.name}, params: $params)';
|
||
}
|
||
}
|