基本概念
机智云 HarmonyOS 原生 SDK 面向 ArkTS 应用,由一个核心模块和三个通信模块组成。
建议同时安装四个模块。模块版本请以 OHPM 页面显示的最新兼容版本为准。
模块组成
| 原生模块 | OHPM 包名 | 职责 |
|---|---|---|
sdk | @gizwits/smart-sdk (opens in a new tab) | 初始化、配置、用户、设备、数据点、日志和 OpenAPI |
sdk_bluetooth | @gizwits/smart-sdk-bluetooth (opens in a new tab) | BLE 发现、连接、鉴权、配网、数据点和 OTA |
sdk_lan | @gizwits/smart-sdk-lan (opens in a new tab) | 局域网发现、连接、配网和数据点通信 |
sdk_mqtt | @gizwits/smart-sdk-mqtt (opens in a new tab) | 云端连接、绑定设备同步和数据点通信 |
三个通信模块依赖 sdk。应用应先初始化 GizSDKManager,再初始化 GizBluetoothManager、GizLanManager 和 GizMqttManager。
统一设备对象
GizDevice 是三种通信方式共用的设备对象。每个设备包含以下能力:
| 能力 | 来源模块 | 用途 |
|---|---|---|
device.bleCapability | sdk_bluetooth | BLE 连接、配网、数据点和 OTA |
device.lanCapability | sdk_lan | LAN 连接、配网和数据点 |
device.mqttCapability | sdk_mqtt | MQTT 云端连接和数据点 |
device.sendDataPoints() 会自动选择第一个可控通道,优先级为 BLE、LAN、MQTT。业务需要固定通道时,应直接调用对应的 capability。
通道状态
通信能力的状态由 GizCapacityStatus 表示:
| 状态 | 含义 |
|---|---|
OFFLINE | 通道不可用或设备离线 |
ONLINE | 已发现或已连接,但尚不能下发控制指令 |
ONLINE_CONTROLLABLE | 已完成鉴权或登录,可以读写数据点 |
通过 capability.subscribeStatus().subscribe() 监听状态,在达到 ONLINE_CONTROLLABLE 后再进行控制。
状态订阅与释放
SDK 使用 GizState<T> 暴露可观察状态。subscribe() 默认立即回调当前值,并返回取消订阅函数:
const unsubscribe = device.bleCapability.subscribeStatus().subscribe((status): void => {
// 根据 status 更新 ArkUI 状态。
});
// ArkUI 组件离开或 Ability 销毁时调用。
unsubscribe();页面级扫描、发现、连接和订阅应随页面生命周期释放;整个应用不再使用 SDK 时,再依次关闭通信模块和核心模块。