Este tema describe las operaciones de API que debe invocar cuando utiliza Link SDK for C para conectar un dispositivo a IoT Platform mediante Message Queuing Telemetry Transport (MQTT).
IOT_MQTT_Construct
-
Prototipo
void *IOT_MQTT_Construct(iotx_mqtt_param_t *pInitParams) -
Descripción
Si establece el parámetro
pInitParamsenNULLal invocar la operación para conectarse a IoT Platform mediante MQTT, se utilizan los valores predeterminados para los demás parámetros. -
Parámetro
Parámetro
Tipo
Categoría
Descripción
pInitParams
iotx_mqtt_param_t *
Solicitud
El parámetro de inicialización de MQTT. Si especifica NULL para el parámetro de solicitud, se utilizan los valores predeterminados para los parámetros de la estructura.
-
Parámetros en la estructura
typedef struct { uint16_t port; const char *host; const char *client_id; const char *username; const char *password; const char *pub_key; const char *customize_info; uint8_t clean_session; uint32_t request_timeout_ms; uint32_t keepalive_interval_ms; uint32_t write_buf_size; uint32_t read_buf_size; iotx_mqtt_event_handle_t handle_event; } iotx_mqtt_param_t, *iotx_mqtt_param_pt;Parámetro
Descripción
port
El número de puerto del servidor MQTT.
host
El endpoint del servidor MQTT.
client_id
El ID del cliente MQTT.
username
El nombre de usuario que se utiliza para iniciar sesión en el servidor MQTT.
password
La contraseña que se utiliza para iniciar sesión en el servidor MQTT.
pub_key
El método de cifrado y la clave para la conexión MQTT.
clean_session
Especifica si se debe utilizar la función de sesión limpia de MQTT.
request_timeout_ms
El periodo de tiempo de espera para los mensajes MQTT.
keepalive_interval_ms
El periodo de tiempo de espera para los latidos MQTT.
write_buf_size
El tamaño máximo del búfer que se utiliza para almacenar los mensajes MQTT pendientes de envío.
read_buf_size
El tamaño máximo del búfer que se utiliza para almacenar los mensajes MQTT recibidos.
handle_event
La función de devolución de llamada personalizada que desea utilizar para recibir datos de eventos de un módulo MQTT.
customize_info
Los datos personalizados que se van a notificar. Separe los pares clave-valor en una cadena con comas (,). Por ejemplo,
"pid=123456,mid=abcd";se utiliza para describir la información sobre un fabricante y un módulo.NotaSi establece los elementos de la estructura pInitParams en 0 o establece el parámetro pInitParams en NULL, se utilizan los parámetros predefinidos predeterminados.
-
Valores de retorno
Valor
Descripción
NULL
Con errores
Distinto de NULL
Identificador MQTT
IOT_MQTT_Destroy
-
Prototipo
int IOT_MQTT_Destroy(void **phandle); -
Descripción
Puede invocar esta operación para cerrar una conexión MQTT y liberar los recursos relacionados.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
phandle
void **
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
-
Valores de retorno
Valor
Descripción
0
Exitoso
< 0
Con errores
IOT_MQTT_Yield
-
Prototipo
int IOT_MQTT_Yield(void *handle, int timeout_ms); -
Descripción
Puede invocar esta operación para recibir paquetes de red y reenviar los mensajes contenidos en ellos a una función de devolución de llamada personalizada.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
timeout_ms
int
Solicitud
El periodo de tiempo de espera para las solicitudes de recepción de paquetes.
-
Descripción del valor de retorno
Valor
Descripción
0
Exitoso
IOT_MQTT_CheckStateNormal
-
Prototipo
int IOT_MQTT_CheckStateNormal(void *handle); -
Descripción
Puede invocar esta operación para consultar el estado de una conexión MQTT.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
-
Descripción del valor de retorno
Valor
Descripción
0
Desconectado
1
Conectado
IOT_MQTT_Subscribe
-
Prototipo
int IOT_MQTT_Subscribe(void *handle, const char *topic_filter, iotx_mqtt_qos_t qos, iotx_mqtt_event_handle_func_fpt topic_handle_func, void *pcontext); -
Descripción
Puede invocar esta operación para suscribirse a un tema MQTT de IoT Platform.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
topic_filter
const char *
Solicitud
El tema al que desea suscribirse.
qos
iotx_mqtt_qos_t
Solicitud
La política de calidad de servicio (QoS).
topic_handle_func
iotx_mqtt_event_handle_func_fpt
Solicitud
La función de devolución de llamada que desea utilizar para recibir mensajes MQTT.
pcontext
void *
Solicitud
El contexto personalizado. El contexto se devuelve desde la función de devolución de llamada.
-
Descripción del valor de retorno
Valor
Descripción
0
Exitoso
< 0
Con errores
IOT_MQTT_Subscribe_Sync
-
Prototipo
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); -
Descripción
Puede invocar esta operación para suscribirse a un tema MQTT de IoT Platform. Esta operación funciona de manera síncrona.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
topic_filter
const char *
Solicitud
El tema al que desea suscribirse.
qos
iotx_mqtt_qos_t
Solicitud
La política de QoS.
topic_handle_func
iotx_mqtt_event_handle_func_fpt
Solicitud
La función de devolución de llamada que desea utilizar para recibir mensajes MQTT.
pcontext
void *
Solicitud
El contexto personalizado. El contexto se devuelve desde la función de devolución de llamada.
timeout_ms
int
Solicitud
El periodo de tiempo de espera para la llamada síncrona.
-
Descripción del valor de retorno
Valor
Descripción
0
Exitoso
< 0
Con errores
IOT_MQTT_Unsubscribe
-
Prototipo
int IOT_MQTT_Unsubscribe(void *handle, const char *topic_filter); -
Descripción
Puede invocar esta operación para cancelar la suscripción a un tema de IoT Platform.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
topic_filter
const char *
Solicitud
El tema del que desea cancelar la suscripción.
-
Descripción del valor de retorno
Valor
Descripción
0
Exitoso
< 0
Con errores
IOT_MQTT_Publish
-
Prototipo
int IOT_MQTT_Publish(void *handle, const char *topic_name, iotx_mqtt_topic_info_pt topic_msg); -
Descripción
Puede invocar esta operación para enviar mensajes a un tema.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
topic_name
const char *
Solicitud
El tema al que desea enviar mensajes.
topic_msg
iotx_mqtt_topic_info_pt
Solicitud
Los mensajes que desea enviar.
-
Descripción del valor de retorno
Valor
Descripción
> 0
Exitoso. El valor se devuelve cuando se reciben mensajes QoS 1. El valor es el ID del mensaje MQTT contenido en el paquete notificado. El valor corresponde al valor del campo
messageIden el protocolo MQTT.0
Exitoso. El valor se devuelve cuando se reciben mensajes QoS 0.
< 0
Con errores
IOT_MQTT_Publish_Simple
-
Prototipo
int IOT_MQTT_Publish_Simple(void *handle, const char *topic_name, int qos, void *data, int len) -
Descripción
Puede invocar esta operación para enviar mensajes a un tema.
NotaIOT_MQTT_Publish: envía mensajes comunes.
IOT_MQTT_Publish_Simple: envía mensajes con más opciones de configuración.
Puede invocar la operación IOT_MQTT_Publish para enviar mensajes comunes. Puede invocar la operación IOT_MQTT_Publish_Simple para enviar mensajes con más opciones de configuración.
-
Parámetros
Parámetro
Tipo
Categoría
Descripción
handle
void *
Solicitud
El identificador MQTT. Puede establecer el parámetro en NULL.
topic_name
const char *
Solicitud
El tema al que desea enviar mensajes.
qos
int
Solicitud
La política de QoS.
data
void *
Solicitud
Los mensajes que desea enviar.
len
int
Solicitud
La longitud de los mensajes.
-
Descripción del valor de retorno
Valor
Descripción
> 0
Exitoso. El valor se devuelve cuando se reciben mensajes QoS 1. El valor es el ID del mensaje MQTT contenido en el paquete notificado. El valor corresponde al valor del campo
messageIden el protocolo MQTT.0
Exitoso. El valor se devuelve cuando se reciben mensajes QoS 0.
< 0
Con errores