1. SDK版本迁移指南
上云 API 2 说明文档(KOC3)
  • 快速开始
  • 申请许可证
  • 联系我们
  • 软件下载
  • 使用上云 API 2 设备模拟器
  • 鉴权接入指南
  • 部署上云 API 2 应用运行与设备管控底座
    • 部署指南
    • 部署前准备
    • 开始部署
    • 能力扩展
  • 设备上云
    • 设备上云
    • 设备固件版本
  • 集成前端独立组件
    • 集成指南
    • 驾驶舱和设备小窗
    • 驾驶舱模块化配置
    • 设备管理组件
    • 航线组件
    • 直播大屏
    • 飞行记录
    • 集成参考
    • PaasJS 新增特性
  • SDK 文档
    • 基本介绍
      • SDK 简介
      • 功能特性
    • 快速入门
      • 准备工作
      • 使用流程
    • 接口调用
      • 接口调用时序图
    • SDK API 文档
      • 使用 API 文档查阅接口详情
    • SDK版本迁移指南
      • 迁移概述
      • 新增方法详情
      • API 变更详情
      • 迁移操作步骤
    • 功能集合
      • SDK初始化
      • SDK配置
      • DRC链路
      • 飞机状态监听
      • 飞向目标点
      • 飞行参数设置
      • 飞行记录导出
      • POI 环绕飞行
      • 一键起飞
      • 航线任务管理
      • 航线任务控制
      • 航线资产管理
      • 机场状态监听
      • 控制权管理
      • 机场控制
      • 飞行控制
      • AI Box 管理
      • AI 智能告警
      • 机载 AI 控制
      • 机载 AI 算法管理
      • PSDK 控制
      • PSDK 资源管理
      • RTK 标定
      • 安全服务
      • 固件管理
      • 媒体服务
      • 日志管理
      • 三维重建
      • 设备管理
      • 设备保修维护
      • 设备健康管理
      • 设备远程调试
      • 设备在线状态
      • 相机控制
      • 直播录制
      • 直播设备管理
      • 直播视频流
      • 直播同步
      • 中继器控制
      • 自定义 SEI
      • WHEP 自定义拉流
      • 网络测速
      • 地图元素管理
      • 频闪灯配置
  • 使用上云 API 2 AI Plugin
    • 上云 API 2 AI Plugin 使用指南
  • 使用上云 API 2 二次开发 Demo
    • 上云 API 2 二次开发 Demo 部署指南
    • 上云 API 2 二次开发 Demo - 无人机管理平台使用说明
  • 排障指南
    • 前端独立组件排障指南
    • SDK排障指南
  1. SDK版本迁移指南

API 变更详情

变更 1:Drone 模块化搬迁#

KOC2 中 Drone 上有 208 个方法。KOC3 中 Drone 只剩 21 个 get*Module() getter,所有业务方法搬到了子模块。

Drone 新增的 getter(KOC3)#

getter返回类型说明
getCameraControlModule()CameraControlModule相机/拍照/录像/云台/热成像/全景
getFlightControlModule()FlightControlModule飞行控制(返航/急停/摇杆)
getPsdkControlModule()PsdkControlModulePSDK/喇叭/探照灯/Widget
getTakeoffModule()TakeoffModule一键起飞
getDrcModule()DrcModuleDRC 链路
getDroneOsdModule()DroneOsdModule飞机 OSD 状态监听
getDeviceHMSModule()DeviceHMSModuleHMS 健康管理
getDeviceStateModule()DeviceStateModule在线状态
getControlAuthModule()ControlAuthModule控制权
getFlightSettingsModule()FlightSettingsModule飞行参数设置
getTestFlightModule()TestFlightModule试飞
getOnboardAiModule()OnboardAiModuleAI 识别
getLiveDeviceModule()LiveDeviceModule直播可用范围/观众数
getInFlightWaylineModule()InFlightWaylineModule在飞航线(新增)
getAIBoxModule()AIBoxModuleAIBox
getDeviceDebugModule()DeviceDebugModule设备调试(从 Workspace 下放)
注意:DeviceManageModule 通过 workspace.getDeviceManageModule() 获取,不在 Drone 上。

1a. Drone → CameraControlModule(相机控制)#

A 类:模块化 + DRC 前缀(动作方法)#

KOC2 中相机动作方法直接挂在 Drone 上。KOC3 搬到 CameraControlModule 并统一加 drc 前缀。
#KOC2KOC3标签
1drone.takePhoto(payloadIndex, cb)drone.getCameraControlModule().drcTakePhoto(payloadIndex, cb)模块化+DRC
2drone.startRecord(payloadIndex, cb)drone.getCameraControlModule().drcStartRecord(payloadIndex, cb)模块化+DRC
3drone.stopRecord(payloadIndex, cb)drone.getCameraControlModule().drcStopRecord(payloadIndex, cb)模块化+DRC
4drone.zoomAtTarget(params, cb)drone.getCameraControlModule().drcZoomAtTarget(params, cb)模块化+DRC
5drone.setFocalLength(params, cb)drone.getCameraControlModule().drcSetFocalLength(params, cb)模块化+DRC
6drone.switchCameraMode(params, cb)drone.getCameraControlModule().drcSwitchCameraMode(params, cb)模块化+DRC
7drone.switchLiveLens(params, cb)drone.getCameraControlModule().drcSwitchLiveLens(params, cb)模块化+DRC
8drone.setPhotoStorageSettings(params, cb)drone.getCameraControlModule().drcSetPhotoStorageSettings(params, cb)模块化+DRC
9drone.setVideoStorageSettings(params, cb)drone.getCameraControlModule().drcSetVideoStorageSettings(params, cb)模块化+DRC
10drone.setNightSceneMode(params, cb)drone.getCameraControlModule().drcSetNightSceneMode(params, cb)模块化+DRC
11drone.resetGimbal(payloadIndex, resetMode, cb)drone.getCameraControlModule().drcResetGimbal(payloadIndex, resetMode, cb)模块化+DRC
12drone.startPanorama(params, cb)drone.getCameraControlModule().drcStartPanorama(params, cb)模块化+DRC
13drone.stopPanorama(payloadIndex, cb)drone.getCameraControlModule().drcStopPanorama(payloadIndex, cb)模块化+DRC
14drone.setThermalGainMode(params, cb)drone.getCameraControlModule().drcSetThermalGainMode(params, cb)模块化+DRC

