IoT Platform ofrece un Link SDK para el desarrollo de dispositivos que incluye el protocolo Alink para la comunicación entre dispositivos y la nube. Si el Link SDK no cumple con los requisitos de su entorno embebido, encapsule los datos del protocolo Alink para comunicarse directamente con IoT Platform.
Descripción general
El protocolo Alink es una especificación de intercambio de datos basada en JSON para la comunicación bidireccional entre dispositivos e IoT Platform. Este protocolo simplifica y estandariza las interacciones de datos de negocio.
Los Link SDK disponibles y los lenguajes compatibles se enumeran en Device-side Link SDK.
La siguiente tabla muestra los topics del protocolo Alink según la función de IoT Platform.
Tabla 1. Descripciones del protocolo Alink
| Función | Descripción del formato de datos |
| Conexión de dispositivos | |
| Comunicación de mensajes | |
| Gestión de dispositivos | |
| Monitoreo y operaciones |
A continuación se describen la conexión de dispositivos y los flujos de datos ascendentes y descendentes.
Incorporación de dispositivos
La conexión a IoT Platform difiere entre dispositivos conectados directamente y subdispositivos, pero ambos siguen tres pasos: registro, activación y conexión, y reporte de datos.
Los dispositivos conectados directamente pueden vincularse de dos formas:
Mediante un device-specific certificate: Grabe previamente el certificado del dispositivo (ProductKey, DeviceName y DeviceSecret) en el dispositivo. Posteriormente, este se registra, se conecta y reporta datos.
Mediante un product-specific certificate para registro dinámico: Grabe previamente el certificado del producto (ProductKey y ProductSecret) en el dispositivo. Luego, este se registra, se conecta y reporta datos.
Los subdispositivos se conectan a través de una puerta de enlace mediante uno de los dos métodos siguientes:
Mediante un device-specific certificate: Grabe previamente el certificado del dispositivo (ProductKey, DeviceName y DeviceSecret) en el subdispositivo. El subdispositivo reporta el certificado a la puerta de enlace. La puerta de enlace agrega una relación topológica y reutiliza su canal para reportar datos.
Mediante registro dinámico: Grabe previamente el ProductKey en el subdispositivo. El subdispositivo reporta el ProductKey y el DeviceName a la puerta de enlace. IoT Platform verifica el DeviceName y emite el DeviceSecret. El subdispositivo reporta el certificado a la puerta de enlace, la cual agrega una relación topológica y retransmite los datos a través de su canal.

Reporte de propiedades o eventos del dispositivo
-
Formato de datos passthrough (personalizado)

N.º Descripción 1 El dispositivo reporta datos passthrough a un topic específico. Para obtener más información sobre los topics, consulte Device properties, events, and services. 1.1 IoT Platform utiliza un script de análisis de datos para procesar los datos reportados por el dispositivo. La plataforma invoca el método rawDataToProtocoldel script para convertir los datos reportados al formato estándar de IoT Platform (formato Alink JSON).El tema Data parsing explica cómo escribir scripts de análisis.
1.2 IoT Platform procesa la lógica de negocio mediante los datos Alink JSON convertidos. Si el motor de reglas está configurado, los datos se reenvían a un destino, como otro topic o un servicio en la nube, según las reglas de reenvío de datos.
Importante- El motor de reglas recibe los datos analizados por el script.
- Al configurar el reenvío de datos, establezca el topic de origen como un topic de TSL model data reporting, por ejemplo
/${productKey}/${deviceName}/thing/event/property/posto/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post. Para obtener más información, consulte Configure data forwarding rules o Add a data source.
1.3 IoT Platform invoca el método protocolToRawDataen el script de análisis de datos para convertir los datos resultantes a un formato compatible con el dispositivo.1.4 IoT Platform envía los datos analizados al dispositivo. 2 Llame a la operación API QueryDevicePropertyData para consultar los datos históricos de propiedades reportados por el dispositivo. También puede llamar a la operación API QueryDeviceEventData para consultar los datos históricos de eventos reportados por el dispositivo. -
Formato de datos no passthrough (Alink JSON)

N.º Descripción 1 El dispositivo reporta datos a un topic específico para datos no passthrough. Para obtener más información sobre los topics, consulte Device properties, events, and services. 1.1 IoT Platform procesa la lógica de negocio. Si el motor de reglas está configurado, los datos se reenvían a un destino, como otro topic o un servicio en la nube, según las reglas de reenvío de datos.
Importante Al configurar el reenvío de datos, establezca el topic de origen como un topic de TSL model data reporting, por ejemplo/${productKey}/${deviceName}/thing/event/property/posto/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post. Para obtener más información, consulte Configure data forwarding rules o Add a data source.1.2 IoT Platform devuelve el resultado del procesamiento al dispositivo. 2 Llame a la operación API QueryDevicePropertyData para consultar los datos históricos de propiedades reportados por el dispositivo. También puede llamar a la operación API QueryDeviceEventData para consultar los datos históricos de eventos reportados por el dispositivo.
Invocación de servicios del dispositivo o configuración de propiedades
-
Invocación asíncrona de servicios o configuración de propiedades

