a2e88abb创建于 2025年7月14日历史提交

@ohos.distributedHardware.mechanicManager (机械体控制模块)

本模块提供与机械设备交互的能力,包括设备连接状态监听、跟踪控制和跟踪状态监听功能。

说明:

本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import { mechanicManager } from '@kit.MechanicKit';

mechanicManager.on('attachStateChange')

on(type: 'attachStateChange', callback: Callback<AttachStateChangeInfo>): void

注册连接状态变化事件的回调监听,等待连接状态变化。使用callback异步回调。

系统能力:SystemCapability.Mechanic.Core

参数:

参数名 类型 必填 说明
type 'attachStateChange' 注册监听事件的类型。取值为:'attachStateChange'。
callback Callback<AttachStateChangeInfo> 回调函数,返回机械体设备连接变化信息。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.

示例:

let callback = (result: mechanicManager.AttachStateChangeInfo) => {
  console.info(`'callback result:' ${result}`);
};

console.info('Register');
mechanicManager.on("attachStateChange", callback);
console.info('Register: success');

mechanicManager.off('attachStateChange')

off(type: 'attachStateChange', callback?: Callback<AttachStateChangeInfo>): void

取消注册连接状态变化事件的回调监听。使用callback异步回调。

系统能力:SystemCapability.Mechanic.Core

参数:

参数名 类型 必填 说明
type 'attachStateChange' 取消注册监听事件的类型。取值为:'attachStateChange'。
callback Callback<AttachStateChangeInfo> mechanicManager.off('attachStateChange')注册的回调函数。不填时默认取消所有注册的回调函数。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.

示例:

let callback = (result: mechanicManager.AttachStateChangeInfo) => {
  console.info(`'callback result:' ${result}`);
};

console.info('Unregister');
mechanicManager.off("attachStateChange", callback);
console.info('Unregister: success');

mechanicManager.getAttachedMechDevices

getAttachedMechDevices(): MechInfo[]

获取已连接的机械体设备列表。

系统能力:SystemCapability.Mechanic.Core

返回值:

类型 说明
MechInfo[] 已连接机械体设备的列表。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.

示例:

console.info('Query device list');
let mechanicInfos = mechanicManager.getAttachedMechDevices();
console.info(`'device list:' ${mechanicInfos}`);

mechanicManager.setCameraTrackingEnabled

setCameraTrackingEnabled(isEnabled: boolean): void

启用或禁用当前机械体设备摄像头跟踪。

系统能力:SystemCapability.Mechanic.Core

参数:

参数名 类型 必填 说明
isEnabled boolean 是否启用摄像头跟踪, true表示启用摄像头跟踪,false表示禁用摄像头跟踪。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.
33300002 Device not connected.
33300003 Device not supported.

示例:

console.info('Enable tracing');
mechanicManager.setCameraTrackingEnabled(true);
console.info('Enable Tracking Success');

mechanicManager.getCameraTrackingEnabled

getCameraTrackingEnabled(): boolean

检查当前机械体设备是否启用了摄像头跟踪。

系统能力:SystemCapability.Mechanic.Core

返回值:

类型 说明
boolean 摄像头跟踪启用状态,摄像头跟踪启用状态,true表示摄像头跟踪已启用,false表示摄像头跟踪已禁用。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.
33300002 Device not connected.

示例:

console.info('Get tracking status');
let enabled = mechanicManager.getCameraTrackingEnabled();
console.info(`'current tracking status:' ${enabled}`);

mechanicManager.on('trackingStateChange')

on(type: 'trackingStateChange', callback: Callback<TrackingEventInfo>): void

注册跟踪状态变化事件的回调监听。使用callback异步回调。

系统能力:SystemCapability.Mechanic.Core

参数:

参数名 类型 必填 说明
type 'trackingStateChange' 注册监听事件的类型。取值为:'trackingStateChange'。
callback Callback<TrackingEventInfo> 回调函数,返回跟踪事件信息。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.

示例:

let callback = (result: mechanicManager.TrackingEventInfo) => {
  console.info(`'callback result:' ${result}`);
};

console.info('Register');
mechanicManager.on("trackingStateChange", callback);
console.info('Register: success');

mechanicManager.off('trackingStateChange')

off(type: 'trackingStateChange', callback?: Callback<TrackingEventInfo>): void

取消注册跟踪状态变化事件的回调监听。使用callback异步回调。

系统能力:SystemCapability.Mechanic.Core

参数:

参数名 类型 必填 说明
type 'trackingStateChange' 取消注册注册监听事件的类型。取值为:'trackingStateChange'。
callback Callback<TrackingEventInfo> mechanicManager.off('trackingStateChange')注册的回调函数。不填时默认取消所有注册的回调函数。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.

示例:

let callback = (result: mechanicManager.TrackingEventInfo) => {
  console.info(`'callback result:' ${result}`);
};

console.info('Unregister');
mechanicManager.off("trackingStateChange", callback);
console.info('Unregister: success');

mechanicManager.getCameraTrackingLayout

getCameraTrackingLayout(): CameraTrackingLayout

获取当前机械设备摄像头跟踪布局。

系统能力:SystemCapability.Mechanic.Core

返回值:

类型 说明
CameraTrackingLayout 获取到的当前机械体设备摄像头跟踪布局。

错误码:

以下的错误码的详细介绍请参见机械体控制模块错误码

错误码ID 错误信息
33300001 Service exception.
33300002 Device not connected.

示例:

console.info('Query layout');
let layout = mechanicManager.getCameraTrackingLayout();
console.info(`'Query layout successful, current layout:' ${layout}`);

MechInfo

机械体设备信息。

系统能力:SystemCapability.Mechanic.Core

名称 类型 只读 可选 说明
mechId int 机械体设备ID。
mechDeviceType MechDeviceType 机械设备的类型。
mechName string 机械体设备名称。

TrackingEventInfo

跟踪事件信息。

系统能力:SystemCapability.Mechanic.Core

名称 类型 只读 可选 说明
event TrackingEvent 跟踪事件。

AttachStateChangeInfo

设备连接状态变化的信息。

系统能力:SystemCapability.Mechanic.Core

名称 类型 只读 可选 说明
state AttachState 设备连接状态。
mechInfo MechInfo 机械体设备信息。

TrackingEvent

跟踪事件的枚举。

系统能力:SystemCapability.Mechanic.Core

名称 说明
CAMERA_TRACKING_USER_ENABLED 0 用户启用了摄像头跟踪。
CAMERA_TRACKING_USER_DISABLED 1 用户禁用了摄像头跟踪。
CAMERA_TRACKING_LAYOUT_CHANGED 2 摄像头跟踪构图变更。

MechDeviceType

机械体设备类型的枚举。

系统能力:SystemCapability.Mechanic.Core

名称 说明
GIMBAL_DEVICE 0 便携式云台设备。

AttachState

设备连接状态的枚举。

系统能力:SystemCapability.Mechanic.Core

名称 说明
ATTACHED 0 设备已连接。
DETACHED 1 设备已断开。

CameraTrackingLayout

摄像头跟踪布局的枚举。

系统能力:SystemCapability.Mechanic.Core

名称 说明
DEFAULT 0 系统默认跟踪布局。
LEFT 1 靠左布局。
MIDDLE 2 居中布局。
RIGHT 3 靠右布局。