Todos los productos
Search
Centro de documentos

IoT Platform:Notas de la versión

Última actualización: Sep 03, 2026

Una diferencia importante entre la V3.0.1 y las versiones anteriores es que ahora puede seleccionar los archivos C de funciones específicas según sus necesidades comerciales y compilar el SDK de forma personalizada. Ya no es obligatorio utilizar el compilador integrado del SDK.

V3.0.1

A continuación se describen las diferencias entre el SDK V2.3.0, publicado en noviembre de 2018, y el SDK V3.0.1, publicado en marzo de 2019.

Portabilidad mediante el código fuente

  • Este método de desarrollo es adecuado para máquinas locales que ejecutan Ubuntu16.04 64-bit, Windows XP, Windows 7 y Windows 10.

  • Ejecute el comando make menuconfig en Ubuntu o haga clic en el archivo config.bat en Windows para seleccionar las funciones.

  • Una vez seleccionadas las funciones según sus necesidades comerciales, ejecute el comando extract.sh en Ubuntu o haga clic en el archivo extract.bat en Windows para extraer los archivos fuente necesarios.

  • Agregue los archivos fuente a su proyecto en una máquina local y utilice el método de su preferencia para compilar el código fuente.

Todas las interfaces de la capa de abstracción de hardware (HAL) que debe implementar se recopilan automáticamente en el archivo wrapper.c dentro del directorio output/eng/wrappers.

Anteriormente, no era posible realizar operaciones de desarrollo si fallaba la compilación cruzada del SDK. El SDK V3.0.1 mejora la portabilidad y la facilidad de uso.

Estructura de directorios

  • El SDK V3.0.1 utiliza una estructura de directorios plana y fácil de usar. Por ejemplo, todos los archivos .h y .c relacionados con las funciones de Message Queuing Telemetry Transport (MQTT) en la nube se almacenan en el directorio src/mqtt.

  • Excepto por el directorio src/infra, que contiene la infraestructura, cada directorio src/xxx corresponde a una función del SDK y contiene todos sus archivos fuente. La cantidad de directorios src/xxx coincide con el número de funciones del SDK. Ejemplos:

    • src/dynamic_register: contiene todos los archivos fuente de la función de verificación de certificado único por producto o registro dinámico.

    • src/dev_sign: contiene todos los archivos fuente de la función de firma de dispositivo.

    • src/mqtt: contiene todos los archivos fuente de la función de conexión MQTT.

    • src/ota: contiene todos los archivos fuente de la función de actualización de firmware por aire (OTA).

    • src/dev_model: contiene todos los archivos fuente de la función de gestión de modelos Thing Specification Language (TSL) o gestión de subdispositivos.

Presentación de API e interfaces HAL

En versiones anteriores del SDK, el archivo de encabezado global iot_import.h contenía las interfaces externas HAL_XXX() de las que depende el SDK, mientras que el archivo de encabezado global iot_export.h incluía las API IOT_XXX proporcionadas por el SDK.

Algunos clientes asumían que debían implementar todas las más de 100 interfaces HAL del archivo iot_import.h y familiarizarse con las más de 200 API del archivo iot_import.h. Esto generaba una carga de trabajo excesiva.

El SDK V3.0.1 incluye las siguientes mejoras:

  • Se eliminaron los archivos iot_import.h y iot_export.h.

  • Se eliminó el directorio include del directorio raíz.

  • Los archivos fuente se clasificaron y almacenaron en directorios específicos según las funciones del SDK para evitar mostrar información excesiva.

Para utilizar el SDK V3.0.1, siga estos pasos:

  • Familiarícese con las funciones del SDK, como la conexión MQTT a IoT Platform y las actualizaciones OTA; determine las funciones necesarias y luego configúrelas y selecciónelas mediante una interfaz gráfica de usuario (GUI).

  • A continuación, ejecute el script extract.sh en Ubuntu o el script extract.bat en Windows para obtener los archivos fuente de las funciones seleccionadas y almacenarlos en el directorio output.

  • Implemente las API y las interfaces HAL para usar el SDK siguiendo estas reglas:

    • El directorio output/eng/xxx almacena los archivos fuente de la función xxx. Estos archivos provienen del directorio src/xxx.

    • El archivo output/eng/xxx/xxx_api.h contiene las API de la función xxx. Estas API provienen del archivo src/xxx/xxx_api.h.

    • Todas las interfaces HAL_XXX() que debe implementar para interactuar con un sistema embebido específico se agregan automáticamente al archivo output/eng/wrappers/wrapper.c.

    • Solo necesita consultar los archivos fuente de las funciones requeridas en src/xxx/xxx_api.h para el archivo output/eng/xxx/xxx_api.h. Las declaraciones de API irrelevantes para sus necesidades comerciales no se muestran.

    • Todas las interfaces HAL que debe implementar se agregan al archivo output/eng/wrappers/wrapper.c. Las interfaces HAL irrelevantes para sus necesidades comerciales no se muestran.

