tptrace的mode 缓存

This commit is contained in:
mmc
2026-03-14 20:05:42 +08:00
parent ca511e5729
commit 5b814d065f
2 changed files with 16 additions and 5 deletions

View File

@@ -215,6 +215,10 @@ class TracePoint<T> {
_mode = mode; _mode = mode;
} }
TPMode getMode() {
return _mode;
}
/// 添加/更新轨迹点 /// 添加/更新轨迹点
void upsert(T point, [TPAction act = TPAction.UPDATE]) { void upsert(T point, [TPAction act = TPAction.UPDATE]) {
switch (_mode) { switch (_mode) {

View File

@@ -63,6 +63,7 @@ const String kSavedWorkMode = 'saved_work_mode';
const String kSavedWorkStatus = 'saved_work_status'; // 作业状态(idle/working/paused) const String kSavedWorkStatus = 'saved_work_status'; // 作业状态(idle/working/paused)
const String kSavedIsStartWork = 'saved_is_start_work'; // 是否开始作业 const String kSavedIsStartWork = 'saved_is_start_work'; // 是否开始作业
const String kSavedIsStopWork = 'saved_is_stop_work'; // 是否点击过停止 const String kSavedIsStopWork = 'saved_is_stop_work'; // 是否点击过停止
const String kSavedTPMode = "saved_tp_mode";
// 保持 PlotData 类不变 // 保持 PlotData 类不变
class PlotData { class PlotData {
@@ -250,6 +251,10 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
if (workStatusStr != null) { if (workStatusStr != null) {
_workStatus = WorkStatus.values.firstWhere((e) => e.toString() == workStatusStr, orElse: () => WorkStatus.idle); _workStatus = WorkStatus.values.firstWhere((e) => e.toString() == workStatusStr, orElse: () => WorkStatus.idle);
} }
final modeStr = prefs.getString(kSavedTPMode);
if (modeStr != null) {
_traceManager.setMode(TPMode.values.firstWhere((e) => e.toString() == modeStr));
}
// 2. 恢复是否开始作业 // 2. 恢复是否开始作业
isStartWork = prefs.getBool(kSavedIsStartWork) ?? false; isStartWork = prefs.getBool(kSavedIsStartWork) ?? false;
@@ -293,11 +298,11 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
// 1. 恢复作业面板状态 // 1. 恢复作业面板状态
_isWorkPanelOpen = prefs.getBool(kSavedIsWorkPanelOpen) ?? false; _isWorkPanelOpen = prefs.getBool(kSavedIsWorkPanelOpen) ?? false;
// if (isStartWork && !isStopWork) { // if (isStartWork && !isStopWork) {
// _isWorkPanelOpen = true; // _isWorkPanelOpen = true;
// } else { // } else {
// _isWorkPanelOpen = false; // _isWorkPanelOpen = false;
// } // }
// 2. 恢复作业模式 // 2. 恢复作业模式
workMode = prefs.getString(kSavedWorkMode) ?? "弓字模式"; workMode = prefs.getString(kSavedWorkMode) ?? "弓字模式";
@@ -376,6 +381,8 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
// 3. 保存是否点击过停止 // 3. 保存是否点击过停止
prefs.setBool(kSavedIsStopWork, isStopWork); prefs.setBool(kSavedIsStopWork, isStopWork);
// 保存当前模式到本地缓存
prefs.setString(kSavedTPMode, _traceManager.getMode().toString());
// 4. 保存选中地块 // 4. 保存选中地块
if (_selectedPlot != null) { if (_selectedPlot != null) {