Cette rubrique décrit les opérations d'API que vous devez appeler lorsque vous utilisez Link SDK for C pour connecter un appareil à IoT Platform via Message Queuing Telemetry Transport (MQTT).
IOT_MQTT_Construct
-
Prototype
void *IOT_MQTT_Construct(iotx_mqtt_param_t *pInitParams) -
Description
Si vous définissez le paramètre
pInitParamssurNULLlors de l'appel de l'opération pour vous connecter à IoT Platform via MQTT, les valeurs par défaut sont utilisées pour les autres paramètres. -
Paramètre
Paramètre
Type
Catégorie
Description
pInitParams
iotx_mqtt_param_t *
Requête
Le paramètre d'initialisation MQTT. Si vous spécifiez NULL pour le paramètre de requête, les valeurs par défaut sont utilisées pour les paramètres de la structure.
-
Paramètres de la structure
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;Paramètre
Description
port
Le numéro de port du serveur MQTT.
host
L'endpoint du serveur MQTT.
client_id
L'ID du client MQTT.
username
Le nom d'utilisateur utilisé pour se connecter au serveur MQTT.
password
Le mot de passe utilisé pour se connecter au serveur MQTT.
pub_key
La méthode de chiffrement et la clé pour la connexion MQTT.
clean_session
Indique s'il faut utiliser la fonctionnalité de session propre (clean session) de MQTT.
request_timeout_ms
Le délai d'expiration pour les messages MQTT.
keepalive_interval_ms
Le délai d'expiration pour les signaux de maintien de connexion (heartbeats) MQTT.
write_buf_size
La taille maximale du tampon utilisé pour stocker les messages MQTT à envoyer.
read_buf_size
La taille maximale du tampon utilisé pour stocker les messages MQTT reçus.
handle_event
La fonction de rappel personnalisée que vous souhaitez utiliser pour recevoir les données d'événement d'un module MQTT.
customize_info
Les données personnalisées à signaler. Séparez les paires clé-valeur dans une chaîne par des virgules (,). Par exemple,
"pid=123456,mid=abcd";est utilisé pour décrire les informations relatives à un fabricant et à un module.RemarqueSi vous définissez les éléments de la structure pInitParams sur 0 ou si vous définissez le paramètre pInitParams sur NULL, les paramètres prédéfinis par défaut sont utilisés.
-
Valeurs de retour
Valeur
Description
NULL
Échec
Non-NULL
Handle MQTT
IOT_MQTT_Destroy
-
Prototype
int IOT_MQTT_Destroy(void **phandle); -
Description
Appelez cette opération pour fermer une connexion MQTT et libérer les ressources associées.
-
Paramètres
Paramètre
Type
Catégorie
Description
phandle
void **
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
-
Valeurs de retour
Valeur
Description
0
Succès
< 0
Échec
IOT_MQTT_Yield
-
Prototype
int IOT_MQTT_Yield(void *handle, int timeout_ms); -
Description
Appelez cette opération pour recevoir les paquets réseau et transmettre les messages contenus dans ces paquets à une fonction de rappel personnalisée.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
timeout_ms
int
Requête
Le délai d'expiration pour les requêtes de réception des paquets.
-
Description de la valeur de retour
Valeur
Description
0
Succès
IOT_MQTT_CheckStateNormal
-
Prototype
int IOT_MQTT_CheckStateNormal(void *handle); -
Description
Appelez cette opération pour interroger l'état d'une connexion MQTT.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
-
Description de la valeur de retour
Valeur
Description
0
Déconnecté
1
Connecté
IOT_MQTT_Subscribe
-
Prototype
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); -
Description
Appelez cette opération pour vous abonner à un sujet MQTT d'IoT Platform.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
topic_filter
const char *
Requête
Le sujet auquel vous souhaitez vous abonner.
qos
iotx_mqtt_qos_t
Requête
La politique de qualité de service (QoS).
topic_handle_func
iotx_mqtt_event_handle_func_fpt
Requête
La fonction de rappel que vous souhaitez utiliser pour recevoir les messages MQTT.
pcontext
void *
Requête
Le contexte personnalisé. Le contexte est renvoyé par la fonction de rappel.
-
Description de la valeur de retour
Valeur
Description
0
Succès
< 0
Échec
IOT_MQTT_Subscribe_Sync
-
Prototype
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); -
Description
Appelez cette opération pour vous abonner à un sujet MQTT d'IoT Platform. Cette opération fonctionne de manière synchrone.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
topic_filter
const char *
Requête
Le sujet auquel vous souhaitez vous abonner.
qos
iotx_mqtt_qos_t
Requête
La politique QoS.
topic_handle_func
iotx_mqtt_event_handle_func_fpt
Requête
La fonction de rappel que vous souhaitez utiliser pour recevoir les messages MQTT.
pcontext
void *
Requête
Le contexte personnalisé. Le contexte est renvoyé par la fonction de rappel.
timeout_ms
int
Requête
Le délai d'expiration pour l'appel synchrone.
-
Description de la valeur de retour
Valeur
Description
0
Succès
< 0
Échec
IOT_MQTT_Unsubscribe
-
Prototype
int IOT_MQTT_Unsubscribe(void *handle, const char *topic_filter); -
Description
Appelez cette opération pour vous désabonner d'un sujet d'IoT Platform.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
topic_filter
const char *
Requête
Le sujet dont vous souhaitez vous désabonner.
-
Description de la valeur de retour
Valeur
Description
0
Succès
< 0
Échec
IOT_MQTT_Publish
-
Prototype
int IOT_MQTT_Publish(void *handle, const char *topic_name, iotx_mqtt_topic_info_pt topic_msg); -
Description
Appelez cette opération pour publier des messages sur un sujet.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
topic_name
const char *
Requête
Le sujet sur lequel vous souhaitez publier des messages.
topic_msg
iotx_mqtt_topic_info_pt
Requête
Les messages que vous souhaitez publier.
-
Description de la valeur de retour
Valeur
Description
> 0
Succès. La valeur est renvoyée lors de la réception de messages QoS 1. Il s'agit de l'ID du message MQTT contenu dans le paquet signalé. Cette valeur correspond à la valeur du champ
messageIddu protocole MQTT.0
Succès. La valeur est renvoyée lors de la réception de messages QoS 0.
< 0
Échec
IOT_MQTT_Publish_Simple
-
Prototype
int IOT_MQTT_Publish_Simple(void *handle, const char *topic_name, int qos, void *data, int len) -
Description
Appelez cette opération pour publier des messages sur un sujet.
RemarqueIOT_MQTT_Publish : envoie des messages courants.
IOT_MQTT_Publish_Simple : envoie des messages avec davantage d'options de configuration.
Appelez l'opération IOT_MQTT_Publish pour envoyer des messages courants. Appelez l'opération IOT_MQTT_Publish_Simple pour envoyer des messages avec davantage d'options de configuration.
-
Paramètres
Paramètre
Type
Catégorie
Description
handle
void *
Requête
Le handle MQTT. Vous pouvez définir ce paramètre sur NULL.
topic_name
const char *
Requête
Le sujet sur lequel vous souhaitez publier des messages.
qos
int
Requête
La politique QoS.
data
void *
Requête
Les messages que vous souhaitez publier.
len
int
Requête
La longueur des messages.
-
Description de la valeur de retour
Valeur
Description
> 0
Succès. La valeur est renvoyée lors de la réception de messages QoS 1. Il s'agit de l'ID du message MQTT contenu dans le paquet signalé. Cette valeur correspond à la valeur du champ
messageIddu protocole MQTT.0
Succès. La valeur est renvoyée lors de la réception de messages QoS 0.
< 0
Échec