

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ミドルウェアを SDK と統合する
<a name="managedintegrations-sdk-integration-middleware"></a>

新しいハブでのミドルウェア統合については、以下のセクションで説明します。

**Topics**
+ [デバイス移植キット (DPK) API 統合](#smarthome-sdk-v2-integration-dpk)
+ [リファレンス実装とコード編成](#managedintegrations-sdk-integration-code)

## デバイス移植キット (DPK) API 統合
<a name="smarthome-sdk-v2-integration-dpk"></a>

チップセットベンダー SDK をミドルウェアと統合するには、中央の DPK (デバイス移植キット) レイヤーによって標準の API インターフェイスが提供されます。マネージド統合サービスプロバイダーまたは ODMs は、IoT ハブで使用される Zigbee/Z-wave/Wi-Fi チップセットでサポートされているベンダー SDK に基づいて、これらの APIs を実装する必要があります。

## リファレンス実装とコード編成
<a name="managedintegrations-sdk-integration-code"></a>

ミドルウェアを除き、マネージド統合 Device Agent や Common Data Model Bridge (CDMB) などの他のすべての Device SDK コンポーネントは、変更なしで使用でき、クロスコンパイルのみが必要です。

ミドルウェアの実装は、Silicon Labs SDK for Zigbee と Z-Wave に基づいています。新しいハブで使用される Z-Wave および Zigbee チップセットがミドルウェアに存在する Silicon Labs SDK でサポートされている場合、リファレンスミドルウェアは変更なしで使用できます。ミドルウェアをクロスコンパイルするだけで、新しいハブで実行できます。

Zigbee の DPK (デバイス移植キット) APIs は にあり`acehal_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 の DPK APIs は にあり`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 をサポートするには、次の 2 つの変更が必要です。

1. 現在のベンダー SDK をリポジトリ内の新しいベンダー SDK に置き換えます。

1. 新しいベンダー SDK に従ってミドルウェア DPK (デバイス移植キット) APIs を実装します。