Por ejemplo, la función básica del SDK consiste en calcular la firma para establecer una conexión MQTT con IoT Platform. Esta función es compatible con la interfaz src/dev_sign o output/eng/dev_sign.

  • En este caso, solo una interfaz de la función de cálculo de firma es visible para usted en el archivo dev_sign_api.h.

  • No se muestran interfaces HAL ni el archivo wrapper.c, ya que esta función no tiene dependencias y no requiere funciones en C.

Archivo make.settings

  • Además de en máquinas locales con Linux, los desarrolladores pueden ejecutar config.bat en máquinas con Windows XP, Windows 7 o Windows 10 para configurar las funciones necesarias mediante una GUI.

  • La siguiente tabla describe las opciones FEATURE_XXX cuyos nombres han cambiado.

Nombre anterior

Nuevo nombre

Descripción

FEATURE_AWSS_SUPPORT_PHONEASAP

FEATURE_AWSS_SUPPORT_AHA

Modo de punto de acceso telefónico (phone-ap-config) para la configuración de Wi-Fi.

FEATURE_AWSS_SUPPORT_ROUTER

FEATURE_AWSS_SUPPORT_ADHA

Modo de configuración de router (router-config) para la configuración de Wi-Fi.

  • Se agregaron las siguientes opciones:

    • FEATURE_AWSS_SUPPORT_SMARTCONFIG_WPS: modo de configuración punto a punto para la configuración de Wi-Fi.

    • FEATURE_AWSS_SUPPORT_DEV_AP: modo de punto de acceso del dispositivo (dev-ap-config) para la configuración de Wi-Fi.

Interfaces MQTT

  • Llame a la interfaz IOT_MQTT_Construct() para establecer una conexión Message Queuing Telemetry Transport (MQTT). La interfaz IOT_SetupConnInfo() ya no es necesaria.

  • Al llamar a la interfaz IOT_MQTT_Construct(), puede dejar vacíos la mayoría de los parámetros de conexión. El SDK utiliza automáticamente los valores predeterminados y no devuelve errores.

Nuevas funciones e interfaces

  • Se agregó la función de firma de dispositivo, que es una función básica del SDK.

    • Solo la interfaz IOT_Sign_MQTT() está relacionada con esta función.

  • Se agregó la función de verificación de certificado único por producto. Esta función se puede utilizar cuando se graba un certificado de dispositivo que incluye ProductKey, DeviceName y DeviceSecret en todos los dispositivos.

    • Solo la interfaz IOT_Dynamic_Register() está relacionada con esta función.

  • Se agregó la función de restablecimiento de dispositivo. Esta función permite desvincular un subdispositivo de su gateway correspondiente después de que el subdispositivo envíe una solicitud de desvinculación a IoT Platform.

    • Solo la interfaz IOT_DevReset_Report() está relacionada con esta función.

  • Se agregó la función de carga de archivos HTTP/2. Esta función permite cargar archivos grandes en IoT Platform.

    • Las interfaces IOT_HTTP2_UploadFile_Connect(), IOT_HTTP2_UploadFile_Request() y IOT_HTTP2_UploadFile_Disconnect() están relacionadas con esta función.

Función eliminada

  • Se eliminó CMake de las herramientas de compilación compatibles, dado que se admite GNU make y la portabilidad basada en código fuente.

V2.3.0

A continuación se describen las diferencias entre el SDK V2.2.1, publicado el 31 de agosto de 2018, y el SDK V2.3.0, publicado en noviembre de 2018.

Archivo make.settings

  • Los desarrolladores pueden ejecutar el comando make menuconfig en máquinas locales con Ubuntu16.04 64-bit para configurar el archivo make.settings mediante una GUI.

  • La siguiente tabla describe las opciones FEATURE_XXX cuyos nombres han cambiado.

Nombre anterior

Nuevo nombre

Descripción

FEATURE_SDK_ENHANCE

FEATURE_DEVICE_MODEL_ENABLED

Interruptor para la función de gestión de modelos Thing Specification Language (TSL). Los modelos deben cumplir con el protocolo Alink JSON.

FEATURE_ENHANCED_GATEWAY

FEATURE_DEVICE_MODEL_GATEWAY

Interruptor para la función de gateway en la gestión de modelos TSL.

FEATURE_WIFI_AWSS_ENABLED

FEATURE_WIFI_PROVISION_ENABLED

Interruptor para la función de configuración de Wi-Fi.

  • Se agregaron las siguientes opciones:

    • FEATURE_DEVICE_BIND_ENABLED: interruptor para la función de vinculación de dispositivos. Si utiliza la consola Living Link, debe activar este interruptor para permitir que la aplicación Cloud Intelligence controle los dispositivos.

    • FEATURE_ALCS_CLIENT_ENABLED: interruptor para funciones específicas de cliente utilizadas en comunicación local. Debe activar este interruptor para gateways perimetrales y otros dispositivos que gestionan subdispositivos IoT.

    • FEATURE_ALCS_SERVER_ENABLED: interruptor para funciones específicas de servidor utilizadas en comunicación local. Debe activar este interruptor para dispositivos gestionados por aplicaciones móviles o gateways perimetrales en la red de área local (LAN).

    • FEATURE_AWSS_SUPPORT_SMARTCONFIG: modo SmartConfig (smart-config) para la configuración de Wi-Fi.

    • FEATURE_AWSS_SUPPORT_ZEROCONFIG: modo de configuración cero (zero-config) para la configuración de Wi-Fi.

    • FEATURE_AWSS_SUPPORT_ROUTER: modo de configuración de router (router-config) para la configuración de Wi-Fi.

    • FEATURE_AWSS_SUPPORT_PHONEASAP: modo de punto de acceso telefónico (phone-ap-config) para la configuración de Wi-Fi.

  • Se eliminó la siguiente opción:

    • FEATURE_COAP_DTLS_SUPPORT: interruptor que determina si una conexión a IoT Platform mediante Constrained Application Protocol (CoAP) se cifra con el protocolo Datagram Transport Layer Security (DTLS). Se eliminó de las configuraciones personalizadas porque el cifrado siempre está habilitado.

