Merge branch 'main' into dev_20260130_RemoveRedis
# Conflicts: # backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/service/impl/JmJobStatusServiceImpl.java # backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/control/SarControlContext.java # backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/listen/SarStatusListener.java
This commit is contained in:
commit
f4c24d0ac9
@ -392,7 +392,7 @@ public class JmJobServiceImpl implements JmJobService {
|
||||
String[] kmzDirPath = fileTypeService.getDirectoryPath(FileTypeEnum.UAV_KMZ, jobExecId);
|
||||
for (JmJobUav juav : job.getUavList()) {
|
||||
Long uavId = juav.getUavId();
|
||||
generateKmz(kmzDirPath[0], uavId, juav);
|
||||
generateKmz(kmzDirPath[0], uavId, juav, job.getName());
|
||||
log.info("生成kmz:" + kmzDirPath[0]);
|
||||
}
|
||||
}
|
||||
@ -430,11 +430,11 @@ public class JmJobServiceImpl implements JmJobService {
|
||||
/**
|
||||
* 生成kmz文件
|
||||
*/
|
||||
private void generateKmz(String dirPath, Long uavId, JmJobUav uav) {
|
||||
private void generateKmz(String dirPath, Long uavId, JmJobUav uav, String jobName) {
|
||||
String kmlPath = dirPath + "/" + uavId; // 临时目录
|
||||
KmzGen.generateKmz(kmlPath, uav, 0, uav.getSar0().getHeadingDiff());
|
||||
try {
|
||||
ZipUtil.zip(kmlPath, dirPath + "/" + uavId + ".kmz", false);
|
||||
ZipUtil.zip(kmlPath, dirPath + "/" + jobName + "_" + uavId + ".kmz", false);
|
||||
FileUtil.delete(kmlPath);
|
||||
} catch (IOException ex) {
|
||||
throw new ServiceException("生成zip文件出错:" + ex.getMessage());
|
||||
@ -463,6 +463,7 @@ public class JmJobServiceImpl implements JmJobService {
|
||||
// 通知前端任务停止
|
||||
JmJobStatusWsDTO wsVo = new JmJobStatusWsDTO(id, uav.getUavId());
|
||||
wsVo.setJobStatus(ExecStatusEnum.OVER.getValue());
|
||||
log.debug("send status:\n{}", JSON.toJSONString(wsVo));
|
||||
simpMessagingTemplate.convertAndSend(WebSocketKey.JM_JOB_STATUS, wsVo);
|
||||
});
|
||||
// 删除缓存任务信息
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhangy.skyeye.jm.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.zhangy.skyeye.cache.sar.SarCache;
|
||||
import com.zhangy.skyeye.common.extend.exception.ServiceException;
|
||||
import com.zhangy.skyeye.common.extend.util.MessageUtils;
|
||||
@ -11,7 +12,6 @@ import com.zhangy.skyeye.jm.event.JmJobStatusEvent;
|
||||
import com.zhangy.skyeye.jm.event.JmPayloadStatusEvent;
|
||||
import com.zhangy.skyeye.jm.service.JmJobStatusService;
|
||||
import com.zhangy.skyeye.jm.service.JmStatusLogService;
|
||||
import com.zhangy.skyeye.publics.consts.CacheKey;
|
||||
import com.zhangy.skyeye.publics.consts.ExecStatusEnum;
|
||||
import com.zhangy.skyeye.publics.consts.WebSocketKey;
|
||||
import com.zhangy.skyeye.publics.utils.CoordUtil;
|
||||
@ -305,6 +305,7 @@ public class JmJobStatusServiceImpl implements JmJobStatusService {
|
||||
|
||||
// 4.将更新后的状态推送到前端
|
||||
wsVo.setSarStatus(curr);
|
||||
log.debug("send status:\n{}", JSON.toJSONString(wsVo));
|
||||
simpMessageingTemplate.convertAndSend(WebSocketKey.JM_JOB_STATUS, wsVo);
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhangy.skyeye.sar.control;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.zhangy.skyeye.cache.sar.SarCache;
|
||||
import com.zhangy.skyeye.common.extend.exception.ServiceException;
|
||||
import com.zhangy.skyeye.common.extend.util.ObjectUtil;
|
||||
@ -109,7 +110,7 @@ public class SarControlContext {
|
||||
private void sendUdp(SarControlDTO control) {
|
||||
SarControlTypeEnum controlType = control.getControlType();
|
||||
String targetIp = control.getIp();
|
||||
log.info("准备发送雷达控制指令 | 类型:{} | 目标IP:{}", controlType, targetIp);
|
||||
log.debug("send control:\n{}", JSON.toJSONString(control));
|
||||
String cacheKey = CacheKey.getSarControlBack(targetIp);
|
||||
byte[] payload;
|
||||
try {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhangy.skyeye.sar.listen;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.zhangy.skyeye.sar.dto.SarImagePacketGroupDTO;
|
||||
import com.zhangy.skyeye.sar.dto.SarImagePacketDTO;
|
||||
import com.zhangy.skyeye.sar.task.CircularBufferQueue;
|
||||
@ -67,6 +68,7 @@ public class SarImageListener extends SarAbstractListener {
|
||||
String ip = packet.getAddress().getHostAddress();
|
||||
// 处理接收到的数据
|
||||
SarImagePacketDTO backPackDTO = SarImagePacketDTO.parse(packet.getData(), packet.getLength());
|
||||
log.debug("recv image:\n{}", JSON.toJSONString(backPackDTO));
|
||||
if (backPackDTO == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhangy.skyeye.sar.listen;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.zhangy.skyeye.cache.sar.SarCache;
|
||||
import com.zhangy.skyeye.jm.dto.JmSarStatusDTO;
|
||||
import com.zhangy.skyeye.jm.service.JmJobStatusService;
|
||||
@ -70,18 +71,21 @@ public class SarStatusListener extends SarAbstractListener {
|
||||
@Override
|
||||
protected void processData(DatagramPacket packet) throws IOException {
|
||||
socket.receive(packet);
|
||||
// 过滤无效数据包
|
||||
if (packet.getLength() != 100) {
|
||||
return;
|
||||
}
|
||||
log.debug("接收到状态包----------------------");
|
||||
String ip = packet.getAddress().getHostAddress();
|
||||
// 处理接收到的数据
|
||||
SarStatusPackDTO packDTO = SarStatusPackDTO.parse(ip, packet.getData());
|
||||
log.debug("recv status:\n{}", JSON.toJSONString(packDTO));
|
||||
if (packDTO == null) {
|
||||
if (running)
|
||||
log.warn("状态包校验失败,已丢弃。");
|
||||
return;
|
||||
}
|
||||
// 错误包 → 回执
|
||||
// 错误包,结果放入缓存,超时1秒
|
||||
int errorStatus = packDTO.getErrorPacketStatus();
|
||||
if (errorStatus == 1) {
|
||||
SarErrorDTO info = packDTO.getDeviceErrorInfo();
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhangy.skyeye.sar.listen;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.zhangy.skyeye.sar.dto.SarWavePackDTO;
|
||||
import com.zhangy.skyeye.sar.task.CircularBufferQueue;
|
||||
import com.zhangy.skyeye.sar.task.DiscardOldestPolicyWithLog;
|
||||
@ -62,6 +63,7 @@ public class SarWaveListener extends SarAbstractListener {
|
||||
String ip = packet.getAddress().getHostAddress();
|
||||
// 处理接收到的数据
|
||||
SarWavePackDTO backPackDTO = SarWavePackDTO.parse(packet.getData());
|
||||
log.debug("recv wave:\n{}", JSON.toJSONString(backPackDTO));
|
||||
if (backPackDTO == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhangy.skyeye.sar.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.zhangy.skyeye.jm.dto.JmAirlineStatusDTO;
|
||||
import com.zhangy.skyeye.jm.dto.JmUavStatusDTO;
|
||||
import com.zhangy.skyeye.jm.entity.JmImage;
|
||||
@ -40,6 +41,7 @@ public class SarBackWsServiceImpl implements ISarBackWsService {
|
||||
@Override
|
||||
public void sendWave(String payloadIp, SarBackWaveFrameDTO frame, byte[] frameData) {
|
||||
JmSarWaveWsDTO wsVo = loadJobDetail(payloadIp, frame.getChannel(), frameData);
|
||||
log.debug("send wave:\n{}", JSON.toJSONString(wsVo));
|
||||
// 若载荷任务结束,sar仍然回传波形则 wsVo为空。此场景仅限sardemo,实际sar不会发生
|
||||
if (wsVo != null) {
|
||||
simpMessageingTemplate.convertAndSend(WebSocketKey.SAR_BACK_WAVE, wsVo);
|
||||
@ -48,6 +50,7 @@ public class SarBackWsServiceImpl implements ISarBackWsService {
|
||||
|
||||
@Override
|
||||
public void sendImg(JmImage imageInfo) {
|
||||
log.debug("send image:\n{}", JSON.toJSONString(imageInfo));
|
||||
simpMessageingTemplate.convertAndSend(WebSocketKey.SAR_BACK_IMAGE, imageInfo);
|
||||
}
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
|
||||
<conversionRule conversionWord="wEx"
|
||||
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
|
||||
|
||||
<!-- Console log output -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@ -30,7 +31,7 @@
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
|
||||
<pattern>%date [%thread] %-5level [%logger{50}] [%file:%line] - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
@ -44,7 +45,7 @@
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
|
||||
<pattern>%date [%thread] %-5level [%logger{50}] [%file:%line] - %msg%n</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>ERROR</level>
|
||||
|
||||
@ -40,6 +40,8 @@ export default class OrthoImageryManager {
|
||||
|
||||
// ✅ 使用全局亮度和透明度,保证新图生效
|
||||
layer.brightness = brightness ? brightness : this.globalBrightness;
|
||||
console.log(layer.brightness, '新增图片时的亮度值');
|
||||
|
||||
layer.alpha = this.globalAlpha;
|
||||
|
||||
this.layerMap.set(key, layer);
|
||||
@ -56,6 +58,7 @@ export default class OrthoImageryManager {
|
||||
this.layerMap.forEach(layer => {
|
||||
layer.brightness = value;
|
||||
});
|
||||
console.log(value, '统一修改图片时的亮度值');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user