aix
2024-08-20 b0dd7ca693fcd13e539316cfc8c63150182a0315
src/main/java/com/dji/sample/manage/controller/DeviceController.java
@@ -6,6 +6,7 @@
import com.dji.sample.component.mqtt.model.ChannelName;
import com.dji.sample.component.mqtt.model.CommonTopicReceiver;
import com.dji.sample.component.mqtt.model.CommonTopicResponse;
import com.dji.sample.droneairport.service.RegistService;
import com.dji.sample.manage.model.dto.DeviceDTO;
import com.dji.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
import com.dji.sample.manage.model.enums.DeviceSetPropertyEnum;
@@ -32,6 +33,8 @@
    @Autowired
    private IDeviceService deviceService;
    @Autowired
    private RegistService registService;
    /**
     * Handles the message that the drone goes online.
@@ -49,6 +52,9 @@
                            .timestamp(System.currentTimeMillis())
                            .method(receiver.getMethod())
                            .build());
        }
        if (receiver.getData().getSn().length()==14){
            registService.Authorization(receiver.getData().getSn());
        }
    }
@@ -71,6 +77,33 @@
                            .build());
        }
        if (receiver.getData().getSn().length()==14){
            registService.noAuthorization(receiver.getData().getSn());
        }
    }
    /**
     * 手动在线
     * @param workspaceId
     * @param receiver
     * @return
     */
    @PostMapping("/{workspace_id}/deviceOnline")
    public ResponseResult<List<DeviceDTO>> deviceOnline(@PathVariable("workspace_id") String workspaceId,
                                                        @RequestBody CommonTopicReceiver<StatusGatewayReceiver> receiver) {
        boolean offline = deviceService.deviceOnline(receiver.getData());
        if (offline) {
            // Notify pilot that the device is offline successfully.
            deviceService.publishStatusReply(receiver.getData().getSn(),
                    CommonTopicResponse.builder()
                            .tid(receiver.getTid())
                            .bid(receiver.getBid())
                            .timestamp(System.currentTimeMillis())
                            .method(receiver.getMethod())
                            .build());
        }
        return ResponseResult.success();
    }
    /**
@@ -203,4 +236,23 @@
        deviceService.devicePropertySet(workspaceId, dockSn, propertyEnumOpt.get(), param.get(property));
        return ResponseResult.success();
    }
    /**
     * 红外设置方法
     * @param workspaceId
     * @param dockSn
     * @param param
     * @return
     */
    @PutMapping("/{workspace_id}/devices/{device_sn}/property2")
    public ResponseResult devicePropertySet2(@PathVariable("workspace_id") String workspaceId,
                                             @PathVariable("device_sn") String dockSn,
                                             @RequestBody JsonNode param) {
        if (param.size() != 1) {
            return ResponseResult.error(CommonErrorEnum.ILLEGAL_ARGUMENT);
        }
        int result = deviceService.devicePropertySet(workspaceId, dockSn, param);
        return ResponseResult.success().getCode() == result ?ResponseResult.success():ResponseResult.error();
    }
}