Compare commits
5 Commits
af1cf9c662
...
77e6de4c8b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77e6de4c8b | ||
|
|
ec5eb9a075 | ||
|
|
29c0e0c29d | ||
|
|
ca8852c311 | ||
|
|
0158cabf7b |
@ -30,7 +30,7 @@ public class SarWsAsyncService {
|
||||
* @param datName
|
||||
* @param fileData
|
||||
*/
|
||||
@Async("commonThreadPool")
|
||||
// @Async("commonThreadPool")
|
||||
public void saveImageDat(Object dirName, String datName, byte[] fileData) {
|
||||
String imageSrcPath = sysFileTypeService.getAbsolutePath(FileTypeEnum.SAR_IMAGE_LOW_SRC, dirName, datName);
|
||||
FileUtil.createDir(imageSrcPath);
|
||||
@ -48,7 +48,7 @@ public class SarWsAsyncService {
|
||||
* @param image 图像像素
|
||||
* @param release 是否释放参数 image 资源
|
||||
*/
|
||||
@Async("commonThreadPool")
|
||||
// @Async("commonThreadPool")
|
||||
public void write(String imagePath, Mat image, boolean release) {
|
||||
OpenCVUtil.write(imagePath, image, true);
|
||||
}
|
||||
|
||||
@ -195,7 +195,7 @@ export default {
|
||||
]
|
||||
},
|
||||
detailUav: {
|
||||
visible: true,
|
||||
visible: false,
|
||||
id: 1,
|
||||
baseInfo: {
|
||||
url: require('@/assets/img/uav.png'),
|
||||
@ -475,6 +475,12 @@ export default {
|
||||
historyPictureList = []
|
||||
}
|
||||
}
|
||||
},
|
||||
'detailUav.visible': {
|
||||
handler: function (nv) {
|
||||
this.$emit('sar-change', nv)
|
||||
},
|
||||
immediate: true,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@ -1110,6 +1116,8 @@ export default {
|
||||
// 测试
|
||||
// this.addUavToScene(item)
|
||||
})
|
||||
this.detailUav.id = data.length ? data[0].id : 1
|
||||
this.detailUav.visible = data.length ? true : false
|
||||
taskListResource = data
|
||||
this.taskList.data = list
|
||||
if (this.taskList.data.length) {
|
||||
@ -1555,7 +1563,7 @@ export default {
|
||||
}).then(res => {
|
||||
stopTaskFly({ id: info.id }).then(res => {
|
||||
if (res.data.code === 200) {
|
||||
info.status = 2
|
||||
// info.status = 2
|
||||
this.getTaskList()
|
||||
this.$message.success('任务已结束!')
|
||||
this.removeTaskTarget(info.id)
|
||||
@ -2736,8 +2744,7 @@ export default {
|
||||
console.log('SAR波形', JSON.parse(info.body))
|
||||
let data = JSON.parse(info.body)
|
||||
console.log('id对比', this.detailUav.id, data.payloadId);
|
||||
// && this.detailUav.id === data.payloadId
|
||||
if (this.detailUav.visible) {
|
||||
if (this.detailUav.visible && this.detailUav.id === data.jobId) {
|
||||
let channel1False = []
|
||||
let channel1Real = []
|
||||
let channel2False = []
|
||||
@ -2984,7 +2991,7 @@ export default {
|
||||
this.taskList.data[findIndex].statusName = this.jobStatus[data.jobStatus + '']
|
||||
taskListResource[findIndex].statusName = this.jobStatus[data.jobStatus + '']
|
||||
}
|
||||
if (data.jobStatus === 1) {
|
||||
if (data.jobStatus === 1 && this.detailUav.id === data.jobId) {
|
||||
this.updateUavInfo(data.sarStatus)
|
||||
}
|
||||
this.taskList.data[findIndex].status = data.jobStatus
|
||||
@ -3043,7 +3050,11 @@ export default {
|
||||
}
|
||||
},
|
||||
//#endregion
|
||||
|
||||
// 打开状态和波形信息展示
|
||||
openSarStatusDetail(data) {
|
||||
this.detailUav.id = data.id
|
||||
this.detailUav.visible = true
|
||||
},
|
||||
|
||||
//#region
|
||||
handleUavDetailCollapse(actives) {
|
||||
|
||||
@ -405,6 +405,14 @@
|
||||
height: calc(100vh - 620px);
|
||||
}
|
||||
|
||||
.detail-uav-wrap {
|
||||
width: 430px;
|
||||
position: fixed;
|
||||
bottom: 5px;
|
||||
right: 10px;
|
||||
height: calc(100vh - 60px);
|
||||
}
|
||||
|
||||
.detail-info {
|
||||
width: 460px;
|
||||
//position: fixed;
|
||||
@ -1174,8 +1182,8 @@
|
||||
|
||||
|
||||
.detail-uav {
|
||||
width: 460px;
|
||||
position: fixed;
|
||||
width: 410px;
|
||||
// position: fixed;
|
||||
top: 60px;
|
||||
//bottom: 5px;
|
||||
right: 10px;
|
||||
@ -1185,6 +1193,10 @@
|
||||
transition: 0.2s ease-in-out;
|
||||
z-index: 2;
|
||||
|
||||
::v-deep .dt-card__header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.detail-uav__content {
|
||||
padding-right: 8px;
|
||||
box-sizing: border-box;
|
||||
|
||||
@ -73,10 +73,11 @@
|
||||
v-for="(item, index) in taskList.data"
|
||||
:key="item.id"
|
||||
class="task-item"
|
||||
@click="openSarStatusDetail(item)"
|
||||
>
|
||||
<div class="left-part">
|
||||
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
||||
<div class="execute-info" @click="openTaskLineDetail(item)">
|
||||
<div class="execute-info">
|
||||
<span
|
||||
class="execute-type-icon"
|
||||
:class="'execute-state-' + item.status"
|
||||
@ -340,74 +341,75 @@
|
||||
</right-slide>
|
||||
|
||||
<!-- 详情 -->
|
||||
<dt-card
|
||||
:class="{
|
||||
'detail-uav': true,
|
||||
'detail-uav__large': isIconModeLarge,
|
||||
}"
|
||||
icon="iconfont icon-target"
|
||||
title="详细信息"
|
||||
v-if="detailUav.visible"
|
||||
:visible.sync="detailUav.visible"
|
||||
:scroll="true"
|
||||
:showClose="true"
|
||||
:showDivider="false"
|
||||
>
|
||||
<div class="detail-uav__content">
|
||||
<div class="other-info">
|
||||
<el-collapse
|
||||
v-model="detailUav.activeNames"
|
||||
@change="handleUavDetailCollapse"
|
||||
>
|
||||
<el-collapse-item title="状态信息" name="3">
|
||||
<el-tabs v-model="detailUav.activeTab">
|
||||
<el-tab-pane label="DEV" name="DEV">
|
||||
<div
|
||||
class="uav-span-wrap"
|
||||
v-for="item in detailUav.statusInfo.dev"
|
||||
:key="item.name"
|
||||
>
|
||||
<span>{{ item.name }}:</span>
|
||||
<span>{{ item.value }}{{ item.unit }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="GPS" name="GPS">
|
||||
<div
|
||||
class="uav-span-wrap"
|
||||
v-for="item in detailUav.statusInfo.gps"
|
||||
:key="item.name"
|
||||
>
|
||||
<span>{{ item.name }}:</span>
|
||||
<span>{{ item.value }}{{ item.unit }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="IMU" name="IMU">
|
||||
<div
|
||||
class="uav-span-wrap"
|
||||
v-for="item in detailUav.statusInfo.imu"
|
||||
:key="item.name"
|
||||
>
|
||||
<span>{{ item.name }}:</span>
|
||||
<span>{{ item.value }}{{ item.unit }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="波形信息" name="4">
|
||||
<div class="wave-chart">
|
||||
<dt-multiple-analysis
|
||||
ref="uavDetailChart"
|
||||
:data="detailUav.chart.data"
|
||||
:legend="detailUav.chart.legend"
|
||||
:tooltip="detailUav.chart.tooltip"
|
||||
:title="detailUav.chart.title"
|
||||
:grid="detailUav.chart.grid"
|
||||
:xAxis="detailUav.chart.xAxis"
|
||||
:yAxis="detailUav.chart.yAxis"
|
||||
></dt-multiple-analysis>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="回传图像" name="5">
|
||||
<right-slide class="detail-uav-wrap" v-if="detailUav.visible">
|
||||
<dt-card
|
||||
:class="{
|
||||
'detail-uav': true,
|
||||
'detail-uav__large': isIconModeLarge,
|
||||
}"
|
||||
icon="iconfont icon-target"
|
||||
title="详细信息"
|
||||
v-if="detailUav.visible"
|
||||
:visible.sync="detailUav.visible"
|
||||
:scroll="true"
|
||||
:showClose="true"
|
||||
:showDivider="false"
|
||||
>
|
||||
<div class="detail-uav__content">
|
||||
<div class="other-info">
|
||||
<el-collapse
|
||||
v-model="detailUav.activeNames"
|
||||
@change="handleUavDetailCollapse"
|
||||
>
|
||||
<el-collapse-item title="状态信息" name="3">
|
||||
<el-tabs v-model="detailUav.activeTab">
|
||||
<el-tab-pane label="DEV" name="DEV">
|
||||
<div
|
||||
class="uav-span-wrap"
|
||||
v-for="item in detailUav.statusInfo.dev"
|
||||
:key="item.name"
|
||||
>
|
||||
<span>{{ item.name }}:</span>
|
||||
<span>{{ item.value }}{{ item.unit }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="GPS" name="GPS">
|
||||
<div
|
||||
class="uav-span-wrap"
|
||||
v-for="item in detailUav.statusInfo.gps"
|
||||
:key="item.name"
|
||||
>
|
||||
<span>{{ item.name }}:</span>
|
||||
<span>{{ item.value }}{{ item.unit }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="IMU" name="IMU">
|
||||
<div
|
||||
class="uav-span-wrap"
|
||||
v-for="item in detailUav.statusInfo.imu"
|
||||
:key="item.name"
|
||||
>
|
||||
<span>{{ item.name }}:</span>
|
||||
<span>{{ item.value }}{{ item.unit }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="波形信息" name="4">
|
||||
<div class="wave-chart">
|
||||
<dt-multiple-analysis
|
||||
ref="uavDetailChart"
|
||||
:data="detailUav.chart.data"
|
||||
:legend="detailUav.chart.legend"
|
||||
:tooltip="detailUav.chart.tooltip"
|
||||
:title="detailUav.chart.title"
|
||||
:grid="detailUav.chart.grid"
|
||||
:xAxis="detailUav.chart.xAxis"
|
||||
:yAxis="detailUav.chart.yAxis"
|
||||
></dt-multiple-analysis>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<!-- <el-collapse-item title="回传图像" name="5">
|
||||
<div class="back-image">
|
||||
<div
|
||||
v-for="item in detailInfo.pictureList"
|
||||
@ -442,11 +444,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-collapse-item> -->
|
||||
</el-collapse>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dt-card>
|
||||
</dt-card>
|
||||
</right-slide>
|
||||
|
||||
<dt-dialog
|
||||
:title="taskLineDetail.title"
|
||||
|
||||
@ -443,7 +443,8 @@ export default {
|
||||
visible: false,
|
||||
data: [],
|
||||
boatTypeLegend: []
|
||||
}
|
||||
},
|
||||
moveInfoBar: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -1522,7 +1523,9 @@ export default {
|
||||
}
|
||||
},
|
||||
//#endregion
|
||||
|
||||
sarChange(val) {
|
||||
this.moveInfoBar = val
|
||||
},
|
||||
|
||||
//#region ais船
|
||||
getAisData() {
|
||||
|
||||
@ -66,6 +66,7 @@
|
||||
width: 300px;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 10px;
|
||||
|
||||
.message-title {
|
||||
height: 30px;
|
||||
display: flex;
|
||||
@ -74,16 +75,19 @@
|
||||
box-sizing: border-box;
|
||||
border-bottom: 1px solid $--color-black-3;
|
||||
margin-bottom: 4px;
|
||||
|
||||
>span {
|
||||
font-size: 14px;
|
||||
color: $--color-text-1;
|
||||
}
|
||||
|
||||
>i {
|
||||
font-size: 16px;
|
||||
color: $--color-text-1;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.message-body {
|
||||
//height: 50px;
|
||||
|
||||
@ -95,10 +99,12 @@
|
||||
padding: 0 5px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
.el-textarea {
|
||||
flex: 1;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
>i {
|
||||
font-size: 14px;
|
||||
color: $--color-text-1;
|
||||
@ -106,12 +112,14 @@
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.message-send {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
|
||||
.el-button {
|
||||
margin: 0 10px;
|
||||
}
|
||||
@ -124,3 +132,7 @@
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.info-bar-show {
|
||||
right: 430px;
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
ref="twinSituation"
|
||||
v-if="menus.situation.active"
|
||||
:visible.sync="menus.situation.active"
|
||||
@sar-change="sarChange"
|
||||
></twin-situation>
|
||||
<task-manage
|
||||
v-if="menus.taskManage.active"
|
||||
@ -58,8 +59,11 @@
|
||||
v-if="menus.userList.active"
|
||||
:visible.sync="menus.userList.active"
|
||||
></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> -->
|
||||
</div>
|
||||
|
||||
52
library/logisen/GMTI/CHSRTProc.h
Normal file
52
library/logisen/GMTI/CHSRTProc.h
Normal file
@ -0,0 +1,52 @@
|
||||
#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
|
||||
BIN
library/logisen/GMTI/MulTarTrk.dll
Normal file
BIN
library/logisen/GMTI/MulTarTrk.dll
Normal file
Binary file not shown.
BIN
library/logisen/GMTI/MulTarTrk.lib
Normal file
BIN
library/logisen/GMTI/MulTarTrk.lib
Normal file
Binary file not shown.
BIN
library/logisen/GMTI/test/MulTarTrk.dll
Normal file
BIN
library/logisen/GMTI/test/MulTarTrk.dll
Normal file
Binary file not shown.
BIN
library/logisen/GMTI/test/MulTarTrk.lib
Normal file
BIN
library/logisen/GMTI/test/MulTarTrk.lib
Normal file
Binary file not shown.
BIN
library/logisen/GMTI/test/TestBench.exe
Normal file
BIN
library/logisen/GMTI/test/TestBench.exe
Normal file
Binary file not shown.
14
library/logisen/GMTI/test/TrkConfig.ini
Normal file
14
library/logisen/GMTI/test/TrkConfig.ini
Normal file
@ -0,0 +1,14 @@
|
||||
############ 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
|
||||
BIN
library/logisen/GMTI/test/mti1.dat
Normal file
BIN
library/logisen/GMTI/test/mti1.dat
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user