Integre o middleware com o SDK - Integrações gerenciadas para AWS IoT Device Management

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Integre o middleware com o SDK

A integração do middleware no novo hub é discutida nas seções a seguir.

Integração da API do kit de portabilidade de dispositivos (DPK)

Para integrar o SDK de qualquer fornecedor de chipset ao middleware, uma interface de API padrão é fornecida pela camada intermediária do DPK (kit de portabilidade de dispositivos). Os provedores de serviços de integrações gerenciadas ou ODMs precisam implementá-las APIs com base no SDK do fornecedor suportado pelos chipsets de Zigbee/Z-wave/Wi Wi-Fi usados em seus hubs de IoT.

Implementação de referência e organização do código

Com exceção do middleware, todos os outros componentes do Device SDK, como as integrações gerenciadas Device Agent e Common Data Model Bridge (CDMB), podem ser usados sem modificações e só precisam ser compilados de forma cruzada.

A implementação do middleware é baseada no SDK do Silicon Labs para Zigbee e Z-Wave. Se os chipsets Z-Wave e Zigbee usados no novo hub forem suportados pelo SDK do Silicon Labs presente no middleware, o middleware de referência poderá ser usado sem modificações. Você só precisa fazer a compilação cruzada do middleware e ele poderá ser executado no novo hub.

O DPK (kit de portabilidade de dispositivos) APIs para Zigbee pode ser encontrado emacehal_zigbee.c, e a implementação de referência do DPK APIs está presente dentro da pasta. 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

O DPK APIs para Z-Wave pode ser encontrado em acehal_zwave.c e a implementação de referência do DPK APIs está presente dentro da pasta. 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

Como ponto de partida para implementar a camada DPK para o SDK de um fornecedor diferente, a implementação de referência pode ser usada e modificada. As duas modificações a seguir serão necessárias para oferecer suporte ao SDK de um fornecedor diferente:

  1. Substitua o SDK do fornecedor atual pelo SDK do novo fornecedor no repositório.

  2. Implemente o middleware DPK (kit de portabilidade de dispositivos) de APIs acordo com o SDK do novo fornecedor.