| | |
| | | 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; |
| | |
| | | |
| | | @Autowired |
| | | private IDeviceService deviceService; |
| | | @Autowired |
| | | private RegistService registService; |
| | | |
| | | /** |
| | | * Handles the message that the drone goes online. |
| | |
| | | .timestamp(System.currentTimeMillis()) |
| | | .method(receiver.getMethod()) |
| | | .build()); |
| | | } |
| | | if (receiver.getData().getSn().length()==14){ |
| | | registService.Authorization(receiver.getData().getSn()); |
| | | } |
| | | } |
| | | |
| | |
| | | .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(); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | @GetMapping("/{workspace_id}/devices") |
| | | public ResponseResult<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId) { |
| | | List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId); |
| | | public ResponseResult<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId,String reserveId) { |
| | | List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId,reserveId); |
| | | |
| | | return ResponseResult.success(devicesList); |
| | | } |
| | | |
| | | // @GetMapping("/{device_sn}/subscribeTopic2") |
| | | // public ResponseResult<List<DeviceDTO>> testBinding(@PathVariable("device_sn") String deviceSn) { |
| | | // deviceService.subscribeTopicOnline(deviceSn); |
| | | // |
| | | // return ResponseResult.success(); |
| | | // } |
| | | // |
| | | // @GetMapping("/{device_sn}/unsubscribeTopic2") |
| | | // public ResponseResult<List<DeviceDTO>> testUnBinding(@PathVariable("device_sn") String deviceSn) { |
| | | // deviceService.unsubscribeTopicOffline(deviceSn); |
| | | // |
| | | // return ResponseResult.success(); |
| | | // } |
| | | |
| | | /** |
| | | * After binding the device to the workspace, the device data can only be seen on the web. |
| | |
| | | public ResponseResult getDevice(@PathVariable("workspace_id") String workspaceId, |
| | | @PathVariable("device_sn") String deviceSn) { |
| | | Optional<DeviceDTO> deviceOpt = deviceService.getDeviceBySn(deviceSn); |
| | | return deviceOpt.isEmpty() ? ResponseResult.error("device not found.") : ResponseResult.success(deviceOpt.get()); |
| | | return deviceOpt.isEmpty() ? ResponseResult.error("设备未找到") : ResponseResult.success(deviceOpt.get()); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @GetMapping("/{workspace_id}/devices/bound") |
| | | public ResponseResult<PaginationData<DeviceDTO>> getBoundDevicesWithDomain( |
| | | @PathVariable("workspace_id") String workspaceId, String domain, |
| | | @PathVariable("workspace_id") String workspaceId, Integer domain, |
| | | @RequestParam(defaultValue = "1") Long page, |
| | | @RequestParam(value = "page_size", defaultValue = "50") Long pageSize) { |
| | | PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain); |
| | |
| | | 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(); |
| | | } |
| | | |
| | | } |