diff --git a/src/components/devices/DeviceStatusPage.tsx b/src/components/devices/DeviceStatusPage.tsx index 1255ef6..827d646 100644 --- a/src/components/devices/DeviceStatusPage.tsx +++ b/src/components/devices/DeviceStatusPage.tsx @@ -423,6 +423,20 @@ export default function DeviceStatusPage() { // `webrtc://1.95.137.212/live/livestream/${device?.serialNumber}`, //); const getVal = (val) => val === "no_rain" ? t('devices.rainNo') : (val || '-'); + const fixStatusMap: Record = { + 'no_fix': t('devices.noFix'), + 'single': t('devices.single'), + 'dgnss': t('devices.dgnss'), + 'ins': t('devices.ins'), + 'rtk_fixed': t('devices.rtkFixed'), + 'rtk_float': t('devices.rtkFloat'), + 'single_no_heading': t('devices.singleNoHeading'), + 'dgnss_no_heading': t('devices.dgnssNoHeading'), + 'rtk_fixed_no_heading': t('devices.rtkFixedNoHeading'), + 'rtk_float_no_heading': t('devices.rtkFloatNoHeading'), + } + + const realtimePosition = React.useMemo(() => { // 1. 无人机:优先用 MQTT 实时数据 @@ -1167,11 +1181,7 @@ export default function DeviceStatusPage() { {runningStatus.headingStatus !== undefined ? `${runningStatus.headingStatus == 1 ? t('devices.rtInitialized') : t('devices.uninitialized')}` : '-'} {t('devices.rtPositioning')}: - {runningStatus.qual == 0 ? t('constants.locationInvalid') : - runningStatus.qual == 1 ? t('devices.gpsSingle') : - runningStatus.qual == 2 ? t('devices.dgpsDiff') : - runningStatus.qual == 4 ? t('devices.rtkFixed2') : - runningStatus.qual == 5 ? t('devices.rtkFloat') : t('constants.locationUnknown')} + {runningStatus.fix_status ? fixStatusMap[runningStatus.fix_status] : t('constants.locationUnknown')} {t('devices.rtSatellites')}: {t('devices.satelliteCount', { count: runningStatus.satelliteCnt || 0 })} @@ -1280,11 +1290,8 @@ export default function DeviceStatusPage() { {runningStatus.headingStatus !== undefined ? `${runningStatus.headingStatus == 1 ? t('devices.rtInitialized') : t('devices.uninitialized')}` : '-'} {t('devices.rtPositioning')} - {runningStatus.qual == 0 ? t('constants.locationInvalid') : - runningStatus.qual == 1 ? t('devices.gpsSingle') : - runningStatus.qual == 2 ? t('devices.dgpsDiff') : - runningStatus.qual == 4 ? t('devices.rtkFixed2') : - runningStatus.qual == 5 ? t('devices.rtkFloat') : t('constants.locationUnknown')} + {runningStatus.fix_status ? fixStatusMap[runningStatus.fix_status] : t('constants.locationUnknown')} + {t('devices.rtSatellites')} {t('devices.satelliteCount', { count: runningStatus.satelliteCnt || 0 })} diff --git a/src/components/devices/RobotTaskPage.tsx b/src/components/devices/RobotTaskPage.tsx index 63d3ba2..e0ef2bd 100644 --- a/src/components/devices/RobotTaskPage.tsx +++ b/src/components/devices/RobotTaskPage.tsx @@ -145,6 +145,20 @@ export default function RobotTaskPage() { const [messageApi, contextHolder] = message.useMessage(); const controllerRef = useRef(null); const isFirstConnect = useRef(true); + const fixStatusMap: Record = { + 'no_fix': t('devices.noFix'), + 'single': t('devices.single'), + 'dgnss': t('devices.dgnss'), + 'ins': t('devices.ins'), + 'rtk_fixed': t('devices.rtkFixed'), + 'rtk_float': t('devices.rtkFloat'), + 'single_no_heading': t('devices.singleNoHeading'), + 'dgnss_no_heading': t('devices.dgnssNoHeading'), + 'rtk_fixed_no_heading': t('devices.rtkFixedNoHeading'), + 'rtk_float_no_heading': t('devices.rtkFloatNoHeading'), + } + + const handleFinish = (data) => { setExecute(false); setShowVideo(false); // 任务完成关闭视频 @@ -1268,6 +1282,19 @@ export default function RobotTaskPage() { {t('devices.remoteMode')} )} + {/* const fixStatusMap: Record = { + 'no_fix': t('devices.noFix'), + 'single': t('devices.single'), + 'dgnss': t('devices.dgnss'), + 'ins': t('devices.ins'), + 'rtk_fixed': t('devices.rtkFixed'), + 'rtk_float': t('devices.rtkFloat'), + 'single_no_heading': t('devices.singleNoHeading'), + 'dgnss_no_heading': t('devices.dgnssNoHeading'), + 'rtk_fixed_no_heading': t('devices.rtkFixedNoHeading'), + 'rtk_float_no_heading': t('devices.rtkFloatNoHeading'), + } + */} {t('devices.heading')} @@ -1280,11 +1307,7 @@ export default function RobotTaskPage() { {t('devices.location')} - {(() => { - const qual = robotRealtimePosition?.qual; - const info = getLocationQuality(qual); - return {info.text}; - })()} + {robotRealtimePosition?.fix_status ? fixStatusMap[robotRealtimePosition?.fix_status] : t('constants.locationUnknown')} {/* 视频开关 */} diff --git a/src/locales/en/index.ts b/src/locales/en/index.ts index a7251a0..122f0fd 100644 --- a/src/locales/en/index.ts +++ b/src/locales/en/index.ts @@ -1029,7 +1029,15 @@ const en = { fixed2Video: 'Fixed2 Video 已配', batteryFixed2: '电池 Battery Fixed2', + noFix: 'noFix', + single: 'single', + dgnss: 'dgnss', + ins: 'ins', + singleNoHeading: 'singleNoHeading', + dgnssNoHeading: 'dgnssNoHeading', + rtkFixedNoHeading: 'rtkFixedNoHeading', + rtkFloatNoHeading: 'rtkFloatNoHeading', s62: 'Signal/Satellite', s72: 'Wind Speed', diff --git a/src/locales/zh/index.ts b/src/locales/zh/index.ts index 01b0bad..656fd40 100644 --- a/src/locales/zh/index.ts +++ b/src/locales/zh/index.ts @@ -243,6 +243,16 @@ const zh = { }, devices: { + noFix: '无定位', + single: '单点定位', + dgnss: '差分定位', + ins: '惯导定位', + rtkFixed: 'RTK固定解', + rtkFloat: 'RTK浮点解', + singleNoHeading: '单点定位(无航向)', + dgnssNoHeading: '差分定位(无航向)', + rtkFixedNoHeading: 'RTK固定解(无航向)', + rtkFloatNoHeading: 'RTK浮点解(无航向)', deviceManagement: '设备管理', distributable: '可调度', deviceOverview: '设备总览', @@ -373,7 +383,6 @@ const zh = { currentTemp: '当前温度', humidity: '环境湿度', positionAccuracy: '定位精度', - rtkFixed: 'RTK 固定', networkLatency: '网络延迟', waterRiskWarning: '注意:区域 B 存在积水风险,建议避开', presetRoutes: '预设路线', @@ -809,8 +818,7 @@ const zh = { rthPreset: '返航预设', rtkCount: 'RTK数量', rtkEnvLabel: 'RTK环境标签', - rtkFixed2: 'RTK', - rtkFloat: 'RTK浮点', + rtkFixed2: 'RTK固定', rtkHighPrecision: 'RTK高精度', rtkModeDesc: 'RTK模式描述', rtkStatus: 'RTK状态', @@ -3344,17 +3352,17 @@ const zh = { male: '男', female: '女', notSet: '未设置', - basicInfo: '基础提示', + basicInfo: '基本信息', changePassword: '变更密码', - confirmPasswordPlaceholder: '确认密码占位', + confirmPasswordPlaceholder: '确认密码', confirmPasswordRequired: '确认密码必填', emailInvalid: '邮件无效', emailPlaceholder: '邮件占位', - newPasswordPlaceholder: '新密码占位', - oldPasswordPlaceholder: '旧密码占位', + newPasswordPlaceholder: '新密码', + oldPasswordPlaceholder: '旧密码', passwordLengthError: '密码长度错误', phoneInvalid: '电话无效', - remarkPlaceholder: '备注占位', + remarkPlaceholder: '备注', requestFailed: '请求失败', }, users: {