✨ feat(projects): 更新删除工程提示并添加存储空间监控

- 修改删除工程确认提示,明确说明会永久删除所有测线和测点数据
- 在连续采集过程中每30秒检查一次磁盘空间,低于100MB时自动停止采集并弹窗提醒

📝 docs(user-manual): 添加完整用户手册

- 新增 TEM Receiver 用户手册,涵盖安装、连接、配置、采集、波形查看、测点管理、剖面分析、工程管理、数据导出导入、主题切换、存储管理及常见问题等全部功能说明
This commit is contained in:
2026-06-21 16:58:20 +08:00
parent 5594035dc1
commit e1ca0d8512
3 changed files with 507 additions and 1 deletions
+21
View File
@@ -95,6 +95,9 @@ export function handleIncomingFrame(frame: RawFrame) {
let _lastUIUpdateTime = 0;
const UI_THROTTLE_MS = 150;
let _processing = false;
let _lastDiskCheckTime = 0;
const DISK_CHECK_INTERVAL_MS = 30000;
const MIN_FREE_BYTES = 100 * 1024 * 1024; // 100MB
function processMeasurementPayload(
payload: Uint8Array,
@@ -126,6 +129,24 @@ function processMeasurementPayload(
void StorageService.persistFrame(measurementFrame, dataStore.sessionId);
// Periodic disk space check during continuous acquisition
const now2 = Date.now();
if (now2 - _lastDiskCheckTime > DISK_CHECK_INTERVAL_MS) {
_lastDiskCheckTime = now2;
void (async () => {
try {
const FileSystem = await import('expo-file-system/legacy');
const free = await FileSystem.getFreeDiskStorageAsync();
if (free < MIN_FREE_BYTES) {
const { Alert } = require('react-native');
Alert.alert('存储空间不足', `剩余空间不足 100MB,已自动停止采集。\n请清理手机存储或导出数据后删除旧数据。`);
void deviceStop();
devStore.setDeviceStatus('idle');
}
} catch {}
})();
}
const isSingle = devStore.deviceStatus === 'single';
const now = Date.now();
if (isSingle || now - _lastUIUpdateTime >= UI_THROTTLE_MS) {