Interfaces globales

  • Se eliminaron las interfaces IOT_OpenLog() y IOT_CloseLog(). Llame a la interfaz IOT_SetLogLevel() para determinar si el SDK imprime registros y cuáles desea que imprima.

  • El nivel de registro IOT_LOG_EMERG fue reemplazado por el nivel IOT_LOG_NONE. IOT_SetLogLevel(IOT_LOG_NONE) especifica que la función de registro está deshabilitada.

  • Se eliminó la interfaz IOT_Linkkit_Ioctl(). Llame a la interfaz IOT_Ioctl() para implementar las funcionalidades de IOT_Linkkit_Ioctl(). Para más información sobre las opciones de IOT_Ioctl(), consulte los valores enumerados del tipo iotx_ioctl_option_t.

  • Se mejoró la interfaz IOT_Ioctl(). Se agregaron las opciones IOTX_IOCTL_SET_MQTT_DOMAIN y IOTX_IOCTL_SET_HTTP_DOMAIN para permitirle pasar endpoints MQTT o HTTP personalizados y establecer conexiones en nuevos sitios de despliegue de servicios fuera de China.

Interfaces MQTT

  • En las siguientes interfaces, puede establecer el parámetro handle en NULL para crear una conexión con valores de parámetros predeterminados o utilizar la conexión predeterminada:

    • IOT_MQTT_Construct

    • IOT_MQTT_Destroy

    • IOT_MQTT_Yield

    • IOT_MQTT_LogPost

    • IOT_MQTT_CheckStateNormal

    • IOT_MQTT_Subscribe

    • IOT_MQTT_Unsubscribe

    • IOT_MQTT_Publish

    • IOT_MQTT_Subscribe_Sync

    • IOT_MQTT_Publish_Simple

  • Se eliminaron los parámetros pwrite_buf y pread_buf de la estructura iotx_mqtt_param_t.

  • Se agregó la interfaz IOT_MQTT_Publish_Simple(). Puede pasar parámetros de tipo cadena para especificar el tema y la carga útil.

    int IOT_MQTT_Publish_Simple(void *handle, const char *topic_name, int qos, void *data, int len);
                        
  • Se agregó la interfaz IOT_MQTT_Subscribe_Sync(). Permite realizar una suscripción síncrona de forma bloqueante; no se devuelven datos hasta que la suscripción sea exitosa.

    int IOT_MQTT_Subscribe_Sync(void *handle,
                                const char *topic_filter,
                                iotx_mqtt_qos_t qos,
                                iotx_mqtt_event_handle_func_fpt topic_handle_func,
                                void *pcontext,
                                int timeout_ms);
                        
  • Se optimizó la interfaz IOT_MQTT_Subscribe(). Antes de establecer una conexión MQTT, puede suscribirse a mensajes sin conexión. El SDK para C envía un paquete de suscripción inmediatamente después de establecer la conexión.

Interfaz de actualización OTA

  • Si el parámetro handle de las interfaces MQTT se establece en NULL, el tercer parámetro de la interfaz IOT_OTA_Init también puede establecerse en NULL para usar la conexión predeterminada. IOT_OTA_Init es la interfaz básica para actualizaciones por aire (OTA).

    void *IOT_OTA_Init(const char *product_key, const char *device_name, void *ch_signal);
                        

Interfaz eliminada

Las interfaces linkkit_xxx() y linkkit_gateway_xxx() del SDK de la versión anterior son opcionales para la compilación. De forma predeterminada, estas interfaces no aparecen en las configuraciones de compilación.

Nota: 1. Ejecute el siguiente comando en el archivo make.settings para mostrar las interfaces linkkit_xxx() y linkkit_gateway_xxx(). En este caso, las nuevas interfaces desaparecerán.

FEATURE_DEPRECATED_LINKKIT=y
            
  1. Para reducir el uso de memoria de los dispositivos, el SDK ya no valida los formatos de datos cuando llama a operaciones de API para enviar mensajes sobre cambios de propiedades y eventos. Por lo tanto, no necesita exportar el archivo JSON de modelos TSL desde IoT Platform, convertir los datos JSON en cadenas en C ni agregar dichas cadenas a su código en C.

Interfaces HAL

  • Se eliminó la interfaz HAL_Sys_reboot porque su función es idéntica a la de la interfaz HAL_Reboot.