本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
整合中介軟體與 SDK
下列各節會討論新中樞上的中介軟體整合。
裝置移植套件 (DPK) API 整合
若要整合任何晶片組廠商 SDK 與中介軟體,中間的 DPK (裝置移植套件) 層會提供標準 API 介面。受管整合服務供應商或 ODMs 需要根據其 IoT Hub 上使用的 Zigbee/Z-wave/Wi-Fi 晶片組支援的廠商 SDK 實作這些 APIs。
參考實作和程式碼組織
除了中介軟體之外,所有其他 Device SDK 元件,例如受管整合 Device Agent 和通用資料模型橋接器 (CDMB) 都可以使用,無需進行任何修改,而且只需要跨編譯。
中介軟體的實作是以適用於 Zigbee 和 Z-Wave 的 Silicon Labs 開發套件為基礎。如果中介軟體中存在的 Silicon Labs SDK 支援在新中樞中使用的 Z-Wave 和 Zigbee 晶片組,則可以在不進行任何修改的情況下使用參考中介軟體。您只需要交叉編譯中介軟體,然後就可以在新的中樞上執行。
您可以在 中找到 Zigbee 的 DPK (裝置移植套件) APIsacehal_zigbee.c,且 DPK APIs的參考實作存在於 zigbee 資料夾內。
IotManagedIntegrationsDeviceSDK-Middleware/example-iot-ace-dpk/example/dpk/ace_hal/zigbee/ |— CMakeLists.txt |— include |— |— zigbee_log.h |— src |— |— acehal_zigbee.c |— zigbeed |— |— CMakeLists.txt |— |— ember |— |— |— ace_ember_common.c |— |— |— ace_ember_ctrl.c |— |— |— ace_ember_hal_callbacks.c |— |— |— ace_ember_network_creator.c |— |— |— ace_ember_power_settings.c |— |— |— ace_ember_zts.c |— |— include |— |— |— zbd_api.h |— |— |— zbd_callbacks.h |— |— |— zbd_common.h |— |— |— zbd_network_creator.h |— |— |— zbd_power_settings.h |— |— |— zbd_zts.h
適用於 Z-Wave APIs DPK API 可在 中找到,acehal_zwave.c且 DPK APIs 的參考實作存在於 zwaved 資料夾內。
IotManagedIntegrationsDeviceSDK-Middleware/example-iot-ace-dpk/example/dpk/ace_hal/zwave/ |— CMakeLists.txt |— include |— |— zwave_log.h |— src |— |— acehal_zwave.c |— zwaved |— |— CMakeLists.txt |— |— fxnZwaveClient |— |— |— zwave_client.c |— |— |— zwave_client.h |— |— include |— |— |— zwaved_cc_intf_api.h |— |— |— zwaved_common_utils.h |— |— |— zwaved_ctrl_api.h |— |— zware |— |— |— ace_zware_cc_intf.c |— |— |— ace_zware_common_utils.c |— |— |— ace_zware_ctrl.c |— |— |— ace_zware_debug.c |— |— |— ace_zware_debug.h |— |— |— ace_zware_internal.h
做為為不同廠商 SDK 實作 DPK 層的起點,可以使用和修改參考實作。需要下列兩個修改,才能支援不同的廠商 SDK:
-
將目前的廠商 SDK 取代為儲存庫中的新廠商 SDK。
-
根據新廠商 SDK 實作中介軟體 DPK (裝置移植套件) APIs。