修复路劲规划暂停和继续和停止的tcp指令的数据格式
This commit is contained in:
@@ -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, '作业已停止');
|
||||
}
|
||||
|
||||
/// 继续作业
|
||||
|
||||
Reference in New Issue
Block a user