• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.distributedHardware.mechanicManager (机械体控制模块)
2<!--Kit: Mechanic Kit-->
3<!--Subsystem: Mechanic-->
4<!--Owner: @hobbycao-->
5<!--Designer: @saga2025-->
6<!--Tester: @zhaodengqi-->
7<!--Adviser: @foryourself-->
8
9本模块提供与机械设备交互的能力,包括设备连接状态监听、跟踪控制和跟踪状态监听功能。
10
11> **说明:**
12>
13> 本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## 导入模块
16
17```js
18import { mechanicManager } from '@kit.MechanicKit';
19```
20
21## mechanicManager.on('attachStateChange')
22
23on(type: 'attachStateChange', callback: Callback\<AttachStateChangeInfo>): void
24
25注册连接状态变化事件的回调监听,等待连接状态变化。使用callback异步回调。
26
27**系统能力**:SystemCapability.Mechanic.Core
28
29**参数:**
30
31| 参数名     | 类型           | 必填 | 说明     |
32| ---------- | ------------- | ---- | ------- |
33| type | 'attachStateChange' | 是 | 注册监听事件的类型。取值为:'attachStateChange'。 |
34| callback | Callback\<[AttachStateChangeInfo](#attachstatechangeinfo)> | 是 | 回调函数,返回机械体设备连接变化信息。 |
35
36**错误码:**
37
38以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
39
40| 错误码ID | 错误信息           |
41| -------- | ----------------- |
42| 33300001 | Service exception. |
43
44**示例:**
45
46```ts
47let callback = (result: mechanicManager.AttachStateChangeInfo) => {
48  console.info(`'callback result:' ${result}`);
49};
50
51console.info('Register');
52mechanicManager.on("attachStateChange", callback);
53console.info('Register: success');
54```
55
56## mechanicManager.off('attachStateChange')
57
58off(type: 'attachStateChange', callback?: Callback\<AttachStateChangeInfo>): void
59
60取消注册连接状态变化事件的回调监听。使用callback异步回调。
61
62**系统能力**:SystemCapability.Mechanic.Core
63
64**参数:**
65
66| 参数名     | 类型           | 必填 | 说明   |
67| ---------- | ------------- | ---- | ----- |
68| type | 'attachStateChange' | 是 | 取消注册监听事件的类型。取值为:'attachStateChange'。|
69| callback | Callback\<[AttachStateChangeInfo](#attachstatechangeinfo)> | 否 | mechanicManager.off('attachStateChange')注册的回调函数。不填时默认取消所有注册的回调函数。 |
70
71**错误码:**
72
73以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
74
75| 错误码ID | 错误信息           |
76| -------- | ----------------- |
77| 33300001 | Service exception. |
78
79**示例:**
80
81```ts
82let callback = (result: mechanicManager.AttachStateChangeInfo) => {
83  console.info(`'callback result:' ${result}`);
84};
85
86console.info('Unregister');
87mechanicManager.off("attachStateChange", callback);
88console.info('Unregister: success');
89```
90
91## mechanicManager.getAttachedMechDevices
92
93getAttachedMechDevices(): MechInfo[]
94
95获取已连接的机械体设备列表。
96
97**系统能力**:SystemCapability.Mechanic.Core
98
99**返回值:**
100
101| 类型                                        | 说明        |
102| ------------------------------------------- | --------- |
103| [MechInfo](#mechinfo)[] | 已连接机械体设备的列表。 |
104
105**错误码:**
106
107以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
108
109| 错误码ID | 错误信息           |
110| -------- | ----------------- |
111| 33300001 | Service exception. |
112
113**示例:**
114
115```ts
116console.info('Query device list');
117let mechanicInfos = mechanicManager.getAttachedMechDevices();
118console.info(`'device list:' ${mechanicInfos}`);
119```
120
121## mechanicManager.setCameraTrackingEnabled
122
123setCameraTrackingEnabled(isEnabled: boolean): void
124
125启用或禁用当前机械体设备摄像头跟踪。
126
127**系统能力**:SystemCapability.Mechanic.Core
128
129**参数:**
130
131| 参数名     | 类型    | 必填 | 说明            |
132| --------- | ------- | ---- | -------------  |
133| isEnabled | boolean | 是 | 是否启用摄像头跟踪, true表示启用摄像头跟踪,false表示禁用摄像头跟踪。|
134
135**错误码:**
136
137以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
138
139| 错误码ID | 错误信息  |
140| -------- | ------- |
141| 33300001 | Service exception. |
142| 33300002 | Device not connected. |
143| 33300003 | Feature not supported. |
144
145**示例:**
146
147```ts
148console.info('Enable tracing');
149mechanicManager.setCameraTrackingEnabled(true);
150console.info('Enable Tracking Success');
151```
152
153## mechanicManager.getCameraTrackingEnabled
154
155getCameraTrackingEnabled(): boolean
156
157检查当前机械体设备是否启用了摄像头跟踪。
158
159**系统能力**:SystemCapability.Mechanic.Core
160
161**返回值:**
162
163| 类型    | 说明       |
164| ------- | --------- |
165| boolean | 摄像头跟踪启用状态,true表示已启用,false表示已禁用。|
166
167**错误码:**
168
169以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
170
171| 错误码ID | 错误信息           |
172| -------- | ----------------- |
173| 33300001 | Service exception. |
174| 33300002 | Device not connected. |
175
176**示例:**
177
178```ts
179console.info('Get tracking status');
180let enabled = mechanicManager.getCameraTrackingEnabled();
181console.info(`'current tracking status:' ${enabled}`);
182```
183
184## mechanicManager.on('trackingStateChange')
185
186on(type: 'trackingStateChange', callback: Callback\<TrackingEventInfo>): void
187
188注册跟踪状态变化事件的回调监听。使用callback异步回调。
189
190**系统能力**:SystemCapability.Mechanic.Core
191
192**参数:**
193
194| 参数名     | 类型                    | 必填 | 说明   |
195| ---------- | ---------------------- | ---- | ----- |
196| type | 'trackingStateChange' | 是 | 注册监听事件的类型。取值为:'trackingStateChange'。 |
197| callback | Callback\<[TrackingEventInfo](#trackingeventinfo)> | 是 | 回调函数,返回跟踪事件信息。 |
198
199**错误码:**
200
201以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
202
203| 错误码ID | 错误信息                                                        |
204| -------- | --------------------------------------------------------------- |
205| 33300001 | Service exception. |
206
207**示例:**
208
209```ts
210let callback = (result: mechanicManager.TrackingEventInfo) => {
211  console.info(`'callback result:' ${result}`);
212};
213
214console.info('Register');
215mechanicManager.on("trackingStateChange", callback);
216console.info('Register: success');
217```
218
219## mechanicManager.off('trackingStateChange')
220
221off(type: 'trackingStateChange', callback?: Callback\<TrackingEventInfo>): void
222
223取消注册跟踪状态变化事件的回调监听。使用callback异步回调。
224
225**系统能力**:SystemCapability.Mechanic.Core
226
227**参数:**
228
229| 参数名     | 类型                    | 必填 | 说明   |
230| ---------- | ---------------------- | ---- | ----- |
231| type | 'trackingStateChange' | 是 | 取消注册注册监听事件的类型。取值为:'trackingStateChange'。 |
232| callback | Callback\<[TrackingEventInfo](#trackingeventinfo)> | 否 | mechanicManager.off('trackingStateChange')注册的回调函数。不填时默认取消所有注册的回调函数。 |
233
234**错误码:**
235
236以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
237
238| 错误码ID | 错误信息                                                        |
239| -------- | --------------------------------------------------------------- |
240| 33300001 | Service exception. |
241
242**示例:**
243
244```ts
245let callback = (result: mechanicManager.TrackingEventInfo) => {
246  console.info(`'callback result:' ${result}`);
247};
248
249console.info('Unregister');
250mechanicManager.off("trackingStateChange", callback);
251console.info('Unregister: success');
252```
253
254## mechanicManager.getCameraTrackingLayout
255
256getCameraTrackingLayout(): CameraTrackingLayout
257
258获取当前机械设备摄像头跟踪布局。
259
260**系统能力**:SystemCapability.Mechanic.Core
261
262**返回值:**
263
264| 类型                                        | 说明        |
265| ------------------------------------------- | --------- |
266| [CameraTrackingLayout](#cameratrackinglayout) | 获取到的当前机械体设备摄像头跟踪布局。 |
267
268**错误码:**
269
270以下的错误码的详细介绍请参见[机械体控制模块错误码](errorcode-mechanic.md)。
271
272| 错误码ID | 错误信息           |
273| -------- | ----------------- |
274| 33300001 | Service exception. |
275| 33300002 | Device not connected. |
276
277**示例:**
278
279```ts
280console.info('Query layout');
281let layout = mechanicManager.getCameraTrackingLayout();
282console.info(`'Query layout successful, current layout:' ${layout}`);
283```
284
285## MechInfo
286
287机械体设备信息。
288
289**系统能力**:SystemCapability.Mechanic.Core
290
291| 名称   | 类型 | 只读 | 可选 | 说明|
292| ----- | ---- | ---- | --- | --- |
293| mechId | number | 否 | 否 | 机械体设备ID。 |
294| mechDeviceType | [MechDeviceType](#mechdevicetype) | 否 | 否 | 机械设备的类型。 |
295| mechName | string | 否 | 否 | 机械体设备名称。 |
296
297## TrackingEventInfo
298
299跟踪事件信息。
300
301**系统能力**:SystemCapability.Mechanic.Core
302
303| 名称   | 类型 | 只读 | 可选 | 说明|
304| ----- | ---- | ---- | --- | --- |
305| event | [TrackingEvent](#trackingevent) | 否 | 否 | 跟踪事件。 |
306
307## AttachStateChangeInfo
308
309设备连接状态变化的信息。
310
311**系统能力**:SystemCapability.Mechanic.Core
312
313| 名称   | 类型 | 只读 | 可选 | 说明|
314| ----- | ---- | ---- | --- | --- |
315| state | [AttachState](#attachstate) | 否 | 否 | 设备连接状态。 |
316| mechInfo | [MechInfo](#mechinfo) | 否 | 否 | 机械体设备信息。 |
317
318## TrackingEvent
319
320跟踪事件的枚举。
321
322**系统能力**:SystemCapability.Mechanic.Core
323
324| 名称         | 值  | 说明              |
325| ----------- | ---- | --------------- |
326| CAMERA_TRACKING_USER_ENABLED | 0 | 用户启用了摄像头跟踪。 |
327| CAMERA_TRACKING_USER_DISABLED | 1 | 用户禁用了摄像头跟踪。 |
328| CAMERA_TRACKING_LAYOUT_CHANGED | 2 | 摄像头跟踪构图变更。 |
329
330## MechDeviceType
331
332机械体设备类型的枚举。
333
334**系统能力**:SystemCapability.Mechanic.Core
335
336| 名称         | 值  | 说明              |
337| ----------- | ---- | --------------- |
338| GIMBAL_DEVICE | 0 | 便携式云台设备。 |
339
340## AttachState
341
342设备连接状态的枚举。
343
344**系统能力**:SystemCapability.Mechanic.Core
345
346| 名称         | 值  | 说明              |
347| ----------- | ---- | --------------- |
348| ATTACHED | 0 | 设备已连接。 |
349| DETACHED | 1 | 设备已断开。 |
350
351## CameraTrackingLayout
352
353摄像头跟踪布局的枚举。
354
355**系统能力**:SystemCapability.Mechanic.Core
356
357| 名称         | 值  | 说明              |
358| ----------- | ---- | --------------- |
359| DEFAULT | 0 | 系统默认跟踪布局。 |
360| LEFT | 1 | 靠左布局。 |
361| MIDDLE | 2 | 居中布局。 |
362| RIGHT | 3 | 靠右布局。 |
363