Compare commits
No commits in common. "77e6de4c8b5d36e970ed3b9f7e9ddcb7ad947176" and "af1cf9c662db8878d4f6d3af987fd2dc3ff9023d" have entirely different histories.
77e6de4c8b
...
af1cf9c662
@ -30,7 +30,7 @@ public class SarWsAsyncService {
|
|||||||
* @param datName
|
* @param datName
|
||||||
* @param fileData
|
* @param fileData
|
||||||
*/
|
*/
|
||||||
// @Async("commonThreadPool")
|
@Async("commonThreadPool")
|
||||||
public void saveImageDat(Object dirName, String datName, byte[] fileData) {
|
public void saveImageDat(Object dirName, String datName, byte[] fileData) {
|
||||||
String imageSrcPath = sysFileTypeService.getAbsolutePath(FileTypeEnum.SAR_IMAGE_LOW_SRC, dirName, datName);
|
String imageSrcPath = sysFileTypeService.getAbsolutePath(FileTypeEnum.SAR_IMAGE_LOW_SRC, dirName, datName);
|
||||||
FileUtil.createDir(imageSrcPath);
|
FileUtil.createDir(imageSrcPath);
|
||||||
@ -48,7 +48,7 @@ public class SarWsAsyncService {
|
|||||||
* @param image 图像像素
|
* @param image 图像像素
|
||||||
* @param release 是否释放参数 image 资源
|
* @param release 是否释放参数 image 资源
|
||||||
*/
|
*/
|
||||||
// @Async("commonThreadPool")
|
@Async("commonThreadPool")
|
||||||
public void write(String imagePath, Mat image, boolean release) {
|
public void write(String imagePath, Mat image, boolean release) {
|
||||||
OpenCVUtil.write(imagePath, image, true);
|
OpenCVUtil.write(imagePath, image, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -195,7 +195,7 @@ export default {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
detailUav: {
|
detailUav: {
|
||||||
visible: false,
|
visible: true,
|
||||||
id: 1,
|
id: 1,
|
||||||
baseInfo: {
|
baseInfo: {
|
||||||
url: require('@/assets/img/uav.png'),
|
url: require('@/assets/img/uav.png'),
|
||||||
@ -475,12 +475,6 @@ export default {
|
|||||||
historyPictureList = []
|
historyPictureList = []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
'detailUav.visible': {
|
|
||||||
handler: function (nv) {
|
|
||||||
this.$emit('sar-change', nv)
|
|
||||||
},
|
|
||||||
immediate: true,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -1116,8 +1110,6 @@ export default {
|
|||||||
// 测试
|
// 测试
|
||||||
// this.addUavToScene(item)
|
// this.addUavToScene(item)
|
||||||
})
|
})
|
||||||
this.detailUav.id = data.length ? data[0].id : 1
|
|
||||||
this.detailUav.visible = data.length ? true : false
|
|
||||||
taskListResource = data
|
taskListResource = data
|
||||||
this.taskList.data = list
|
this.taskList.data = list
|
||||||
if (this.taskList.data.length) {
|
if (this.taskList.data.length) {
|
||||||
@ -1563,7 +1555,7 @@ export default {
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
stopTaskFly({ id: info.id }).then(res => {
|
stopTaskFly({ id: info.id }).then(res => {
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
// info.status = 2
|
info.status = 2
|
||||||
this.getTaskList()
|
this.getTaskList()
|
||||||
this.$message.success('任务已结束!')
|
this.$message.success('任务已结束!')
|
||||||
this.removeTaskTarget(info.id)
|
this.removeTaskTarget(info.id)
|
||||||
@ -2744,7 +2736,8 @@ export default {
|
|||||||
console.log('SAR波形', JSON.parse(info.body))
|
console.log('SAR波形', JSON.parse(info.body))
|
||||||
let data = JSON.parse(info.body)
|
let data = JSON.parse(info.body)
|
||||||
console.log('id对比', this.detailUav.id, data.payloadId);
|
console.log('id对比', this.detailUav.id, data.payloadId);
|
||||||
if (this.detailUav.visible && this.detailUav.id === data.jobId) {
|
// && this.detailUav.id === data.payloadId
|
||||||
|
if (this.detailUav.visible) {
|
||||||
let channel1False = []
|
let channel1False = []
|
||||||
let channel1Real = []
|
let channel1Real = []
|
||||||
let channel2False = []
|
let channel2False = []
|
||||||
@ -2991,7 +2984,7 @@ export default {
|
|||||||
this.taskList.data[findIndex].statusName = this.jobStatus[data.jobStatus + '']
|
this.taskList.data[findIndex].statusName = this.jobStatus[data.jobStatus + '']
|
||||||
taskListResource[findIndex].statusName = this.jobStatus[data.jobStatus + '']
|
taskListResource[findIndex].statusName = this.jobStatus[data.jobStatus + '']
|
||||||
}
|
}
|
||||||
if (data.jobStatus === 1 && this.detailUav.id === data.jobId) {
|
if (data.jobStatus === 1) {
|
||||||
this.updateUavInfo(data.sarStatus)
|
this.updateUavInfo(data.sarStatus)
|
||||||
}
|
}
|
||||||
this.taskList.data[findIndex].status = data.jobStatus
|
this.taskList.data[findIndex].status = data.jobStatus
|
||||||
@ -3050,11 +3043,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
//#endregion
|
//#endregion
|
||||||
// 打开状态和波形信息展示
|
|
||||||
openSarStatusDetail(data) {
|
|
||||||
this.detailUav.id = data.id
|
|
||||||
this.detailUav.visible = true
|
|
||||||
},
|
|
||||||
|
|
||||||
//#region
|
//#region
|
||||||
handleUavDetailCollapse(actives) {
|
handleUavDetailCollapse(actives) {
|
||||||
|
|||||||
@ -405,14 +405,6 @@
|
|||||||
height: calc(100vh - 620px);
|
height: calc(100vh - 620px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail-uav-wrap {
|
|
||||||
width: 430px;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 5px;
|
|
||||||
right: 10px;
|
|
||||||
height: calc(100vh - 60px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.detail-info {
|
.detail-info {
|
||||||
width: 460px;
|
width: 460px;
|
||||||
//position: fixed;
|
//position: fixed;
|
||||||
@ -1182,8 +1174,8 @@
|
|||||||
|
|
||||||
|
|
||||||
.detail-uav {
|
.detail-uav {
|
||||||
width: 410px;
|
width: 460px;
|
||||||
// position: fixed;
|
position: fixed;
|
||||||
top: 60px;
|
top: 60px;
|
||||||
//bottom: 5px;
|
//bottom: 5px;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
@ -1193,10 +1185,6 @@
|
|||||||
transition: 0.2s ease-in-out;
|
transition: 0.2s ease-in-out;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
::v-deep .dt-card__header {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.detail-uav__content {
|
.detail-uav__content {
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|||||||
@ -73,11 +73,10 @@
|
|||||||
v-for="(item, index) in taskList.data"
|
v-for="(item, index) in taskList.data"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
class="task-item"
|
class="task-item"
|
||||||
@click="openSarStatusDetail(item)"
|
|
||||||
>
|
>
|
||||||
<div class="left-part">
|
<div class="left-part">
|
||||||
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
||||||
<div class="execute-info">
|
<div class="execute-info" @click="openTaskLineDetail(item)">
|
||||||
<span
|
<span
|
||||||
class="execute-type-icon"
|
class="execute-type-icon"
|
||||||
:class="'execute-state-' + item.status"
|
:class="'execute-state-' + item.status"
|
||||||
@ -341,75 +340,74 @@
|
|||||||
</right-slide>
|
</right-slide>
|
||||||
|
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<right-slide class="detail-uav-wrap" v-if="detailUav.visible">
|
<dt-card
|
||||||
<dt-card
|
:class="{
|
||||||
:class="{
|
'detail-uav': true,
|
||||||
'detail-uav': true,
|
'detail-uav__large': isIconModeLarge,
|
||||||
'detail-uav__large': isIconModeLarge,
|
}"
|
||||||
}"
|
icon="iconfont icon-target"
|
||||||
icon="iconfont icon-target"
|
title="详细信息"
|
||||||
title="详细信息"
|
v-if="detailUav.visible"
|
||||||
v-if="detailUav.visible"
|
:visible.sync="detailUav.visible"
|
||||||
:visible.sync="detailUav.visible"
|
:scroll="true"
|
||||||
:scroll="true"
|
:showClose="true"
|
||||||
:showClose="true"
|
:showDivider="false"
|
||||||
:showDivider="false"
|
>
|
||||||
>
|
<div class="detail-uav__content">
|
||||||
<div class="detail-uav__content">
|
<div class="other-info">
|
||||||
<div class="other-info">
|
<el-collapse
|
||||||
<el-collapse
|
v-model="detailUav.activeNames"
|
||||||
v-model="detailUav.activeNames"
|
@change="handleUavDetailCollapse"
|
||||||
@change="handleUavDetailCollapse"
|
>
|
||||||
>
|
<el-collapse-item title="状态信息" name="3">
|
||||||
<el-collapse-item title="状态信息" name="3">
|
<el-tabs v-model="detailUav.activeTab">
|
||||||
<el-tabs v-model="detailUav.activeTab">
|
<el-tab-pane label="DEV" name="DEV">
|
||||||
<el-tab-pane label="DEV" name="DEV">
|
<div
|
||||||
<div
|
class="uav-span-wrap"
|
||||||
class="uav-span-wrap"
|
v-for="item in detailUav.statusInfo.dev"
|
||||||
v-for="item in detailUav.statusInfo.dev"
|
:key="item.name"
|
||||||
:key="item.name"
|
>
|
||||||
>
|
<span>{{ item.name }}:</span>
|
||||||
<span>{{ item.name }}:</span>
|
<span>{{ item.value }}{{ item.unit }}</span>
|
||||||
<span>{{ item.value }}{{ item.unit }}</span>
|
</div>
|
||||||
</div>
|
</el-tab-pane>
|
||||||
</el-tab-pane>
|
<el-tab-pane label="GPS" name="GPS">
|
||||||
<el-tab-pane label="GPS" name="GPS">
|
<div
|
||||||
<div
|
class="uav-span-wrap"
|
||||||
class="uav-span-wrap"
|
v-for="item in detailUav.statusInfo.gps"
|
||||||
v-for="item in detailUav.statusInfo.gps"
|
:key="item.name"
|
||||||
:key="item.name"
|
>
|
||||||
>
|
<span>{{ item.name }}:</span>
|
||||||
<span>{{ item.name }}:</span>
|
<span>{{ item.value }}{{ item.unit }}</span>
|
||||||
<span>{{ item.value }}{{ item.unit }}</span>
|
</div>
|
||||||
</div>
|
</el-tab-pane>
|
||||||
</el-tab-pane>
|
<el-tab-pane label="IMU" name="IMU">
|
||||||
<el-tab-pane label="IMU" name="IMU">
|
<div
|
||||||
<div
|
class="uav-span-wrap"
|
||||||
class="uav-span-wrap"
|
v-for="item in detailUav.statusInfo.imu"
|
||||||
v-for="item in detailUav.statusInfo.imu"
|
:key="item.name"
|
||||||
:key="item.name"
|
>
|
||||||
>
|
<span>{{ item.name }}:</span>
|
||||||
<span>{{ item.name }}:</span>
|
<span>{{ item.value }}{{ item.unit }}</span>
|
||||||
<span>{{ item.value }}{{ item.unit }}</span>
|
</div>
|
||||||
</div>
|
</el-tab-pane>
|
||||||
</el-tab-pane>
|
</el-tabs>
|
||||||
</el-tabs>
|
</el-collapse-item>
|
||||||
</el-collapse-item>
|
<el-collapse-item title="波形信息" name="4">
|
||||||
<el-collapse-item title="波形信息" name="4">
|
<div class="wave-chart">
|
||||||
<div class="wave-chart">
|
<dt-multiple-analysis
|
||||||
<dt-multiple-analysis
|
ref="uavDetailChart"
|
||||||
ref="uavDetailChart"
|
:data="detailUav.chart.data"
|
||||||
:data="detailUav.chart.data"
|
:legend="detailUav.chart.legend"
|
||||||
:legend="detailUav.chart.legend"
|
:tooltip="detailUav.chart.tooltip"
|
||||||
:tooltip="detailUav.chart.tooltip"
|
:title="detailUav.chart.title"
|
||||||
:title="detailUav.chart.title"
|
:grid="detailUav.chart.grid"
|
||||||
:grid="detailUav.chart.grid"
|
:xAxis="detailUav.chart.xAxis"
|
||||||
:xAxis="detailUav.chart.xAxis"
|
:yAxis="detailUav.chart.yAxis"
|
||||||
:yAxis="detailUav.chart.yAxis"
|
></dt-multiple-analysis>
|
||||||
></dt-multiple-analysis>
|
</div>
|
||||||
</div>
|
</el-collapse-item>
|
||||||
</el-collapse-item>
|
<el-collapse-item title="回传图像" name="5">
|
||||||
<!-- <el-collapse-item title="回传图像" name="5">
|
|
||||||
<div class="back-image">
|
<div class="back-image">
|
||||||
<div
|
<div
|
||||||
v-for="item in detailInfo.pictureList"
|
v-for="item in detailInfo.pictureList"
|
||||||
@ -444,12 +442,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-collapse-item> -->
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</dt-card>
|
</div>
|
||||||
</right-slide>
|
</dt-card>
|
||||||
|
|
||||||
<dt-dialog
|
<dt-dialog
|
||||||
:title="taskLineDetail.title"
|
:title="taskLineDetail.title"
|
||||||
|
|||||||
@ -443,8 +443,7 @@ export default {
|
|||||||
visible: false,
|
visible: false,
|
||||||
data: [],
|
data: [],
|
||||||
boatTypeLegend: []
|
boatTypeLegend: []
|
||||||
},
|
}
|
||||||
moveInfoBar: false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -1523,9 +1522,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
//#endregion
|
//#endregion
|
||||||
sarChange(val) {
|
|
||||||
this.moveInfoBar = val
|
|
||||||
},
|
|
||||||
|
|
||||||
//#region ais船
|
//#region ais船
|
||||||
getAisData() {
|
getAisData() {
|
||||||
|
|||||||
@ -66,7 +66,6 @@
|
|||||||
width: 300px;
|
width: 300px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
|
|
||||||
.message-title {
|
.message-title {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -75,19 +74,16 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-bottom: 1px solid $--color-black-3;
|
border-bottom: 1px solid $--color-black-3;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
|
|
||||||
>span {
|
>span {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: $--color-text-1;
|
color: $--color-text-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
>i {
|
>i {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: $--color-text-1;
|
color: $--color-text-1;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-body {
|
.message-body {
|
||||||
//height: 50px;
|
//height: 50px;
|
||||||
|
|
||||||
@ -99,12 +95,10 @@
|
|||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.el-textarea {
|
.el-textarea {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin: 0 10px;
|
margin: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
>i {
|
>i {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: $--color-text-1;
|
color: $--color-text-1;
|
||||||
@ -112,14 +106,12 @@
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-send {
|
.message-send {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
||||||
.el-button {
|
.el-button {
|
||||||
margin: 0 10px;
|
margin: 0 10px;
|
||||||
}
|
}
|
||||||
@ -132,7 +124,3 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-bar-show {
|
|
||||||
right: 430px;
|
|
||||||
}
|
|
||||||
|
|||||||
@ -37,7 +37,6 @@
|
|||||||
ref="twinSituation"
|
ref="twinSituation"
|
||||||
v-if="menus.situation.active"
|
v-if="menus.situation.active"
|
||||||
:visible.sync="menus.situation.active"
|
:visible.sync="menus.situation.active"
|
||||||
@sar-change="sarChange"
|
|
||||||
></twin-situation>
|
></twin-situation>
|
||||||
<task-manage
|
<task-manage
|
||||||
v-if="menus.taskManage.active"
|
v-if="menus.taskManage.active"
|
||||||
@ -59,11 +58,8 @@
|
|||||||
v-if="menus.userList.active"
|
v-if="menus.userList.active"
|
||||||
:visible.sync="menus.userList.active"
|
:visible.sync="menus.userList.active"
|
||||||
></user-list>
|
></user-list>
|
||||||
|
<info-bar v-if="menus.situation.active || menus.taskManage.active" />
|
||||||
|
|
||||||
<info-bar
|
|
||||||
:class="{ 'info-bar-show': moveInfoBar }"
|
|
||||||
v-if="menus.situation.active || menus.taskManage.active"
|
|
||||||
/>
|
|
||||||
<!-- 遮罩 -->
|
<!-- 遮罩 -->
|
||||||
<!-- <dt-loading :visible="loadingCount > 0"></dt-loading> -->
|
<!-- <dt-loading :visible="loadingCount > 0"></dt-loading> -->
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,52 +0,0 @@
|
|||||||
#ifndef __CHSRTPROC_H__
|
|
||||||
#define __CHSRTPROC_H__
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include <conio.h>
|
|
||||||
|
|
||||||
// 输出内存地址点航迹的结构体
|
|
||||||
|
|
||||||
struct MTI_pDot {
|
|
||||||
|
|
||||||
unsigned __int16 tar_no;
|
|
||||||
unsigned __int16 tar_rg;
|
|
||||||
|
|
||||||
__int16 tar_az;
|
|
||||||
__int16 tar_vr;
|
|
||||||
|
|
||||||
__int16 tar_high;
|
|
||||||
unsigned __int16 tar_ampl;
|
|
||||||
|
|
||||||
unsigned __int32 tar_logn;
|
|
||||||
unsigned __int32 tar_lati;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
struct MTI_pTrk {
|
|
||||||
|
|
||||||
unsigned __int16 trk_no;
|
|
||||||
__int16 trk_high;
|
|
||||||
|
|
||||||
__int32 trk_logn;
|
|
||||||
__int32 trk_lati;
|
|
||||||
|
|
||||||
__int16 trk_vel;
|
|
||||||
__int16 trk_heading;
|
|
||||||
|
|
||||||
unsigned __int16 trk_ampl;
|
|
||||||
__int16 nc;
|
|
||||||
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
功能:处理动目标检测和凝聚后和定位的点迹,航迹起始和跟踪和管理
|
|
||||||
输入:dataAr 按照GMTI格式V3.02 表1打包的每个cpi处理的点迹信息和辅助数据,长度8192BYTES;
|
|
||||||
输出1:dataRes 按照GMTI格式V3.02表2输出的航迹信息,如果dataRes全部为0则没有航迹,长度8192字节;
|
|
||||||
输出: outpath: 航迹关联后按照航迹格式的路径( outpath\\GMTIDotInfo_lzx.dat outpath\\GMTITrkInfo_lzx.dat",
|
|
||||||
分别保存点迹和航迹信息,累加输出;
|
|
||||||
*/
|
|
||||||
__declspec(dllexport) void MTIDotProc(unsigned char *dataAr, unsigned char *dataRes, char *outpath);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,14 +0,0 @@
|
|||||||
############ Track Relate Modual Param ##############
|
|
||||||
|
|
||||||
nj_Rwin: 20
|
|
||||||
nj_Awin: 5
|
|
||||||
|
|
||||||
bomen_vmax: 20
|
|
||||||
bomen_vmin: 3
|
|
||||||
bomen_size: 50
|
|
||||||
|
|
||||||
miss_frame_tmp: 4
|
|
||||||
miss_frame_trust: 3
|
|
||||||
NoiseMatrixRg: 100
|
|
||||||
NoiseMatrixAz: 100
|
|
||||||
NoiseSpetrumPowerDensity: 1
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user