B 类:模块化 + DRC 前缀(监听方法)#

#KOC2KOC3标签
1drone.listenPanoramaStatus(payloadIndex, cb)drone.getCameraControlModule().listenDrcPanoramaStatus(payloadIndex, cb)模块化+DRC
2drone.cancelListenPanoramaStatus(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcPanoramaStatus(payloadIndex, id)模块化+DRC
3drone.listenCameraModeAvailableRange(payloadIndex, cb)drone.getCameraControlModule().listenDrcCameraModeAvailableRange(payloadIndex, cb)模块化+DRC
4drone.cancelListenCameraModeAvailableRange(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcCameraModeAvailableRange(payloadIndex, id)模块化+DRC
5drone.listenCameraState(payloadIndex, cb)drone.getCameraControlModule().listenDrcCameraState(payloadIndex, cb)模块化+DRC
6drone.cancelListenCameraState(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcCameraState(payloadIndex, id)模块化+DRC
7drone.listenLiveviewWorldRegion(payloadIndex, cb)drone.getCameraControlModule().listenDrcLiveviewWorldRegion(payloadIndex, cb)模块化+DRC
8drone.cancelListenLiveviewWorldRegion(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcLiveviewWorldRegion(payloadIndex, id)模块化+DRC
9drone.listenCameraWideLensState(payloadIndex, cb)drone.getCameraControlModule().listenDrcCameraWideLensState(payloadIndex, cb)模块化+DRC
10drone.cancelListenCameraWideLensState(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcCameraWideLensState(payloadIndex, id)模块化+DRC
11drone.listenCameraZoomLensState(payloadIndex, cb)drone.getCameraControlModule().listenDrcCameraZoomLensState(payloadIndex, cb)模块化+DRC
12drone.cancelListenCameraZoomLensState(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcCameraZoomLensState(payloadIndex, id)模块化+DRC
13drone.listenCameraMeasureTarget(payloadIndex, cb)drone.getCameraControlModule().listenDrcCameraMeasureTarget(payloadIndex, cb)模块化+DRC
14drone.cancelListenCameraMeasureTarget(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcCameraMeasureTarget(payloadIndex, id)模块化+DRC
15drone.listenNightModeSettings(payloadIndex, cb)drone.getCameraControlModule().listenDrcNightModeSettings(payloadIndex, cb)模块化+DRC
16drone.cancelListenNightModeSettings(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcNightModeSettings(payloadIndex, id)模块化+DRC
17drone.listenGimbalState(payloadIndex, cb)drone.getCameraControlModule().listenDrcGimbalState(payloadIndex, cb)模块化+DRC
18drone.cancelListenGimbalState(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcGimbalState(payloadIndex, id)模块化+DRC
19drone.listenLiveVideoInfo(payloadIndex, cb)drone.getCameraControlModule().listenDrcLiveVideoInfo(payloadIndex, cb)模块化+DRC
20drone.cancelListenLiveVideoInfo(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcLiveVideoInfo(payloadIndex, id)模块化+DRC
21drone.listenThermalGainMode(payloadIndex, cb)drone.getCameraControlModule().listenDrcThermalGainMode(payloadIndex, cb)模块化+DRC
22drone.cancelListenThermalGainMode(payloadIndex, id)drone.getCameraControlModule().cancelListenDrcThermalGainMode(payloadIndex, id)模块化+DRC

C 类:模块化搬迁(方法名不变)#

#KOC2KOC3标签
1drone.lookAtTarget(params, cb)drone.getCameraControlModule().lookAtTarget(params, cb)模块化
代码示例:

1b. Drone → DroneOsdModule(飞机 OSD 监听)#

所有 listenAircraft* / cancelListenAircraft* 方法搬到 DroneOsdModule,方法名不变。
#KOC2KOC3标签
1drone.listenAircraftPayloadsOsdInfo(cb)drone.getDroneOsdModule().listenAircraftPayloadsOsdInfo(cb)模块化
2drone.cancelListenAircraftPayloadsOsdInfo(id)drone.getDroneOsdModule().cancelListenAircraftPayloadsOsdInfo(id)模块化
3–4listenAircraftGear / cancelListenAircraftGear→ getDroneOsdModule()模块化
5–6listenAircraftHomeDistance / cancelListenAircraftHomeDistance同上模块化
7–8listenAircraftPositionState / cancelListenAircraftPositionState同上模块化
9–10listenAircraftControlSource / cancelListenAircraftControlSource同上模块化
11–12listenAircraftLimitsInfo / cancelListenAircraftLimitsInfo同上模块化
13–14listenAircraftBatteryWarningThresholds / cancelListenAircraftBatteryWarningThresholds同上模块化
15–16listenAircraftFirmwareStatus / cancelListenAircraftFirmwareStatus同上模块化
17–18listenAircraftCurrentRthMode / cancelListenAircraftCurrentRthMode同上模块化
19–20listenAircraftTotalFlightInfo / cancelListenAircraftTotalFlightInfo同上模块化
21–22listenAircraftActivationTime / cancelListenAircraftActivationTime同上模块化
23–24listenAircraftMaintainStatusInfo / cancelListenAircraftMaintainStatusInfo同上模块化
25–26listenAircraftNightLightsState / cancelListenAircraftNightLightsState同上模块化
27–28listenAircraftObstacleAvoidanceState / cancelListenAircraftObstacleAvoidanceState同上模块化
29–30listenAircraftStorageInfo / cancelListenAircraftStorageInfo同上模块化
31–32listenAircraftTrackId / cancelListenAircraftTrackId同上模块化
33–34listenAircraftComplianceInfo / cancelListenAircraftComplianceInfo同上模块化
35–36listenAircraftPayloadsCamerasList / cancelListenAircraftPayloadsCamerasList同上模块化
37–38listenAircraftRcLostAction / cancelListenAircraftRcLostAction同上模块化
39–40listenAircraftRthInfo / cancelListenAircraftRthInfo同上模块化
41–42listenAircraftHomeGeographicalInfo / cancelListenAircraftHomeGeographicalInfo同上模块化
43–44listenAircraftBatteryInfo / cancelListenAircraftBatteryInfo同上模块化
45–46listenAircraftAttitude / cancelListenAircraftAttitude同上模块化
47–48listenAircraftLocation / cancelListenAircraftLocation同上模块化
49–50listenAircraftModeCode / cancelListenAircraftModeCode同上模块化
51–52listenAircraftWindSpeed / cancelListenAircraftWindSpeed同上模块化
53–54listenFlightTasksException / cancelListenFlightTasksException同上模块化
55–56listenAircraftControlCode / cancelListenAircraftControlCode同上模块化
57–58listenAircraftSpeed / cancelListenAircraftSpeed同上模块化
59–60listenAircraftPayloadsCameraLiveviewWorldRegion / cancelListenAircraftPayloadsCameraLiveviewWorldRegion同上模块化
61–62listenAircraftPayloadsGimbalAttitude / cancelListenAircraftPayloadsGimbalAttitude同上模块化
63–64listenAircraftPayloadsList / cancelListenAircraftPayloadsList同上模块化
65–66listenControlRightsCloudControlStatus / cancelListenControlRightsCloudControlStatus同上模块化
67–68listenControlRightsDeviceControlStatus / cancelListenControlRightsDeviceControlStatus同上模块化
69–70listenFlightTasksMediaFileDisplayAvailable / cancelListenFlightTasksMediaFileDisplayAvailable同上模块化
71–72listenHsiInfo / cancelListenHsiInfo同上模块化

1c. Drone → FlightControlModule(飞行控制)#

#KOC2KOC3标签
1drone.returnHome(cb)drone.getFlightControlModule().returnHome(cb)模块化
2drone.returnHomeCancel(cb)drone.getFlightControlModule().returnHomeCancel(cb)模块化
3drone.emergencyStop(cb)drone.getFlightControlModule().drcEmergencyStop(cb)模块化+DRC
4drone.sendStickControl(data)drone.getFlightControlModule().drcSendStickControl(data)模块化+DRC
注意:returnHome/returnHomeCancel 不加 drc 前缀(走 HTTP 通道);emergencyStop/sendStickControl 加 drc 前缀(走 DRC 通道)。

1d. Drone → PsdkControlModule(PSDK 控制)#

A 类:模块化 + DRC 前缀(监听方法)#

#KOC2KOC3标签
1drone.listenPsdkDeviceList(cb)drone.getPsdkControlModule().listenDrcPsdkDeviceList(cb)模块化+DRC
2drone.cancelListenPsdkDeviceList(id)drone.getPsdkControlModule().cancelListenDrcPsdkDeviceList(id)模块化+DRC
3drone.listenPsdkStateSummaryInfo(psdkIndex, cb)drone.getPsdkControlModule().listenDrcPsdkStateSummaryInfo(psdkIndex, cb)模块化+DRC
4drone.cancelListenPsdkStateSummaryInfo(psdkIndex, id)drone.getPsdkControlModule().cancelListenDrcPsdkStateSummaryInfo(psdkIndex, id)模块化+DRC
5drone.listenPsdkStateSpeakerInfo(psdkIndex, cb)drone.getPsdkControlModule().listenDrcPsdkStateSpeakerInfo(psdkIndex, cb)模块化+DRC
6drone.cancelListenPsdkStateSpeakerInfo(psdkIndex, id)drone.getPsdkControlModule().cancelListenDrcPsdkStateSpeakerInfo(psdkIndex, id)模块化+DRC
7drone.listenPsdkStateSearchlightInfo(psdkIndex, cb)drone.getPsdkControlModule().listenDrcPsdkStateSearchlightInfo(psdkIndex, cb)模块化+DRC
8drone.cancelListenPsdkStateSearchlightInfo(psdkIndex, id)drone.getPsdkControlModule().cancelListenDrcPsdkStateSearchlightInfo(psdkIndex, id)模块化+DRC
9drone.listenPsdkSpeakerPlayProgressInfo(psdkIndex, cb)drone.getPsdkControlModule().listenDrcPsdkSpeakerPlayProgressInfo(psdkIndex, cb)模块化+DRC
10drone.cancelListenPsdkSpeakerPlayProgressInfo(psdkIndex, id)drone.getPsdkControlModule().cancelListenDrcPsdkSpeakerPlayProgressInfo(psdkIndex, id)模块化+DRC
11drone.listenPsdkFloatingWindowTextInfo(psdkIndex, cb)drone.getPsdkControlModule().listenDrcPsdkFloatingWindowTextInfo(psdkIndex, cb)模块化+DRC
12drone.cancelListenPsdkFloatingWindowTextInfo(psdkIndex, id)drone.getPsdkControlModule().cancelListenDrcPsdkFloatingWindowTextInfo(psdkIndex, id)模块化+DRC

B 类:模块化搬迁(动作方法,方法名不变)#

#KOC2KOC3标签
1drone.searchlightModeSet(psdkIndex, mode, cb)drone.getPsdkControlModule().searchlightModeSet(psdkIndex, mode, cb)模块化
2drone.searchlightBrightnessSet(psdkIndex, brightness, cb)drone.getPsdkControlModule().searchlightBrightnessSet(psdkIndex, brightness, cb)模块化
3drone.searchlightCalibration(psdkIndex, cb)drone.getPsdkControlModule().searchlightCalibration(psdkIndex, cb)模块化
4drone.searchlightFineTuningSet(psdkIndex, position, value, saved, cb)drone.getPsdkControlModule().searchlightFineTuningSet(psdkIndex, position, value, saved, cb)模块化
5drone.searchlightWideFieldModeSet(psdkIndex, mode, cb)drone.getPsdkControlModule().searchlightWideFieldModeSet(psdkIndex, mode, cb)模块化
6drone.searchlightLightGimbalControlSet(psdkIndex, control, cb)drone.getPsdkControlModule().searchlightLightGimbalControlSet(psdkIndex, control, cb)模块化
7drone.searchlightTypeSet(psdkIndex, type, cb)drone.getPsdkControlModule().searchlightTypeSet(psdkIndex, type, cb)模块化
8drone.speakerAudioPlayStart(psdkIndex, info, cb)drone.getPsdkControlModule().speakerAudioPlayStart(psdkIndex, info, cb)模块化
9drone.speakerTTSPlayStart(psdkIndex, info, cb)drone.getPsdkControlModule().speakerTTSPlayStart(psdkIndex, info, cb)模块化
10drone.speakerReplay(psdkIndex, cb)drone.getPsdkControlModule().speakerReplay(psdkIndex, cb)模块化
11drone.speakerPlayStop(psdkIndex, cb)drone.getPsdkControlModule().speakerPlayStop(psdkIndex, cb)模块化
12drone.speakerPlayVolumeSet(psdkIndex, volume, cb)drone.getPsdkControlModule().speakerPlayVolumeSet(psdkIndex, volume, cb)模块化
13drone.speakerPlayModeSet(psdkIndex, mode, cb)drone.getPsdkControlModule().speakerPlayModeSet(psdkIndex, mode, cb)模块化
14drone.speakerTTSSet(psdkIndex, config, cb)drone.getPsdkControlModule().speakerTTSSet(psdkIndex, config, cb)模块化
15drone.widgetValueSet(psdkIndex, index, value, cb)drone.getPsdkControlModule().widgetValueSet(psdkIndex, index, value, cb)模块化
16drone.widgetInputBoxTextSet(psdkIndex, value, cb)drone.getPsdkControlModule().widgetInputBoxTextSet(psdkIndex, value, cb)模块化

1e. Drone → 其他子模块#

目标模块方法标签
TakeoffModuletakeoff(params, cb)模块化
ControlAuthModuleacquireFlightControlAuthority(cb) / releaseFlightControlAuthority(cb) / listenFlightControlAuthority(cb) / cancelListenFlightControlAuthority(id) / acquirePayloadControlAuthority(payloadIndex, cb) / releasePayloadControlAuthority(payloadIndex, cb) / listenPayloadControlAuthority(payloadIndex, cb) / cancelListenPayloadControlAuthority(payloadIndex, id)模块化
DrcModuleconnectDrcLink(cb) / disconnectDrcLink(cb) / listenLinkStatus(cb) / cancelListenLinkStatus(id)模块化
FlightSettingsModulesetFlightSmartPlanMode(mode, cb) / setOutOfControlAction(action, cb) / setFlightTaskHeight(height, cb) / setRthAltitude(altitude, cb) / setAirTransferEnable(enabled, cb)模块化
DeviceStateModulelistenDroneOnlineStatus(cb) / cancelListenDroneOnlineStatus(id)模块化
DeviceManageModulelistenDeviceTopoChanged(cb) / cancelListenDeviceTopoChanged(id)模块化
LiveDeviceModulelistenLiveAvailableRange(cb) / cancelListenLiveAvailableRange(id)模块化

1f. Drone → DeviceHMSModule(HMS — Aircraft→Device 改名)#

#KOC2KOC3标签
1drone.listenAircraftHMS(cb)drone.getDeviceHMSModule().listenDeviceHMS(cb)模块化+改名
2drone.cancelListenAircraftHMS(id)drone.getDeviceHMSModule().cancelListenDeviceHMS(id)模块化+改名
注意:Aircraft → Device 改名。Drone 和 Dock 共享同一个 DeviceHMSModule。

1g. Drone 上保留的方法(不变)#

方法说明
drone.getLiveStream(params)获取直播模块
drone.getLiveRecord(params)获取录像模块
drone.getFlyToPointModule()获取 FlyTo 模块
drone.getPoiModule()获取 POI 模块
drone.getFlightTaskControlModule()获取航线任务控制模块

变更 2:Dock 模块化搬迁#

KOC2 中 Dock 有 89 个方法。KOC3 只剩 11 个 getter。

Dock 新增的 getter(KOC3)#

getter返回类型
getDockOsdModule()DockOsdModule
getDockControlModule()DockControlModule
getDeployModule()DeployModule
getDeviceStateModule()DeviceStateModule
getDeviceHMSModule()DeviceHMSModule
getLiveDeviceModule()LiveDeviceModule
getRtkCalibrationModule()RtkCalibrationModule
getNetworkTestModule()NetworkTestModule
getDeviceDebugModule()DeviceDebugModule

2a. Dock → DockOsdModule(Dock OSD 监听)#

所有 listenDock* / cancelListenDock* 方法搬到 DockOsdModule,方法名不变。
#方法范围标签
1–2listenDockLocation / cancelListenDockLocation模块化
3–4listenDroneInDock / cancelListenDroneInDock模块化
5–6listenDockCoverState / cancelListenDockCoverState模块化
7–8listenDockMediaFileDetail / cancelListenDockMediaFileDetail模块化
9–10listenDockWirelessLink / cancelListenDockWirelessLink模块化
11–12listenDockJobNumber / cancelListenDockJobNumber模块化
13–14listenDockPowerState / cancelListenDockPowerState模块化
15–16listenDockStorageState / cancelListenDockStorageState模块化
17–18listenDockFirstPowerOnTime / cancelListenDockFirstPowerOnTime模块化
19–20listenDockAccumulatedRunningTime / cancelListenDockAccumulatedRunningTime模块化
21–22listenDockAlternateLandPoint / cancelListenDockAlternateLandPoint模块化
23–24listenDockPositionState / cancelListenDockPositionState模块化
25–26listenDockActivationTime / cancelListenDockActivationTime模块化
27–28listenDockBatteryStoreMode / cancelListenDockBatteryStoreMode模块化
29–30listenDockAlarmState / cancelListenDockAlarmState模块化
31–32listenDockDroneBatteryMaintenanceInfo / cancelListenDockDroneBatteryMaintenanceInfo模块化
33–34listenDockEmergencyStopState / cancelListenDockEmergencyStopState模块化
35–36listenDockSilentMode / cancelListenDockSilentMode模块化
37–38listenDockUserExperienceImprovement / cancelListenDockUserExperienceImprovement模块化
39–40listenDockDrcState / cancelListenDockDrcState模块化
41–42listenDockPutterState / cancelListenDockPutterState模块化
43–44listenDockRelativeAlternateLandPoint / cancelListenDockRelativeAlternateLandPoint模块化
45–46listenDockSelfConvergeCoordinate / cancelListenDockSelfConvergeCoordinate模块化
47–48listenDockFirmwareInfo / cancelListenDockFirmwareInfo模块化
49–50listenDockModeCode / cancelListenDockModeCode模块化
51–52listenDockSubDevice / cancelListenDockSubDevice模块化
53–54listenDockNetworkState / cancelListenDockNetworkState模块化
55–56listenDockDroneChargeState / cancelListenDockDroneChargeState模块化
57–58listenDockMeteorologicalInfo / cancelListenDockMeteorologicalInfo模块化
59–60listenDockBackupBatteryInfo / cancelListenDockBackupBatteryInfo模块化
61–62listenDockMaintainStatusInfo / cancelListenDockMaintainStatusInfo模块化

2b. Dock → DockControlModule(Dock 控制)#

#KOC2KOC3标签
1dock.changeDockCameraPosition(liveInfo, cameraPosition, gatewaySn, cb)dock.getDockControlModule().changeDockCameraPosition(liveInfo, cameraPosition, gatewaySn, cb)模块化
2dock.listenDockAirConditionerStatusInfo(cb)dock.getDockControlModule().listenDockAirConditionerStatusInfo(cb)模块化
3dock.cancelListenDockAirConditionerStatusInfo(id)dock.getDockControlModule().cancelListenDockAirConditionerStatusInfo(id)模块化
4dock.listenDockSupplementLightState(cb)dock.getDockControlModule().listenDockSupplementLightState(cb)模块化
5dock.cancelListenDockSupplementLightState(id)dock.getDockControlModule().cancelListenDockSupplementLightState(id)模块化
6dock.setDockSupplementLightState(state, cb)dock.getDockControlModule().setDockSupplementLightState(state, cb)模块化
7dock.setDockChargeState(state, cb)dock.getDockControlModule().setDockChargeState(state, cb)模块化
8dock.setDockCoverState(mode, cb)dock.getDockControlModule().setDockCoverState(mode, cb)模块化
9dock.setDockAirConditionerMode(mode, cb)dock.getDockControlModule().setDockAirConditionerMode(mode, cb)模块化

2c. Dock → DeviceHMSModule(HMS — DockHMS→DeviceHMS 改名)#

#KOC2KOC3标签
1dock.listenDockHMS(cb)dock.getDeviceHMSModule().listenDeviceHMS(cb)模块化+改名
2dock.cancelListenDockHMS(id)dock.getDeviceHMSModule().cancelListenDeviceHMS(id)模块化+改名

2d. Dock → 其他子模块#

目标模块方法标签
DeviceStateModulelistenDockOnlineStatus(cb) / cancelListenDockOnlineStatus(id)模块化
DeviceManageModulelistenDeviceTopoChanged(cb) / cancelListenDeviceTopoChanged(id)模块化
LiveDeviceModulelistenLiveAvailableRange(cb) / cancelListenLiveAvailableRange(id)模块化
TakeoffModulelistenCommandTaskEvent(cb) / cancelListenCommandTaskEvent(id)模块化
FlyToPointModulelistenFlyToTaskEvent(cb) / cancelListenFlyToTaskEvent(id)模块化
FlightTaskControlModulelistenWaylineTaskEvent(cb) / cancelListenWaylineTaskEvent(id)模块化
PoiModulelistenPoiTaskEvent(cb) / cancelListenPoiTaskEvent(id)模块化

2e. Dock 上保留的方法(不变)#

方法说明
dock.getLiveStream(params)获取直播模块
dock.getLiveRecord(params)获取录像模块
代码示例:

变更 3:Workspace 模块化搬迁#

KOC2 中 Workspace 有 64 个方法。KOC3 只剩 18 个 getter。

Workspace 新增的 getter(KOC3)#

getter返回类型
getDeviceManageModule()DeviceManageModule
getFirmwareManageModule()FirmwareManageModule
getWaylineManageModule()WaylineManageModule
getPsdkResourceModule()PsdkResourceModule
getAIBoxModule()AIBoxModule
getFlashLedModule()FlashLedModule
getAIInsideManageModule()AIInsideManageModule
getElementModule()ElementModule
getAIAlertModule()AiAlertModule
getLiveSyncModule()LiveSyncModule
移除的 getter:getDeviceDebugModule()(改为通过 drone.getDeviceDebugModule() 或 dock.getDeviceDebugModule() 获取)

搬迁规则#

目标模块方法范围标签
DeviceManageModulegetDeviceList(cb) / getDeviceDetailInfo(sn, cb) / modifyDeviceName(params, cb) / unbindDevice(sns, cb) / listenWorkspaceDeviceChanged(cb) / cancelListenWorkspaceDeviceChanged(id) / getDockDeviceStatus(params, cb) / getDroneDeviceStatus(params, cb)模块化
PsdkResourceModulegetPsdkSpeakerResourceList(cb) / createPsdkSpeakerResource(params, cb) / editPsdkSpeakerResource(params, cb) / deletePsdkSpeakerResource(id, cb) / getSTS(cb) / uploadSpeakerAudioFile(filePath, stsInfo, cb) / getPsdkWidgetResources(params, cb)模块化
FirmwareManageModulegetLatestFirmwareReleaseNote(keys, lang, cb) / invokeFirmwareUpgrade(params, cb) / queryFirmwareUpgradeProgress(sn, cb) / uploadFirmwareFile(filePath, cb) / releaseFirmware(fileId, cb) / unReleaseFirmware(fileId, cb) / deleteFirmware(fileId, cb) / queryFirmwareList(page, pageSize, cb) / queryFirmwareCompatibilityConfig(cb) / checkFirmwareStatus(sns, statuses, cb) / submitFirmwareInfo(info, cb)模块化
WaylineManageModulegetWaylineList(param, cb) / getWaylineDetail(uuid, cb) / batchDeleteWaylines(uuids, cb) / updateWayline(uuid, name, cb) / submitWaylineInfo(param, cb) / batchDownloadWaylines(param, cb) / duplicateWayline(param, cb) / listenImportWaylineEvent(cb) / cancelListenImportWaylineEvent(id)模块化
AIBoxModulefetchAIBoxInfo(sn, cb) / uploadAIBoxFile(filePath, sn, boxSn, cb) / fetchFileDownloadUrl(param, cb) / fetchAppList(param, cb) / fetchAppListProgress(param, cb) / exportFile(param, cb) / exportFileProgress(param, cb) / installApp(param, cb) / installAppProgress(param, cb) / operateApp(param, cb)模块化
SafetyServiceModulegetUnlockLicenseList(param, cb) / switchUnlockLicense(param, cb) / checkUnlockLicense(param, cb) / submitUnlockLicense(param, cb) / clearDeviceUnlockLicense(sn, cb) / uploadUnlockLicenseFile(filePath, cb)模块化
LiveDeviceModulegetAudienceCount(group, cb)模块化+签名变化
注意:
listenDeviceTopoChanged / cancelListenDeviceTopoChanged 在 KOC2 中位于 Drone 和 Dock(非 Workspace),KOC3 搬到 DeviceManageModule,详见变更 1e 和 2d。
getAudienceCount 签名变化:KOC2 为 getAudienceCount(deviceList, group, cb),KOC3 删除了 deviceList 参数,改为 getAudienceCount(group, cb)。

Workspace 上保留的 getter(不变)#

getFlightTaskModule() / getMediaServiceModule() / getTerraBuildModule() / getSafetyServiceModule() / getFlightTaskRecordModule() / getHMSModule() / getLogManagementModule() / getMaintenanceManagementModule() / getDiagnosisManagementModule()

变更 4:Available 监听方法废弃#

KOC2 提供了大量 listenXxxAvailable / cancelListenXxxAvailable 方法,用于在调用功能前检查该功能是否可用。KOC3 全部删除。
无 1:1 等价替代。KOC3 的设计理念是"直接调用,通过回调错误码判断结果",不再提供前置可用性查询。
替代建议:(1) 飞行控制类能力可用 ControlAuthModule(drone.getControlAuthModule())检查控制权获取状态,确保有权限后再调用;(2) 相机类能力直接调用 drcTakePhoto() 等方法,在回调中判断 FlightHubError 错误码,按错误码做降级处理。

已删除的 Available 方法#

#废弃方法(KOC2)所属功能域
1listenPanoramaAvailable / cancelListenPanoramaAvailable相机/全景
2listenSwitchLiveLensAvailable / cancelListenSwitchLiveLensAvailable相机/直播
3listenTakePhotoAvailable / cancelListenTakePhotoAvailable相机/拍照
4listenRecordAvailable / cancelListenRecordAvailable相机/录像
5listenZoomAtTargetAvailable / cancelListenZoomAtTargetAvailable相机/变焦
6listenSetFocalLengthAvailable / cancelListenSetFocalLengthAvailable相机/焦距
7listenSwitchCameraModeAvailable / cancelListenSwitchCameraModeAvailable相机/模式切换
8listenLookAtTargetAvailable / cancelListenLookAtTargetAvailable相机/看向目标
9listenThermalGainModeAvailable / cancelListenThermalGainModeAvailable红外/增益模式
10listenThermalGainModeSetAvailable / cancelListenThermalGainModeSetAvailable红外/增益设置
11listenFlyToPointAvailable / cancelListenFlyToPointAvailable飞行控制/FlyTo
12listenFlightTaskControlAvailable / cancelListenFlightTaskControlAvailable飞行控制/航线任务
13listenEmergencyStopAvailable / cancelListenEmergencyStopAvailable飞行控制/紧急停止
14listenSticksControlAvailable / cancelListenSticksControlAvailable飞行控制/摇杆
15listenTakeoffAvailable / cancelListenTakeoffAvailable飞行控制/起飞
16listenReturnHomeAvailable / cancelListenReturnHomeAvailable飞行控制/返航
17listenReturnHomeCancelAvailable / cancelListenReturnHomeCancelAvailable飞行控制/取消返航

变更 5:其他废弃方法#

KOC2 方法说明
drone.listenAircraftTakeoffProgress(cb) / cancelListenAircraftTakeoffProgress(id)删除(KOC3 无对应方法)
workspace.getFlysafeDatabaseUpgradeCheck(sn, cb) / invokeFlysafeDatabaseUpgrade(sns, cb)删除(限飞库升级功能取消)
注意:KOC2 Workspace 上的 fetchFileDownloadUrl / fetchAppList / fetchAppListProgress / exportFile / exportFileProgress / installApp / installAppProgress / operateApp 等 8 个方法不是废弃,而是迁移到了 AIBoxModule(详见变更 3)。参数类型改为 AIBox 专用 param 类。
flightTaskRecordModule.getExportFlightRecordsProgress(...) 在 KOC3 中仍保留,无需迁移。

变更 6:DeviceDebugModule 拆分 + 签名变化#

KOC2 中 DeviceDebugModule 通过 workspace.getDeviceDebugModule() 获取。KOC3 中改为通过 drone.getDeviceDebugModule() 或 dock.getDeviceDebugModule() 获取,且网络测试、RTK 标定、中继器控制方法被拆分到 3 个新模块,去掉了 String device_sn 参数。

6a. 网络测试 → NetworkTestModule#

获取路径:dock.getNetworkTestModule()
#KOC2KOC3变化
1deviceDebug.startNetworkTest(sn, cb)networkTest.startNetworkTest(cb)去掉 sn
2deviceDebug.stopNetworkTest(sn, cb)networkTest.stopNetworkTest(cb)去掉 sn
3deviceDebug.getNetworkTestProgress(sn, cb)networkTest.getNetworkTestProgress(cb)去掉 sn
4deviceDebug.subscribeDeviceNetworkSpeedTestProgress(sn, cb)networkTest.subscribeNetworkTestProgress(cb)改名 + 去掉 sn
5deviceDebug.unSubscribeDeviceNetworkSpeedTestProgress(id)networkTest.unsubscribeNetworkTestProgress(id)改名

6b. RTK 标定 → RtkCalibrationModule#

获取路径:dock.getRtkCalibrationModule() / baseStation.getRtkCalibrationModule() / relay.getRtkCalibrationModule()
#KOC2KOC3变化
1deviceDebug.subscribeDeviceRtkCalibrationProgress(sn, cb)rtkCalibration.subscribeCalibrationProgress(cb)改名 + 去掉 sn
2deviceDebug.unSubscribeDeviceRtkCalibrationProgress(id)rtkCalibration.unsubscribeCalibrationProgress(id)改名
3deviceDebug.deviceRtkCalibrationByManual(sn, params, cb)rtkCalibration.calibrationByManual(params, cb)改名 + 去掉 sn
4deviceDebug.deviceRtkCalibrationByNetwork(sn, params, cb)rtkCalibration.calibrationByNetwork(params, cb)改名 + 去掉 sn
5deviceDebug.relayRtkCalibrationByManual(sn, params, cb)rtkCalibration.calibrationByManual(params, cb)改名 + 去掉 sn + 与 #3 合并(回调 RelayRtkCalibrationCallback → RtkCalibrationCallback)
6deviceDebug.relayRtkCalibrationByNetwork(sn, params, cb)rtkCalibration.calibrationByNetwork(params, cb)改名 + 去掉 sn + 与 #4 合并(回调 RelayRtkCalibrationCallback → RtkCalibrationCallback)
注意:KOC2 中 device 和 relay 各有 2 个标定方法(共 4 个),KOC3 合并为 2 个(calibrationByManual / calibrationByNetwork),不再区分 device/relay。回调类型统一为 RtkCalibrationCallback。

6c. 中继器控制 → RelayControlModule#

获取路径:relay.getRelayControlModule()
#KOC2KOC3变化
1deviceDebug.setRelayBroadcastHide(sn, isHide, cb)relayControl.setRelayBroadcastHide(isHide, cb)去掉 sn
2deviceDebug.setRelaySSID(sn, name, cb)relayControl.setRelaySSID(name, cb)去掉 sn
3deviceDebug.setRelayPassword(sn, pwd, cb)relayControl.setRelayPassword(pwd, cb)去掉 sn
4deviceDebug.setRelaySearchMode(sn, mode, cb)relayControl.setRelaySearchMode(mode, cb)去掉 sn
5deviceDebug.setRelayOccupiedStatus(sn, status, cb)relayControl.setRelayOccupiedStatus(status, cb)去掉 sn
6deviceDebug.relayReboot(sn, cb)relayControl.relayReboot(cb)去掉 sn
7deviceDebug.relayDisconnect(sn, cb)relayControl.relayDisconnect(cb)去掉 sn

6d. DeviceDebugModule 新增方法(KOC3)#

方法说明
startManualBatterySwap(sn, slotId, cb)手动换电
getManualBatterySwapProgress(sn, cb)换电进度
setDonglePowerSwitch(sn, state, cb)Dongle 电源开关
setLowPowerSwitch(sn, mode, cb)低电量模式
getEsimOperatorSwitchProgress(sn, cb)eSIM 切换进度

变更 7:FlyToPointModule 方法改名#

KOC2KOC3标签
flyToPoint.stop(cb)flyToPoint.drcStop(cb)DRC 前缀
其他方法(start、subscribeFlyToPointProgress、updateTargetPoints 等)不变。

变更 8:FlightHubSDK 门面补齐与入口变化#

门面与内部实现:FlightHubSDK 是面向用户的门面类,用户代码应通过它获取所有设备实例和管理能力。FlightHubSdkManager 是内部实现类,用户不应直接调用。KOC2 中 FlightHubSDK 门面不完整,用户部分场景仍需直接使用 FlightHubSdkManager;KOC3 补齐门面,统一走 FlightHubSDK。

8a. 入口类切换:FlightHubSdkManager → FlightHubSDK#

KOC2KOC3说明
FlightHubSdkManager.initialize(config)FlightHubSDK.initialize(config)SDK 初始化
FlightHubSdkManager.shutdown()FlightHubSDK.shutdown()SDK 关闭
FlightHubSdkManager.isInitialized()FlightHubSDK.isInitialized()初始化状态
FlightHubSdkManager.getVersion()FlightHubSDK.getVersion()版本号
FlightHubSdkManager.getBuildInfo()FlightHubSDK.getBuildInfo()构建信息
FlightHubSdkManager.setLogLevel(level)FlightHubSDK.setLogLevel(level)日志级别
FlightHubSdkManager.setWebSocketAuthHeaders(headers)FlightHubSDK.setWebSocketAuthHeaders(headers)WebSocket 鉴权头
FlightHubSdkManager.setHttpHeaders(headers)FlightHubSDK.setHttpHeaders(headers)HTTP 鉴权头
FlightHubSdkManager.getWebSocketAuthHeaders()FlightHubSDK.getWebSocketAuthHeaders()获取 WebSocket 鉴权头
FlightHubSdkManager.getHttpHeaders()FlightHubSDK.getHttpHeaders()获取 HTTP 鉴权头
FlightHubSdkManager.getConfig()FlightHubSDK.getConfig()获取配置
FlightHubSdkManager.getWorkspaceInstance()FlightHubSDK.getWorkspaceInstance()获取 Workspace 实例
FlightHubSdkManager.getDroneInstance(sn)FlightHubSDK.getDroneInstance(sn)获取 Drone 实例
FlightHubSdkManager.getDockInstance(sn)FlightHubSDK.getDockInstance(sn)获取 Dock 实例
FlightHubSdkManager.getStreamInstance()FlightHubSDK.getStream()获取 Stream 实例(注意方法名变化)

8b. 移除的 session 机制#

KOC2 使用 session 机制管理多工作空间连接。KOC3 移除 session 概念。
KOC2KOC3变化
FlightHubSdkManager.registerWorkspaceToken(uuid, token)删除session 注册机制移除
FlightHubSdkManager.getSessionInfo(sessionId)删除session 查询移除
FlightHubSdkManager.getWorkspaceInstance(sessionId)删除改用 FlightHubSDK.getWorkspaceInstance()
FlightHubSdkManager.getDroneInstance(sessionId, sn)删除改用 FlightHubSDK.getDroneInstance(sn)
FlightHubSdkManager.getDockInstance(sessionId, sn)删除改用 FlightHubSDK.getDockInstance(sn)

8c. 新增设备类型门面入口#

KOC3 在 FlightHubSDK 门面上新增以下设备实例获取方法(KOC2 无对应能力):
KOC3 新增说明
FlightHubSDK.getRemoteControllerInstance(sn)获取遥控器实例
FlightHubSDK.getBaseStationInstance(sn)获取基站实例
FlightHubSDK.getRelayInstance(sn)获取中继器实例

变更 9:FlightTaskControlModule 变化#

KOC2KOC3变化
flightTaskControl.listenFlightTaskControlAvailable(cb)删除Available 方法废弃
flightTaskControl.cancelListenFlightTaskControlAvailable(id)删除Available 方法废弃
—flightTaskControl.listenWaylineTaskEvent(cb)新增(从 Dock 搬入)
—flightTaskControl.cancelListenWaylineTaskEvent(id)新增(从 Dock 搬入)
pause(cb) / resume(cb) / getModule() 不变。

变更 10:Bean / 参数类破坏性变化#

⚠️ 编译期必挂:以下 Bean 的字段被删除或改名,调用方 getter/setter 会直接编译失败。即使方法搬迁已改完,也必须逐个检查这些 Bean 的使用点。

10a. TakeoffParams — 删除 mediaFolderName#

字段KOC2KOC3变化
mediaFolderNameString(默认 "")❌ 删除删除 — getMediaFolderName() / setMediaFolderName() 编译失败
cloudToCloudId❌String(默认 "")新增(云云对接存储桶 ID)
needVerifyFlightControl❌int(默认 -1)新增(是否需校验飞控权)
commanderFlightMode默认 0默认 -1默认值变化(0→-1,语义"未设置")
commanderFlightHeight默认 0默认 -1默认值变化
rthMode默认 0默认 -1默认值变化
迁移动作:

10b. LiveRecordItem — 字段大面积改名#

KOC2 字段KOC3 字段变化
recordId (String)bid (String)改名
status (String)state (int)改名 + 类型变化(String→int,0=成功/1=录制中/2=初始化/3=失败)
startTs (long)duration (long)改名(不再返回起止时间戳,改为录制时长秒)
endTs (long)❌删除(合并为 duration)
video (String)❌删除
camera (String)camera (String)保留(唯一不变字段)
❌sn (String)新增(设备 SN)
❌createdBy (String)新增(创建者)
迁移动作:

10c. FlightHubSdkConfig — 删除 token,新增 drtcConfigPath#

字段KOC2KOC3变化
tokenString(默认 "")❌ 删除删除 — getToken() / setToken() 编译失败。认证方式变更,不再通过 config 注入 token
drtcConfigPath❌String(默认 "")新增(DRTC Native SDK 配置文件路径,如 drtc_config_node.json)
其余字段——不变(logLevel / address / port / notificationServerAddress 等)
迁移动作:
上一页
新增方法详情
下一页
迁移操作步骤
Built with