From 3667807a7b7418efc090ee3fa6a6b734bc3080bf Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Wed, 13 Sep 2023 20:36:29 +0800
Subject: [PATCH] Merge branch 'develop' of http://s16s652780.51mypc.cn:49896/r/yskj/iot_drone_web into develop
---
src/store/index.ts | 96 +++++++++++++++++++++++++++++++----------------
1 files changed, 63 insertions(+), 33 deletions(-)
diff --git a/src/store/index.ts b/src/store/index.ts
index bdcd972..56d32af 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -4,12 +4,16 @@
import { Device, DeviceHms, DeviceOsd, DeviceStatus, DockOsd, GatewayOsd, OSDVisible } from '../types/device'
import { getLayers } from '/@/api/layer'
import { LayerType } from '/@/types/mapLayer'
-import { ETaskStatus, TaskInfo, WaylineFile } from '/@/types/wayline'
+import { WaylineFile } from '/@/types/wayline'
+import getter from './getters'
+import { DevicesCmdExecuteInfo } from '/@/types/device-cmd'
+import map from './map'
+import common from '/@/store/common'
const initStateFunc = () => ({
Layers: [
{
- name: 'default',
+ name: '默认',
id: '',
is_distributed: true,
elements: [],
@@ -18,7 +22,7 @@
type: 1
},
{
- name: 'share',
+ name: '共享',
id: '',
is_distributed: true,
elements: [],
@@ -64,15 +68,16 @@
[sn: string]: DockOsd
},
currentSn: '',
- currentType: ''
+ currentType: -1
},
- osdVisible: {
+ osdVisible: { // osd 显示设备相关信息
sn: '',
callsign: '',
model: '',
visible: false,
gateway_sn: '',
is_dock: false,
+ payloads: null
} as OSDVisible,
waylineInfo: {
@@ -80,14 +85,14 @@
dockInfo: {
} as Device,
- taskProgressInfo: {
-
- } as {
- [bid: string]: TaskInfo
- },
hmsInfo: {} as {
[sn: string]: DeviceHms[]
- }
+ },
+ // 机场指令执行状态信息
+ devicesCmdExecuteInfo: {
+ } as DevicesCmdExecuteInfo,
+ mqttState: null as any, // mqtt 实例
+ clientId: '', // mqtt 连接 唯一客户端id
})
export type RootStateType = ReturnType<typeof initStateFunc>
@@ -109,19 +114,26 @@
state.deviceState.currentType = EDeviceTypeName.Gateway
},
SET_DOCK_INFO (state, info) {
+ if (Object.keys(info.host).length === 0) {
+ return
+ }
+ if (!state.deviceState.dockInfo[info.sn]) {
+ state.deviceState.dockInfo[info.sn] = { } as DockOsd
+ }
state.deviceState.currentSn = info.sn
state.deviceState.currentType = EDeviceTypeName.Dock
const dock = state.deviceState.dockInfo[info.sn]
- if (info.host.sdr && state.deviceState.dockInfo[info.sn]) {
- dock.sdr = info.host.sdr
- dock.media_file_detail = info.host.media_file_detail
+ if (info.host.mode_code !== undefined) {
+ dock.basic_osd = info.host
return
}
- const sdr = dock?.sdr
- const mediaFileDetail = dock?.media_file_detail
- state.deviceState.dockInfo[info.sn] = info.host
- state.deviceState.dockInfo[info.sn].sdr = sdr
- state.deviceState.dockInfo[info.sn].media_file_detail = mediaFileDetail
+ if (info.host.sdr) {
+ dock.link_osd = info.host
+ return
+ }
+ if (info.host.job_number !== undefined) {
+ dock.work_osd = info.host
+ }
},
SET_DRAW_VISIBLE_INFO (state, bool) {
state.drawVisible = bool
@@ -144,7 +156,6 @@
delete state.deviceState.deviceInfo[info.sn]
delete state.deviceState.dockInfo[info.sn]
delete state.hmsInfo[info.sn]
-
// delete state.markerInfo.coverMap[info.sn]
// delete state.markerInfo.pathMap[info.sn]
},
@@ -157,21 +168,35 @@
SET_SELECT_DOCK_INFO (state, info) {
state.dockInfo = info
},
- SET_FLIGHT_TASK_PROGRESS (state, info) {
- const taskInfo: TaskInfo = info.output
-
- if (taskInfo.status === ETaskStatus.OK || taskInfo.status === ETaskStatus.FAILED) {
- taskInfo.status = taskInfo.status.concat('(Code:').concat(info.result).concat(')')
- setTimeout(() => {
- delete state.taskProgressInfo[info.bid]
- }, 60000)
- }
- state.taskProgressInfo[info.bid] = info.output
- },
SET_DEVICE_HMS_INFO (state, info) {
const hmsList: Array<DeviceHms> = state.hmsInfo[info.sn]
state.hmsInfo[info.sn] = info.host.concat(hmsList ?? [])
- }
+ },
+ SET_DEVICES_CMD_EXECUTE_INFO (state, info) { // 保存设备指令ws消息推送
+ if (!info.sn) {
+ return
+ }
+ if (state.devicesCmdExecuteInfo[info.sn]) {
+ const index = state.devicesCmdExecuteInfo[info.sn].findIndex(cmdExecuteInfo => cmdExecuteInfo.biz_code === info.biz_code)
+ if (index >= 0) {
+ // 丢弃前面的消息
+ if (state.devicesCmdExecuteInfo[info.sn][index].timestamp > info.timestamp) {
+ return
+ }
+ state.devicesCmdExecuteInfo[info.sn][index] = info
+ } else {
+ state.devicesCmdExecuteInfo[info.sn].push(info)
+ }
+ } else {
+ state.devicesCmdExecuteInfo[info.sn] = [info]
+ }
+ },
+ SET_MQTT_STATE (state, mqttState) {
+ state.mqttState = mqttState
+ },
+ SET_CLIENT_ID (state, clientId) {
+ state.clientId = clientId
+ },
}
const actions: ActionTree<RootStateType, RootStateType> = {
@@ -218,7 +243,12 @@
state: initStateFunc,
getters,
mutations,
- actions
+ actions,
+ modules: {
+ getter,
+ map,
+ common
+ },
}
const rootStore = createStore(storeOptions)
--
Gitblit v1.9.3