From 7c755ad8cedf186646d241e71feec5a5cbe2083e Mon Sep 17 00:00:00 2001 From: MisterE Date: Tue, 13 May 2025 09:52:58 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=85=B7=E8=BA=AB=E6=9C=BA=E6=A2=B0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MisterE --- ...s.distributedHardware.mechanicManager.d.ts | 883 ++++++++++++++++++ api/device-define/default.json | 3 +- api/device-define/tablet.json | 3 +- .../api_check_plugin/code_style_rule.json | 3 +- kits/@kit.MechanicKit.d.ts | 23 + 5 files changed, 912 insertions(+), 3 deletions(-) create mode 100644 api/@ohos.distributedHardware.mechanicManager.d.ts create mode 100644 kits/@kit.MechanicKit.d.ts diff --git a/api/@ohos.distributedHardware.mechanicManager.d.ts b/api/@ohos.distributedHardware.mechanicManager.d.ts new file mode 100644 index 0000000000..fd833870cf --- /dev/null +++ b/api/@ohos.distributedHardware.mechanicManager.d.ts @@ -0,0 +1,883 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * @kit MechanicKit + * @arkts 1.1&1.2 + */ + +import type { Callback } from './@ohos.base'; + +/** + * Provides capabilities for controlling and interacting with mechanical devices connected to this device. + * The capabilities cover connection management, control, and monitoring. + * + * @namespace mechanicManager + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + +declare namespace mechanicManager { + + /** + * Subscribes to device attachment state change events. + * @param { 'attachStateChange' } type Event type. + * @param { Callback } callback Callback used to return the state change. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + function on(type: 'attachStateChange', callback: Callback): void; + + /** + * Unsubscribes from device attachment state change events. + * @param { 'attachStateChange' } type Event type. + * @param { Callback } [callback] Callback used to return the state change. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + function off(type: 'attachStateChange', callback?: Callback): void; + + /** + * Obtain the list of connected mechanical devices. + * @returns { MechInfo[] } List of connected mechanical devices. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + function getAttachedMechDevices(): MechInfo[]; + + /** + * Sets a user operation. + * @param { Operation } operation Operation type. + * @param { string } mac MAC address. + * @param { string } params Operation parameters. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function setUserOperation(operation: Operation, mac: string, params: string): void; + + /** + * Enables or disables camera tracking. + * @param { boolean } isEnabled Whether to enable camera tracking. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @throws { BusinessError } 33300003 - Device not supported. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + + function setCameraTrackingEnabled(isEnabled: boolean): void; + + /** + * Checks whether camera tracking is enabled for this mechanical device. + * @returns { boolean } Enabled status. The value true means that camera tracking is enabled, and false means + * the opposite. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + + function getCameraTrackingEnabled(): boolean; + + /** + * Subscribes to tracking events. + * @param { 'trackingEvent' } type Event type. + * @param { Callback } callback Callback used to return the tracking event information. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + function on(type: 'trackingEvent', callback: Callback): void; + + /** + * Unsubscribes from tracking events. + * @param { 'trackingEvent' } type Event type. + * @param { Callback } [callback] Callback used to return the tracking event information. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + function off(type: 'trackingEvent', callback?: Callback): void; + + /** + * Sets the camera tracking layout for this mechanical device. + * @param { CameraTrackingLayout } trackingLayout Camera tracking layout. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @throws { BusinessError } 33300003 - Device not supported. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + function setCameraTrackingLayout(trackingLayout: CameraTrackingLayout): void; + + /** + * Obtains the camera tracking layout of this mechanical device. + * @returns { CameraTrackingLayout } Camera tracking layout obtained. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + function getCameraTrackingLayout(): CameraTrackingLayout; + + /** + * Rotates a mechanical device to the relative angles. + * @param { int } mechId ID of the mechanical device. + * @param { RotationAngles } angles Relative angles. + * @param { int } duration Rotation duration. Unit: millisecond. + * @returns { Promise } Promise that return the execution result. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + function rotate(mechId: int, angles: RotationAngles, duration: int): Promise; + + /** + * Rotates a mechanical device to the absolute angles. + * @param { int } mechId ID of the mechanical device. + * @param { EulerAngles } angles Absolute angles. + * @param { int } duration Rotation duration. Unit: millisecond. + * @returns { Promise } Promise that return the execution result. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + function rotateToEulerAngles(mechId: int, angles: EulerAngles, duration: int): Promise; + + /** + * Obtains the maximum continuous rotation duration of a mechanical device. + * + * @param { int } mechId ID of the mechanical device. + * @returns { int } Maximum rotation duration. Unit: millisecond. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function getMaxRotationTime(mechId: int): int; + + /** + * Obtains the maximum rotation speed of a mechanical device. + * + * @param { int } mechId ID of the mechanical device. + * @returns { RotationSpeed } Maximum speed. Only the absolute value of the speed is returned. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function getMaxRotationSpeed(mechId: int): RotationSpeed; + + /** + * Rotates a mechanical device at the specified speed. + * @param { int } mechId ID of the mechanical device. + * @param { RotationSpeed } speed Rotation speed. + * @param { int } duration Rotation duration. Unit: millisecond. + * @returns { Promise } Promise that return the execution result. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function rotateBySpeed(mechId: int, speed: RotationSpeed, duration: int): Promise; + + /** + * Stops a mechanical device from moving. + * @param { int } mechId ID of the mechanical device. + * @returns { Promise } Promise that returns no value. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function stopMoving(mechId: int): Promise; + + /** + * Obtains the current angles of a mechanical device. + * @param { int } mechId ID of the mechanical device. + * @returns { EulerAngles } Rotation angles. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + function getCurrentAngles(mechId: int): EulerAngles; + + /** + * Obtains the maximum rotation angles relative to the reference point for the specified mechanical device. + * + * @param { int } mechId ID of the mechanical device. + * @returns { RotationLimits } Maximum rotation angles. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + function getRotationLimits(mechId: int): RotationLimits; + + /** + * Obtains the status of the rotation axes. + * @param { int } mechId ID of the mechanical device. + * @returns { RotationAxesStatus } Rotation axis status. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @throws { BusinessError } 33300002 - Device not connected. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function getRotationAxesStatus(mechId: int): RotationAxesStatus; + + + /** + * Register a listener for axis state changes. + * The status of the rotation axis changes dynamically, which needs to be monitored. + * + * @param { 'rotationAxesStatusChange' } type - Event type. + * @param { Callback } callback - Rotate axis state changes callback. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function on(type: 'rotationAxesStatusChange', callback: Callback): void; + + /** + * Unregister a listener for axis state changes. + * + * @param { 'rotationAxesStatusChange' } type - Event type. + * @param { Callback } [callback] - Rotate axis state changes callback. + * @throws { BusinessError } 202 - Not system application. + * @throws { BusinessError } 33300001 - Service exception. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + function off(type: 'rotationAxesStatusChange', callback?: Callback): void; + + /** + * Mechanical device information. + * @typedef MechInfo + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + export interface MechInfo { + /** + * ID of the mechanical device. + * @type { int } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + mechId: int; + + + /** + * Type of the mechanical device. + * @type { MechDeviceType } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + mechDeviceType: MechDeviceType; + + /** + * Name of the mechanical device. + * @type { string } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + mechName: string; + } + + + /** + * The rotion angles, relative to the current position. + * @typedef RotationAngles + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export interface RotationAngles { + /** + * Yaw angle, ranging from -2π to 2*π, measured in radians. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + yaw?: double; + + /** + * Roll angle, ranging from -2π to 2*π, measured in radians. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + roll?: double; + + /** + * Pitch angle, ranging from -2π to 2*π, measured in radians. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + pitch?: double; + } + + /** + * Absolute euler angles relative to the home position. + * + * @typedef EulerAngles + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export interface EulerAngles { + /** + * Yaw angle, ranging from -π to π, measured in radians. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + yaw?: double; + + /** + * Roll angle, ranging from -π to π, measured in radians. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + roll?: double; + + /** + * Pitch angle, ranging from -π to π, measured in radians. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + pitch?: double; + } + + /** + * Rotational speed. A negative value indicates a clockwise rotation, and a positive value indicates a + * counterclockwise rotation. + * @typedef RotationSpeed + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + export interface RotationSpeed { + /** + * Yaw speed, measured in radians per second. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + yawSpeed?: double; + + /** + * Roll speed, measured in radians per second. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + rollSpeed?: double; + + /** + * Pitch speed, measured in radians per second. + * @type { ?double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + pitchSpeed?: double; + } + + + /** + * Rotation angle limits relative to the reference point. + * @typedef RotationLimits + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + + export interface RotationLimits { + /** + * Maximum yaw rotation angles in the negative direction, ranging from -2*Math.PI to 0, measured in radians. + * If the value is less than or equal to -2*Math.PI, there is no restriction. + * @type { double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + negativeYawMax: double; + + /** + * Maximum yaw rotation angles in the positive direction, ranging from 0 to 2*Math.PI, measured in radians. + * If the value is greater than or equal to 2*Math.PI, there is no restriction. + * @type { double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + positiveYawMax: double; + + /** + * Maximum roll rotation angles in the negative direction, ranging from -2*Math.PI to 0, measured in radians. + * If the value is less than or equal to -2*Math.PI, there is no restriction. + * @type { double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + negativeRollMax: double; + + /** + * Maximum roll rotation angles in the positive direction, ranging from 0 to 2*Math.PI, measured in radians. + * If the value is greater than or equal to 2*Math.PI, there is no restriction. + * @type { double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + positiveRollMax: double; + + /** + * Maximum pitch rotation angles in the negative direction, ranging from -2*Math.PI to 0, measured in radians. + * If the value is less than or equal to -2*Math.PI, there is no restriction. + * @type { double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + negativePitchMax: double; + + /** + * Maximum pitch rotation angles in the positive direction, ranging from 0 to 2*Math.PI, measured in radians. + * If the value is greater than or equal to 2*Math.PI, there is no restriction. + * @type { double } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + positivePitchMax: double; + } + + /** + * Rotation axes status + * + * @typedef RotationAxesStatus + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export interface RotationAxesStatus { + /** + * Whether the yaw axis is enabled. + * @type { boolean } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + yawEnabled: boolean; + + /** + * Whether the roll axis is enabled. + * @type { boolean } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + rollEnabled: boolean; + + /** + * Whether the pitch axis is enabled. + * @type { boolean } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + pitchEnabled: boolean; + + /** + * Whether the yaw axis is limited. + * @type { ?RotationAxisLimited } RotationAxisLimited + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + yawLimited?: RotationAxisLimited; + + /** + * Whether the roll axis is limited. + * @type { ?RotationAxisLimited } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + rollLimited?: RotationAxisLimited; + + /** + * Whether the pitch axis is limited. + * @type { ?RotationAxisLimited } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + pitchLimited?: RotationAxisLimited; + } + + /** + * Enumerates the rotation axis limit states. + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export enum RotationAxisLimited { + /** + * Not limited. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + NOT_LIMITED = 0, + + /** + * Negative limited. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + NEGATIVE_LIMITED = 1, + + /** + * Positive limited. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + POSITIVE_LIMITED = 2, + } + + /** + * Rotation axes state change information. + * @typedef RotationAxesStateChangeInfo + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export interface RotationAxesStateChangeInfo { + /** + * ID of the mechanical device. + * @type { int } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + mechId: int; + + /** + * Rotate axis status. + * @type { RotationAxesStatus } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + status: RotationAxesStatus, + } + + /** + * Tracking event callback info. + * + * @typedef TrackingEventInfo + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + export interface TrackingEventInfo { + /** + * Tracking event. + * @type { TrackingEvent } Tracking event. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + event: TrackingEvent; + } + + /** + * Callback information about the device attachment state change. + * @typedef AttachStateChangeInfo + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + export interface AttachStateChangeInfo { + + /** + * Device attachment state. + * @type { AttachState } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + state: AttachState; + + /** + * Mechanical device information. + * @type { MechInfo } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + mechInfo: MechInfo, + } + + /** + * Enumerates the user operations. + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export enum Operation { + /** + * Connection operation. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + CONNECT = 0, + + /** + * Disconnection operation. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + DISCONNECT = 1 + } + + /** + * Enumerates the tracking events. + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + + export enum TrackingEvent { + /** + * Camera tracking enabled by user. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + CAMERA_TRACKING_USER_ENABLED = 0, + + /** + * Camera tracking disabled by user. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + CAMERA_TRACKING_USER_DISABLED = 1, + + /** + * Camera tracking layout changed. You can call getCameraTrackingLayout to obtain the new layout. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + CAMERA_TRACKING_LAYOUT_CHANGED = 2, + } + + /** + * Rotation execution results. + * + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export enum Result { + /** + * Rotation completed. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + COMPLETED = 0, + + /** + * Rotation was interrupted. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + INTERRUPTED = 1, + + /** + * Device reached limitation. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + LIMITED = 2, + + /** + * Rotation time out. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + TIMEOUT = 3, + + /** + * Rotation failed due to system error. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + SYSTEM_ERROR = 100 + } + + /** + * Enumerates the mechanical device types. + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + + export enum MechDeviceType { + /** + * Gimbal device. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + + GIMBAL_DEVICE = 0 + } + + /** + * Device attach states. + * + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + export enum AttachState { + + /** + * Device attached. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + ATTACHED = 0, + + /** + * Device detached. + * @syscap SystemCapability.Mechanic.Core + * @since 20 + */ + DETACHED = 1 + } + + /** + * Enumerates the camera tracking layouts. + * @enum { number } + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + export enum CameraTrackingLayout { + /** + * Default layout. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + DEFAULT = 0, + + /** + * Left-side layout. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + LEFT = 1, + + /** + * Middle layout. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + MIDDLE = 2, + + /** + * Right-side layout. + * @syscap SystemCapability.Mechanic.Core + * @systemapi + * @since 20 + */ + RIGHT = 3 + } + +} + +export default mechanicManager; \ No newline at end of file diff --git a/api/device-define/default.json b/api/device-define/default.json index de616b6b16..9db411bbdc 100644 --- a/api/device-define/default.json +++ b/api/device-define/default.json @@ -235,6 +235,7 @@ "SystemCapability.Ability.AppStartup", "SystemCapability.Ability.AppExtension.PhotoEditorExtension", "SystemCapability.Resourceschedule.BackgroundProcessManager", - "SystemCapability.Test.PerfTest" + "SystemCapability.Test.PerfTest", + "SystemCapability.Mechanic.Core" ] } diff --git a/api/device-define/tablet.json b/api/device-define/tablet.json index 898f1579b4..34dfcbda61 100644 --- a/api/device-define/tablet.json +++ b/api/device-define/tablet.json @@ -226,6 +226,7 @@ "SystemCapability.Ability.AppStartup", "SystemCapability.Ability.AppExtension.PhotoEditorExtension", "SystemCapability.Resourceschedule.BackgroundProcessManager", - "SystemCapability.Test.PerfTest" + "SystemCapability.Test.PerfTest", + "SystemCapability.Mechanic.Core" ] } diff --git a/build-tools/api_check_plugin/code_style_rule.json b/build-tools/api_check_plugin/code_style_rule.json index 1a591601fd..e27b5ced4a 100644 --- a/build-tools/api_check_plugin/code_style_rule.json +++ b/build-tools/api_check_plugin/code_style_rule.json @@ -375,7 +375,8 @@ "SystemCapability.Security.CryptoFramework.MessageDigest", "SystemCapability.Security.CryptoFramework.Mac", "SystemCapability.Security.CryptoFramework.Kdf", - "SystemCapability.Security.CryptoFramework.Rand" + "SystemCapability.Security.CryptoFramework.Rand", + "SystemCapability.Mechanic.Core" ] }, "administrators": [ diff --git a/kits/@kit.MechanicKit.d.ts b/kits/@kit.MechanicKit.d.ts new file mode 100644 index 0000000000..8f70c78e11 --- /dev/null +++ b/kits/@kit.MechanicKit.d.ts @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * @kit MechanicKit + */ + +import mechanicManager from '@ohos.distributedHardware.mechanicManager'; + +export { mechanicManager }; \ No newline at end of file -- Gitee From ee1a7fe7d95de375c1c5074f0d3798b7d1a4a9f6 Mon Sep 17 00:00:00 2001 From: MisterE Date: Mon, 23 Jun 2025 15:04:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=85=B7=E8=BA=AB=E6=9C=BA=E6=A2=B0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MisterE --- ...@ohos.distributedHardware.mechanicManager.d.ts | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/api/@ohos.distributedHardware.mechanicManager.d.ts b/api/@ohos.distributedHardware.mechanicManager.d.ts index fd833870cf..322b5099de 100644 --- a/api/@ohos.distributedHardware.mechanicManager.d.ts +++ b/api/@ohos.distributedHardware.mechanicManager.d.ts @@ -202,21 +202,6 @@ declare namespace mechanicManager { */ function getMaxRotationSpeed(mechId: int): RotationSpeed; - /** - * Rotates a mechanical device at the specified speed. - * @param { int } mechId ID of the mechanical device. - * @param { RotationSpeed } speed Rotation speed. - * @param { int } duration Rotation duration. Unit: millisecond. - * @returns { Promise } Promise that return the execution result. - * @throws { BusinessError } 202 - Not system application. - * @throws { BusinessError } 33300001 - Service exception. - * @throws { BusinessError } 33300002 - Device not connected. - * @syscap SystemCapability.Mechanic.Core - * @systemapi - * @since 20 - */ - function rotateBySpeed(mechId: int, speed: RotationSpeed, duration: int): Promise; - /** * Stops a mechanical device from moving. * @param { int } mechId ID of the mechanical device. -- Gitee From ef840a4e6eebb853dae3b3a194cd5c7047be2d44 Mon Sep 17 00:00:00 2001 From: MisterE Date: Tue, 24 Jun 2025 14:38:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=85=B7=E8=BA=AB=E6=9C=BA=E6=A2=B0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MisterE --- api/@ohos.distributedHardware.mechanicManager.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/@ohos.distributedHardware.mechanicManager.d.ts b/api/@ohos.distributedHardware.mechanicManager.d.ts index 322b5099de..3f1a337d49 100644 --- a/api/@ohos.distributedHardware.mechanicManager.d.ts +++ b/api/@ohos.distributedHardware.mechanicManager.d.ts @@ -100,23 +100,23 @@ declare namespace mechanicManager { /** * Subscribes to tracking events. - * @param { 'trackingEvent' } type Event type. + * @param { 'trackingStateChange' } type Event type. * @param { Callback } callback Callback used to return the tracking event information. * @throws { BusinessError } 33300001 - Service exception. * @syscap SystemCapability.Mechanic.Core * @since 20 */ - function on(type: 'trackingEvent', callback: Callback): void; + function on(type: 'trackingStateChange', callback: Callback): void; /** * Unsubscribes from tracking events. - * @param { 'trackingEvent' } type Event type. + * @param { 'trackingStateChange' } type Event type. * @param { Callback } [callback] Callback used to return the tracking event information. * @throws { BusinessError } 33300001 - Service exception. * @syscap SystemCapability.Mechanic.Core * @since 20 */ - function off(type: 'trackingEvent', callback?: Callback): void; + function off(type: 'trackingStateChange', callback?: Callback): void; /** * Sets the camera tracking layout for this mechanical device. -- Gitee