Browse Source

自动播放直播流

nantong
吴远 1 month ago
parent
commit
dc642d750a
  1. 37
      dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java
  2. 34
      dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java
  3. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java
  4. 1
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

37
dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java

@ -1,6 +1,11 @@
package org.dromara.sample.control.service.impl; package org.dromara.sample.control.service.impl;
import cn.hutool.core.date.DateUtil;
import org.dromara.common.sdk.cloudapi.wayline.OutOfControlActionEnum;
import org.dromara.common.sdk.cloudapi.wayline.TaskTypeEnum;
import org.dromara.common.sdk.cloudapi.wayline.WaylineJobTypeEnum;
import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum;
import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.service.IDevicePayloadService; import org.dromara.sample.manage.service.IDevicePayloadService;
import org.dromara.sample.manage.service.IDeviceRedisService; import org.dromara.sample.manage.service.IDeviceRedisService;
@ -26,10 +31,15 @@ import org.dromara.sample.control.model.enums.DroneAuthorityEnum;
import org.dromara.sample.control.model.enums.RemoteDebugMethodEnum; import org.dromara.sample.control.model.enums.RemoteDebugMethodEnum;
import org.dromara.sample.control.model.param.*; import org.dromara.sample.control.model.param.*;
import org.dromara.sample.control.service.IControlService; import org.dromara.sample.control.service.IControlService;
import org.dromara.sample.wayline.mapper.IWaylineJobMapper;
import org.dromara.sample.wayline.model.entity.WaylineJobEntity;
import org.dromara.sample.wayline.model.enums.WaylineJobStatusEnum;
import org.dromara.sample.wayline.service.IWaylineJobService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@ -69,6 +79,10 @@ public class ControlServiceImpl implements IControlService {
@Qualifier("SDKWaylineService") @Qualifier("SDKWaylineService")
private AbstractWaylineService abstractWaylineService; private AbstractWaylineService abstractWaylineService;
@Autowired
private IWaylineJobMapper waylineJobMapper;
private RemoteDebugHandler checkDebugCondition(String sn, RemoteDebugParam param, RemoteDebugMethodEnum controlMethodEnum) { private RemoteDebugHandler checkDebugCondition(String sn, RemoteDebugParam param, RemoteDebugMethodEnum controlMethodEnum) {
RemoteDebugHandler handler = Objects.nonNull(controlMethodEnum.getClazz()) ? RemoteDebugHandler handler = Objects.nonNull(controlMethodEnum.getClazz()) ?
mapper.convertValue(Objects.nonNull(param) ? param : new Object(), controlMethodEnum.getClazz()) mapper.convertValue(Objects.nonNull(param) ? param : new Object(), controlMethodEnum.getClazz())
@ -164,16 +178,37 @@ public class ControlServiceImpl implements IControlService {
@Override @Override
public HttpResultResponse takeoffToPoint(String sn, TakeoffToPointParam param) { public HttpResultResponse takeoffToPoint(String sn, TakeoffToPointParam param) {
checkTakeoffCondition(sn); checkTakeoffCondition(sn);
Optional<DeviceDTO> dockOpt = deviceRedisService.getDeviceOnline(sn);
param.setFlightId(UUID.randomUUID().toString()); param.setFlightId(UUID.randomUUID().toString());
WaylineJobEntity waylineJobEntity = new WaylineJobEntity();
waylineJobEntity.setJobId(param.getFlightId());
waylineJobEntity.setName(dockOpt.get().getNickname()+ DateUtil.date(System.currentTimeMillis()));
waylineJobEntity.setWaylineName(dockOpt.get().getNickname()+ DateUtil.date(System.currentTimeMillis()));
waylineJobEntity.setDockSn(sn);
waylineJobEntity.setWorkspaceId(dockOpt.get().getWorkspaceId());
waylineJobEntity.setTaskType(TaskTypeEnum.IMMEDIATE.getType());
waylineJobEntity.setWaylineType(WaylineTypeEnum.WAYPOINT.getValue());
waylineJobEntity.setUsername("admin");
waylineJobEntity.setExecuteTime(new Date());
waylineJobEntity.setBeginTime(new Date());
waylineJobEntity.setStatus(WaylineJobStatusEnum.PENDING.getVal());
waylineJobEntity.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME.getAction());
waylineJobEntity.setRthAltitude(Integer.parseInt(param.getRthAltitude().toString()));
waylineJobEntity.setMediaCount(0);
waylineJobEntity.setJobType(WaylineJobTypeEnum.PEOPLE_TASK.getType());
TopicServicesResponse<ServicesReplyData> response = abstractControlService.takeoffToPoint( TopicServicesResponse<ServicesReplyData> response = abstractControlService.takeoffToPoint(
SDKManager.getDeviceSDK(sn), mapper.convertValue(param, TakeoffToPointRequest.class)); SDKManager.getDeviceSDK(sn), mapper.convertValue(param, TakeoffToPointRequest.class));
ServicesReplyData reply = response.getData(); ServicesReplyData reply = response.getData();
if (reply.getResult().isSuccess()) {
waylineJobEntity.setCreateTime(new Date());
waylineJobMapper.insert(waylineJobEntity);
}
return reply.getResult().isSuccess() ? return reply.getResult().isSuccess() ?
HttpResultResponse.success() HttpResultResponse.success()
: HttpResultResponse.error("无人机未能起飞。" + reply.getResult()); : HttpResultResponse.error("无人机未能起飞。" + reply.getResult());
} }
@Override @Override
public HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param) { public HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param) {
TopicServicesResponse<ServicesReplyData> response; TopicServicesResponse<ServicesReplyData> response;

34
dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java

@ -57,7 +57,6 @@ public class RocketMqConsum implements RocketMQListener<MessageExt> {
@Override @Override
public void onMessage(MessageExt message) { public void onMessage(MessageExt message) {
String tags = message.getTags();
String videoIds = new String(message.getBody()); String videoIds = new String(message.getBody());
VideoId videoId = new VideoId(videoIds); VideoId videoId = new VideoId(videoIds);
LiveTypeDTO liveTypeDTO = new LiveTypeDTO(); LiveTypeDTO liveTypeDTO = new LiveTypeDTO();
@ -65,33 +64,20 @@ public class RocketMqConsum implements RocketMQListener<MessageExt> {
liveTypeDTO.setVideoType(LensChangeVideoTypeEnum.WIDE); liveTypeDTO.setVideoType(LensChangeVideoTypeEnum.WIDE);
liveTypeDTO.setVideoQuality(VideoQualityEnum.ULTRA_HD); liveTypeDTO.setVideoQuality(VideoQualityEnum.ULTRA_HD);
liveTypeDTO.setVideoId(videoId); liveTypeDTO.setVideoId(videoId);
/*DeviceEntity deviceBySn = deviceService.getDeviceByChildSn(videoId.getDroneSn()); DeviceEntity deviceBySn = deviceService.getDeviceByChildSn(videoId.getDroneSn());
Optional<EventsReceiver<FlighttaskProgress>> runningWaylineJob = waylineRedisService.getRunningWaylineJob(deviceBySn.getDeviceSn()); Optional<EventsReceiver<FlighttaskProgress>> runningWaylineJob = waylineRedisService.getRunningWaylineJob(deviceBySn.getDeviceSn());
Map<String,Object> reqMap = new HashMap<>();
if(runningWaylineJob.isPresent()) { if(runningWaylineJob.isPresent()) {
String jobId = runningWaylineJob.get().getOutput().getExt().getFlightId(); String jobId = runningWaylineJob.get().getOutput().getExt().getFlightId();
Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobInternalId(jobId); Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobInternalId(jobId);
}*/ reqMap.put("jobId",waylineJobDTO.get().getJobId());
reqMap.put("jobName",waylineJobDTO.get().getJobName());
if(tags.equals("videoStart")){ }
HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO); liveStreamService.liveStop(videoId);
/*if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){ HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO);
Map<String,Object> reqMap = new HashMap<>(); if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){
reqMap.put("deviceSn:",videoId.getDroneSn()); reqMap.put("deviceSn:",videoId.getDroneSn());
reqMap.put("jobId",waylineJobDTO.get().getJobId()); playTextService.streamType(reqMap);
reqMap.put("jobName",waylineJobDTO.get().getJobName());
playTextService.streamType(reqMap);
}*/
}else if(tags.equals("videoStopStart")){
liveStreamService.liveStop(videoId);
HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO);
/*if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){
Map<String,Object> reqMap = new HashMap<>();
reqMap.put("deviceSn:",videoId.getDroneSn());
reqMap.put("jobId",waylineJobDTO.get().getJobId());
reqMap.put("jobName",waylineJobDTO.get().getJobName());
playTextService.streamType(reqMap);
}*/
} }
deviceRedisService.setDeviceVideo(videoId.getDroneSn(),videoId); deviceRedisService.setDeviceVideo(videoId.getDroneSn(),videoId);

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java

@ -90,7 +90,7 @@ public class WaylineJobEntity implements Serializable {
private String parentId; private String parentId;
@TableField("job_type") @TableField("job_type")
private WaylineJobTypeEnum waylineJobTypeEnum; private Integer jobType;
@TableField(exist = false) @TableField(exist = false)
private ProgressExtBreakPoint breakPoint; private ProgressExtBreakPoint breakPoint;

1
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

@ -103,6 +103,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
.rthAltitude(param.getRthAltitude()) .rthAltitude(param.getRthAltitude())
.mediaCount(0) .mediaCount(0)
.breakPoint(param.getBreakPoint()) .breakPoint(param.getBreakPoint())
.jobType(param.getJobType().getType())
.build(); .build();
return insertWaylineJob(jobEntity); return insertWaylineJob(jobEntity);

Loading…
Cancel
Save