修复路劲规划暂停和继续和停止的tcp指令的数据格式

This commit is contained in:
2026-03-11 17:15:28 +08:00
parent 89de0bc384
commit f3bcba15b1
4 changed files with 106 additions and 15 deletions

View File

@@ -159,6 +159,7 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
];
// 其他
StreamSubscription? _pathPlanningSub;
@override
void initState() {
@@ -190,6 +191,9 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
}
});
// 🔥 关键修复:开始监听路径规划指令应答
_setupPathPlanningListener();
// 监听地图移动事件,实时更新连线
_mapController.mapEventStream.listen((event) {
if (event is MapEventMove || event is MapEventMoveEnd) {
@@ -205,6 +209,21 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
});
}
// 🔥 核心修复:监听路径规划应答流
void _setupPathPlanningListener() {
debugPrint('🔗 [MapPage] 开始监听路径规划指令应答 (CMD: 0x01)');
_pathPlanningSub = _dispatcher.onPathPlanningResponse().listen(
(packet) {
debugPrint('✅ [MapPage] 收到路径规划应答,准备发送下一个点');
// 这里不需要做任何事情,因为 NetMessageDispatcher 内部已经处理了
// 它会自动从队列中移除已发送的点并触发下一个点
},
onDone: () => debugPrint('⚠️ [MapPage] 路径规划流已结束'),
onError: (e) => debugPrint('❌ [MapPage] 路径规划流错误:$e'),
);
}
// 新增:手动清除本地存储数据
Future<void> _clearLocalData() async {
try {
@@ -916,6 +935,7 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
void dispose() {
_traceManager.reset();
_mapController.dispose();
_pathPlanningSub?.cancel(); // 🔥 取消订阅
super.dispose();
}
@@ -1475,6 +1495,7 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
_traceManager.setMode(TPMode.NAVIGATION);
setState(() {
isStartWork = true; // 🔥 关键:停止作业标志
_workStatus = WorkStatus.working;
});
@@ -1513,6 +1534,7 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
/// 暂停作业
void _pauseWork() async {
setState(() {
isStartWork = false; // 🔥 关键:停止作业标志
_workStatus = WorkStatus.paused;
});
context.read<DevicesCubit>().updateAppState(AppState.none);
@@ -1522,6 +1544,7 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
void _stopWork() async {
setState(() {
isStartWork = false; // 🔥 关键:停止作业标志
_workStatus = WorkStatus.idle;
});
context.read<DevicesCubit>().updateAppState(AppState.none);
@@ -1529,7 +1552,7 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
//修改App的状态
debugPrint('停止作业:${_selectedPlot!.plotName}');
///ToastUtils.showError(context, '作业已停止');
ToastUtils.showError(context, '作业已停止');
}
/// 继续作业