From 179f11992b641a84c9e51b2ca6c77451904a458e Mon Sep 17 00:00:00 2001 From: Songzex <2402265378@qq.com> Date: Wed, 18 Mar 2026 13:03:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=BF=9C=E7=A8=8B=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E9=A1=B5=E9=9D=A2=E4=B8=AD=E6=80=A5=E5=81=9C=E7=9A=84?= =?UTF-8?q?=E9=95=BF=E6=8C=89=E9=80=89=E4=B8=AD=E7=B1=BB=E5=88=AB=E7=9A=84?= =?UTF-8?q?=E6=93=8D=E4=BD=9C-=E5=BE=85=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote_control_repository_impl.dart | 5 +++-- .../presentation/bloc/remote_control_cubit.dart | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/features/remote_control/data/repositories/remote_control_repository_impl.dart b/lib/features/remote_control/data/repositories/remote_control_repository_impl.dart index 666ac143..7c8f9acf 100644 --- a/lib/features/remote_control/data/repositories/remote_control_repository_impl.dart +++ b/lib/features/remote_control/data/repositories/remote_control_repository_impl.dart @@ -36,7 +36,7 @@ class RemoteControlRepositoryImpl implements RemoteControlRepository { debugPrint('🎮 [摇杆数据] originX: ${status.originX}, originY: ${status.originY}'); debugPrint('⚙️ [电机速度] left: ${speeds['left']}, right: ${speeds['right']}'); - + debugPrint('🚨 [急停状态] emergency: ${status.isEmergency ? 1 : 0}'); // 2. 调用 Codec:仅生成协议要求的 8 字节 Payload 负载数据 final payload = MachineProtocolCodec.encodeRemoteControlPayload( @@ -48,13 +48,14 @@ class RemoteControlRepositoryImpl implements RemoteControlRepository { emergency: status.isEmergency ? 1 : 0, ); debugPrint('📦 [发送数据] payload: ${payload}'); - + debugPrint('📦 [发送数据] emergency 字节值:${payload[7]}'); // 3. 调用 TcpClient:发送指令。 // TcpClient.sendRaw 会自动帮你加上 [0xAB, 0xAA] 头和 [0xAA, 0xAB] 尾 _tcpClient.sendRaw( MachineProtocolConstants.cmdRemoteControl, // 这里通常是 0x00 payload, ); + debugPrint('✅ [TCP] 指令已发送'); } @override diff --git a/lib/features/remote_control/presentation/bloc/remote_control_cubit.dart b/lib/features/remote_control/presentation/bloc/remote_control_cubit.dart index cd30fc79..a519114c 100644 --- a/lib/features/remote_control/presentation/bloc/remote_control_cubit.dart +++ b/lib/features/remote_control/presentation/bloc/remote_control_cubit.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:ffi'; +import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:maibu_satabot_v2/features/remote_control/data/models/running_status_model.dart'; import 'package:maibu_satabot_v2/features/remote_control/presentation/bloc/remote_control_state.dart'; @@ -134,13 +135,19 @@ class RemoteControlCubit extends Cubit { // 4. 更新功能开关 (比如割刀速度、灯光、点火等) void updateFunction({int? mower, int? lift, int? ignition, bool? emergency}) { + debugPrint('🔧 [updateFunction] 调用 - mower: $mower, lift: $lift, ignition: $ignition, emergency: $emergency'); final updatedEntity = state.controlEntity.copyWith( mower: mower, lift: lift, ignition: ignition, emergency: emergency, ); - emit(state.copyWith(controlEntity: updatedEntity)); + //emit(state.copyWith(controlEntity: updatedEntity)); + emit(state.copyWith( + controlEntity: updatedEntity, + isEmergency: emergency ?? state.isEmergency, + )); + debugPrint('✅ [updateFunction] 状态已更新并 emit'); } void updateOriginY(int y) { @@ -186,7 +193,10 @@ class RemoteControlCubit extends Cubit { void updateChassisLift(int i) {} - void updateEmergency(bool bool) {} + void updateEmergency(bool bool) { + debugPrint('🚨 [急停] ${bool ? "触发急停!" : "解除急停"}'); + updateFunction(emergency: bool); + } void respondPermission(bool bool, String deviceId) { emit(state.copyWith(showPermissionRequestDialog: false)); @@ -243,16 +253,19 @@ class RemoteControlCubit extends Cubit { } /// 发送底盘指令 void sendChassisCommand(int i) { + debugPrint(' [底盘指令] ${i}'); updateFunction(lift: i); } /// 发送割刀指令 void sendMowerCommand(int i) { + debugPrint(' [割刀指令] ${i}'); updateFunction(mower: i); } /// 发送点火指令 void sendFireCommand(int i) { //void updateFunction({int? mower, int? lift, int? ignition, bool? emergency}) // updateFunction(mower:0, lift: 0, ignition: i, emergency: false); + debugPrint(' [点火指令] ${i}'); updateFunction(ignition: i); }