N.º Descripción 1 Invoque un servicio en IoT Platform. - Configurar propiedades: Llame a la operación API SetDeviceProperty para establecer propiedades específicas en un dispositivo.
- Invocar un servicio: Llame a la operación API InvokeThingService para invocar un servicio de forma asíncrona.
Un servicio se invoca de manera asíncrona si su método de invocación está configurado como asíncrono.
1.1 IoT Platform verifica los parámetros enviados. 1.2 IoT Platform envía datos al dispositivo de forma asíncrona y devuelve el resultado. En caso de éxito, el resultado contiene el ID del mensaje. Para datos passthrough (passthrough/personalizado), IoT Platform primero invoca el método
protocolToRawDataen el script de análisis de datos para convertir el formato de datos. Después, envía los datos convertidos al dispositivo.2 Una vez que el dispositivo recibe los datos, procesa la lógica de negocio. Nota Los topics de procesamiento de mensajes difieren entre datos passthrough (personalizado) y no passthrough (Alink JSON). Set device properties y Device service invocation (asynchronous call).3 Después de procesar la lógica de negocio, el dispositivo devuelve el resultado a IoT Platform. Cuando IoT Platform recibe el resultado, realiza las siguientes operaciones:
- Si los datos están en formato passthrough, IoT Platform invoca el método
rawDataToProtocolen el script de análisis de datos para convertir el formato de datos del resultado devuelto por el dispositivo. - Si el motor de reglas está configurado, los datos se reenvían a un destino, como otro topic o un servicio en la nube, según las reglas de reenvío de datos.Importante
- Para datos passthrough, el motor de reglas recibe los datos analizados por el script.
- Al configurar el reenvío de datos, establezca el topic de origen como un topic de TSL model data reporting, por ejemplo
/${productKey}/${deviceName}/thing/downlink/reply/message. Para obtener más información, consulte Configure data forwarding rules o Add a data source.
-
Invocación síncrona de servicios

N.º Descripción 1 Llame a la operación API InvokeThingService para invocar un servicio síncrono. Un servicio se invoca de manera síncrona si su método de invocación está configurado como síncrono. 1.1 IoT Platform verifica los parámetros enviados. 1.2 IoT Platform utiliza una llamada síncrona para invocar un topic revert-RPC (RRPC) y enviar datos al dispositivo. Para datos passthrough (passthrough/personalizado), IoT Platform primero invoca el método
protocolToRawDataen el script de análisis de datos para convertir el formato de datos. Después, envía los datos convertidos al dispositivo.1.3 IoT Platform espera síncronamente a que el dispositivo devuelva un resultado. 2 Después de procesar la lógica de negocio, el dispositivo devuelve el resultado a IoT Platform. Si se agota el tiempo de espera, se devuelve un mensaje de error de tiempo de espera agotado. 2.1 Cuando IoT Platform recibe el resultado del dispositivo, lo devuelve al solicitante. Si los datos están en formato passthrough, IoT Platform invoca el método
rawDataToProtocolen el script de análisis de datos para convertir el formato de datos del resultado devuelto por el dispositivo.
Relaciones topológicas

| N.º | Descripción | |
| 1 | Un subdispositivo se conecta a una puerta de enlace. Si un tercero debe agregar una relación topológica, notifique a la puerta de enlace de la siguiente manera. |
|
| 1.1 | La puerta de enlace reporta información sobre los subdispositivos descubiertos al topic para listas de descubrimiento de dispositivos: /sys/${productKey}/${deviceName}/thing/list/found.Cuando IoT Platform recibe los datos, si el motor de reglas está configurado, los datos se reenvían a un destino, como un servicio en la nube, según las reglas de reenvío de datos. |
|
| 1.2 | Obtenga datos de subdispositivos desde el servicio en la nube. | |
| 1.3 | Decida si desea agregar una relación topológica entre la puerta de enlace y el subdispositivo. Para agregarla, llame a la operación API NotifyAddThingTopo para notificar a la puerta de enlace a través del topic: |
|
| 2 |
|
|
| 3 | Para eliminar una relación topológica, la puerta de enlace utiliza el topic: /sys/${productKey}/${deviceName}/thing/topo/delete. |
|
| 4 | Llame a la operación API GetThingTopo para consultar la relación topológica entre una puerta de enlace y un subdispositivo mediante el topic: /sys/${productKey}/${deviceName}/thing/topo/get. |
|