

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 미들웨어를 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 Hub에서 사용되는 Zigbee/Z-wave/Wi-Fi 칩셋에서 지원하는 공급업체 SDK를 기반으로 이러한 APIs를 구현해야 합니다.

## 참조 구현 및 코드 구성
<a name="managedintegrations-sdk-integration-code"></a>

미들웨어를 제외하고 관리형 통합 Device Agent 및 CDMB(Common Data Model Bridge)와 같은 다른 모든 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를 지원하려면 다음 두 가지 수정이 필요합니다.

1. 현재 공급업체 SDK를 리포지토리의 새 공급업체 SDK로 바꿉니다.

1. 새 공급업체 SDK에 따라 미들웨어 DPK(디바이스 이식 키트) APIs를 구현합니다.