From b0dd7ca693fcd13e539316cfc8c63150182a0315 Mon Sep 17 00:00:00 2001
From: aix <vip_xiaobin810@163.com>
Date: Tue, 20 Aug 2024 15:18:12 +0800
Subject: [PATCH] 红外设置
---
src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java | 46 +++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java b/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
index 1ddd9db..5c35d52 100644
--- a/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
@@ -1010,6 +1010,41 @@
}
@Override
+ public int devicePropertySet(String workspaceId, String dockSn, JsonNode value) {
+
+ Optional<DeviceDTO> dockOpt = deviceRedisService.getDeviceOnline(dockSn);
+ if (dockOpt.isEmpty()) {
+ throw new RuntimeException("机场离线");
+ }
+ String childSn = dockOpt.get().getChildDeviceSn();
+ boolean deviceOnline = deviceRedisService.checkDeviceOnline(childSn);
+ Optional<OsdSubDeviceReceiver> osdOpt = deviceRedisService.getDeviceOsd(childSn, OsdSubDeviceReceiver.class);
+ if (!deviceOnline || osdOpt.isEmpty()) {
+ throw new RuntimeException("设备离线");
+ }
+
+
+ String topic = THING_MODEL_PRE + PRODUCT + dockSn + PROPERTY_SUF + SET_SUF;
+
+ Map reply = messageSender.publishWithReply(
+ Map.class, topic,
+ CommonTopicResponse.builder()
+ .bid(UUID.randomUUID().toString())
+ .tid(UUID.randomUUID().toString())
+ .timestamp(System.currentTimeMillis())
+ .data(value)
+ .build());
+
+
+ SetReply setReply = objectMapper.convertValue(reply, SetReply.class);
+ if (SetReplyStatusResultEnum.SUCCESS.getVal() != setReply.getResult()) {
+ throw new RuntimeException("设置失败" + reply + "; 错误码: " + setReply.getResult());
+ }
+
+ return ResponseResult.success().getCode();
+ }
+
+ @Override
public void deviceOnePropertySet(String topic, DeviceSetPropertyEnum propertyEnum, Map.Entry<String, Object> value) {
if (Objects.isNull(value) || Objects.isNull(value.getValue())) {
throw new IllegalArgumentException(CommonErrorEnum.ILLEGAL_ARGUMENT.getErrorMsg());
@@ -1185,14 +1220,14 @@
}
/**
- * Handles messages in the state topic about basic drone data.
- *
- * Note: Only the data of the drone payload is handled here. You can handle other data from the drone
- * according to your business needs.
- * @param deviceBasic basic drone data
+ * 处理关于基本无人机数据的状态主题的消息。
+ * 注:这里只处理无人机有效载荷的数据。你可以处理无人机的其他数据
+ * *根据您的业务需要。
+ * @param deviceBasic 无人机基本数据
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_STATE_BASIC, outputChannel = ChannelName.INBOUND_STATE_PAYLOAD)
public List<DevicePayloadReceiver> stateBasic(DeviceBasicReceiver deviceBasic) {
+ log.info("无人机数据的状态主题的消息--DeviceBasicReceiver:{}",deviceBasic);
Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(deviceBasic.getDeviceSn());
if (deviceOpt.isEmpty()) {
return deviceBasic.getPayloads();
@@ -1202,6 +1237,7 @@
return deviceBasic.getPayloads();
}
DeviceDTO dock = dockOpt.get();
+ log.info("redis dockOpt:{}",dockOpt);
if (!deviceBasic.getControlSource().equals(dock.getControlSource())) {
dock.setControlSource(deviceBasic.getControlSource());
deviceRedisService.setDeviceOnline(dock);
--
Gitblit v1.9.3