m2mb API docs  25.30.004.0
m2mb API sets documentation
m2mb_mqttsn.h
Go to the documentation of this file.
1 /* $version: 252203 */
2 /*===============================================================================================*/
3 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
26 #ifndef M2M_M2MB_MQTTSN_API_H
27 #define M2M_M2MB_MQTTSN_API_H
28 
40 /*-----------------------------------------------------------------------------------------------*/
41 
42 /* Global declarations ==========================================================================*/
43 
44 /*-----------------------------------------------------------------------------------------------
45  m2mb_mqttsn_conf can be used without CMDS like below
46  m2mb_mqttsn_conf_(handle, M2MB_MQTTSN_SET_CLIENT_ID, "MQTTSN_demo")
47  -----------------------------------------------------------------------------------------------*/
48 #define m2mb_mqttsn_conf_( h, args... ) m2mb_mqttsn_conf( h, CMDS( args ) )
49 
50 /* Global typedef ==============================================================================*/
51 
56 typedef HANDLE M2MB_MQTTSN_HANDLE;
57 
61 typedef enum
62 {
68  ENUM_TO_INT( M2MB_MQTTSN_IND_E )
70 
74 typedef enum
75 {
93  ENUM_TO_INT( M2MB_MQTTSN_RESPONSE_E )
95 
99 typedef enum
100 {
101 
116  ENUM_TO_INT( M2MB_MQTTSN_STATUS_E )
118 
123 typedef enum
124 {
125 
205  ENUM_TO_INT( M2MB_MQTTSN_ACTION_E )
207 
211 typedef enum
212 {
217  ENUM_TO_INT( M2MB_MQTTSN_QOS_E )
219 
223 typedef enum
224 {
228  ENUM_TO_INT( M2MB_MQTTSN_TOPIC_ID_E )
230 
234 typedef enum
235 {
238  ENUM_TO_INT( M2MB_MQTTSN_RX_STATUS_E )
240 
244 typedef enum
245 {
250  ENUM_TO_INT( M2MB_MQTTSN_CODE_E )
251  /* 0x04 - 0xFF reserved */
253 
257 typedef struct M2MB_MQTTSN_WILL
258 {
259  UINT8 will;
261  UINT8 retain;
262  const CHAR* will_topic;
263  CHAR* will_msg;
264  UINT16 will_msg_len;
266 
270 typedef struct M2MB_MQTTSN_PUBLISH
271 {
273  UINT8 retain;
275  UINT16 topic;
276  const CHAR * short_topic;
277  const CHAR *data;
278  UINT32 data_len;
280 
284 typedef struct M2MB_MQTTSN_SUBSCRIBE
285 {
289  const CHAR * topic;
291  UINT16 topic_id;
293 
298 {
299  UINT8 topic_type;
300  const CHAR* topic;
301  UINT16 topic_length;
302  const CHAR* msg;
303  UINT32 msg_length;
307 
391 /*-----------------------------------------------------------------------------------------------*/
393  UINT16 resp_size, void *resp, void *userdata );
394 
395 /* Global functions =============================================================================*/
396 
397 /*---------------------------------------------------------------------------*/
459 /*-----------------------------------------------------------------------------------------------*/
461  void *userdata );
462 
463 /*-----------------------------------------------------------------------------------------------*/
525 /*-----------------------------------------------------------------------------------------------*/
527 
528 /*-----------------------------------------------------------------------------------------------*/
607 /*-----------------------------------------------------------------------------------------------*/
609 
610 /*-----------------------------------------------------------------------------------------------*/
683 /*-----------------------------------------------------------------------------------------------*/
684 M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_socket( M2MB_MQTTSN_HANDLE handle, const CHAR *host, UINT32 port);
685 
686 /*-----------------------------------------------------------------------------------------------*/
767 /*-----------------------------------------------------------------------------------------------*/
769 
770 /*-----------------------------------------------------------------------------------------------*/
874 /*-----------------------------------------------------------------------------------------------*/
876 
877 /*-----------------------------------------------------------------------------------------------*/
996 /*-----------------------------------------------------------------------------------------------*/
998 
999 /*-----------------------------------------------------------------------------------------------*/
1112 /*-----------------------------------------------------------------------------------------------*/
1114  UINT16* topic_id, UINT8* return_code);
1115 
1116 /*-----------------------------------------------------------------------------------------------*/
1266 /*-----------------------------------------------------------------------------------------------*/
1268  M2MB_MQTTSN_PUBLISH_T publish,
1269  UINT8* return_code );
1270 
1271 /*-----------------------------------------------------------------------------------------------*/
1411 /*-----------------------------------------------------------------------------------------------*/
1413  M2MB_MQTTSN_SUBSCRIBE_T subscribe,
1414  UINT16* topic_id, UINT8* return_code );
1415 
1416 /*-----------------------------------------------------------------------------------------------*/
1576 /*-----------------------------------------------------------------------------------------------*/
1578  M2MB_MQTTSN_TOPIC_ID_E topic_type,
1579  const CHAR * topic, UINT16 topic_id);
1580 
1581 /*-----------------------------------------------------------------------------------------------*/
1690 /*-----------------------------------------------------------------------------------------------*/
1692 
1693 /*-----------------------------------------------------------------------------------------------*/
1806 /*-----------------------------------------------------------------------------------------------*/
1808 
1809 /*-----------------------------------------------------------------------------------------------*/
1926 /*-----------------------------------------------------------------------------------------------*/
1928 
1929 /*-----------------------------------------------------------------------------------------------*/
2072 /*-----------------------------------------------------------------------------------------------*/
2074  M2MB_MQTTSN_WILL_T* will,
2075  UINT8* return_code );
2076 
2077 /*-----------------------------------------------------------------------------------------------*/
2210 /*-----------------------------------------------------------------------------------------------*/
2212  CHAR* will_msg,
2213  UINT16 will_msg_len,
2214  UINT8* return_code );
2215 
2216 /*-----------------------------------------------------------------------------------------------*/
2280 /*-----------------------------------------------------------------------------------------------*/
2282  M2MB_MQTTSN_STATUS_E* status );
2283 
2287 /*-----------------------------------------------------------------------------------------------*/
2288 
2289 #endif /* M2MB_MQTTSN_API_H */
M2MB_MQTTSN_CODE_ACCEPTED
Definition: m2mb_mqttsn.h:246
M2MB_MQTTSN_SUBSCRIBE::topic_id
UINT16 topic_id
Definition: m2mb_mqttsn.h:291
m2mb_mqttsn_disconnect
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_disconnect(M2MB_MQTTSN_HANDLE handle)
m2mb_mqttsn_disconnect is called to disconnect from the MQTTSN Gateway.
M2MB_MQTTSN_GET_PDP_CONTEXT
Definition: m2mb_mqttsn.h:199
M2MB_MQTTSN_GET_CLIENT_ID
Definition: m2mb_mqttsn.h:165
M2MB_MQTTSN_QOS_0
Definition: m2mb_mqttsn.h:213
M2MB_MQTTSN_ERROR_PACKET_TYPE
Definition: m2mb_mqttsn.h:80
M2MB_MQTTSN_ERROR_OUT_OF_BUFFER
Definition: m2mb_mqttsn.h:78
m2mb_mqttsn_unsubscribe
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_unsubscribe(M2MB_MQTTSN_HANDLE handle, M2MB_MQTTSN_TOPIC_ID_E topic_type, const CHAR *topic, UINT16 topic_id)
m2mb_mqttsn_unsubscribe is called to send Unsubscribe to the specified topic/topic name.
m2mb_mqttsn_init
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_init(M2MB_MQTTSN_HANDLE *pHandle, m2mb_mqttsn_ind_callback callback, void *userdata)
m2mb_mqttsn_init is called to initialize MQTT-SN context.
M2MB_MQTTSN_IND_E
M2MB_MQTTSN_IND_E
MQTT-SN Indications enum.
Definition: m2mb_mqttsn.h:61
M2MB_MQTTSN_PUBLISH::retain
UINT8 retain
Definition: m2mb_mqttsn.h:273
M2MB_MQTTSN_ERROR_CALLBACK
Definition: m2mb_mqttsn.h:86
M2MB_MQTTSN_ERROR_NETWORK
Definition: m2mb_mqttsn.h:83
M2MB_MQTTSN_SET_CLIENT_ID
Definition: m2mb_mqttsn.h:126
M2MB_MQTTSN_STATUS_E
M2MB_MQTTSN_STATUS_E
mqtt-sn client status enum
Definition: m2mb_mqttsn.h:99
M2MB_MQTTSN_FATAL_ERROR
Definition: m2mb_mqttsn.h:113
M2MB_MQTTSN_CONTINUE
Definition: m2mb_mqttsn.h:92
M2MB_MQTTSN_SET_CLEAN_SESSION
Definition: m2mb_mqttsn.h:141
M2MB_MQTTSN_GET_TIMEOUT_MS
Definition: m2mb_mqttsn.h:171
M2MB_MQTTSN_CONNECT_TIMEOUT
Definition: m2mb_mqttsn.h:110
M2MB_MQTTSN_ACTION_E
M2MB_MQTTSN_ACTION_E
MQTT-SN actions enum List of actions performed through m2mb_mqttsn_conf API.
Definition: m2mb_mqttsn.h:123
M2MB_MQTTSN_QOS_3
Definition: m2mb_mqttsn.h:216
M2MB_MQTTSN_CODE_NOTSUPPORTED
Definition: m2mb_mqttsn.h:249
m2mb_mqttsn_conf
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_conf(M2MB_MQTTSN_HANDLE handle, UINT8 nCmds,...)
m2mb_mqttsn_conf sets/gets some MQTTSN parameters and configurations.
M2MB_MQTTSN_GET_LAST_WILL
Definition: m2mb_mqttsn.h:189
m2mb_mqttsn_deinit
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_deinit(M2MB_MQTTSN_HANDLE handle)
m2mb_mqttsn_deinit deinitializes MQTT-SN service for specified MQTT-SN client.
M2MB_MQTTSN_WILL::will_msg
CHAR * will_msg
Definition: m2mb_mqttsn.h:263
M2MB_MQTTSN_WILL::will_topic
const CHAR * will_topic
Definition: m2mb_mqttsn.h:262
M2MB_MQTTSN_TOPIC_ID_E
M2MB_MQTTSN_TOPIC_ID_E
MQTT-SN Topic ID types.
Definition: m2mb_mqttsn.h:223
M2MB_MQTTSN_INDICATION_MESSAGE_RCV
Definition: m2mb_mqttsn.h:66
M2MB_MQTTSN_MESSAGE_CTX_T
struct M2MB_MQTTSN_MESSAGE_CTX M2MB_MQTTSN_MESSAGE_CTX_T
MQTT-SN Subscribe structure. This is used while subscribing to a topic/topic Id.
m2mb_mqttsn_clean_socket
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_clean_socket(M2MB_MQTTSN_HANDLE handle)
m2mb_mqttsn_clean_socket is called to perform socket related cleanup
M2MB_MQTTSN_GET_KEEPALIVE_SEC
Definition: m2mb_mqttsn.h:177
M2MB_MQTTSN_SUBSCRIBE_T
struct M2MB_MQTTSN_SUBSCRIBE M2MB_MQTTSN_SUBSCRIBE_T
MQTT-SN Subscribe structure. This is used while subscribing to a topic/topic Id.
M2MB_MQTTSN_PUBLISH::topic_type
M2MB_MQTTSN_TOPIC_ID_E topic_type
Definition: m2mb_mqttsn.h:274
M2MB_MQTTSN_ERROR_ASYNC_THREAD
Definition: m2mb_mqttsn.h:89
M2MB_MQTTSN_QOS_E
M2MB_MQTTSN_QOS_E
MQTT-SN QoS Enum.
Definition: m2mb_mqttsn.h:211
M2MB_MQTTSN_HANDLE
HANDLE M2MB_MQTTSN_HANDLE
MQTT-SN context handle. This is obtained from m2mb_mqttsn_init API and then used in subsequent MQTT-S...
Definition: m2mb_mqttsn.h:56
M2MB_MQTTSN_ERROR_MALFORMED_DATA
Definition: m2mb_mqttsn.h:79
M2MB_MQTTSN_CLIENT_CONNECTED
Definition: m2mb_mqttsn.h:105
M2MB_MQTTSN_STATUS_UNKNOWN
Definition: m2mb_mqttsn.h:115
m2mb_mqttsn_get_client_status
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_get_client_status(M2MB_MQTTSN_HANDLE handle, M2MB_MQTTSN_STATUS_E *status)
m2mb_mqttsn_get_client_status gets MQTTSN client current status
M2MB_MQTTSN_MESSAGE_CTX::topic_length
UINT16 topic_length
Definition: m2mb_mqttsn.h:301
m2mb_mqttsn_awake
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_awake(M2MB_MQTTSN_HANDLE handle)
m2mb_mqttsn_awake is called to enter "awake" state
M2MB_MQTTSN_ERROR_BAD_ARG
Definition: m2mb_mqttsn.h:77
m2mb_mqttsn_subscribe
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_subscribe(M2MB_MQTTSN_HANDLE handle, M2MB_MQTTSN_SUBSCRIBE_T subscribe, UINT16 *topic_id, UINT8 *return_code)
m2mb_mqttsn_subscribe is called to send Subscribe to the specified topic/topic name.
M2MB_MQTTSN_MESSAGE_CTX::status
M2MB_MQTTSN_RX_STATUS_E status
Definition: m2mb_mqttsn.h:304
m2mb_mqttsn_publish
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_publish(M2MB_MQTTSN_HANDLE handle, M2MB_MQTTSN_PUBLISH_T publish, UINT8 *return_code)
m2mb_mqttsn_publish is called to send Publish packet to the Gateway.
M2MB_MQTTSN_RX_MORE_DATA
Definition: m2mb_mqttsn.h:237
m2mb_mqttsn_socket
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_socket(M2MB_MQTTSN_HANDLE handle, const CHAR *host, UINT32 port)
m2mb_mqttsn_socket is called to initialize the socket
m2mb_mqttsn_connect
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_connect(M2MB_MQTTSN_HANDLE handle, UINT8 *return_code)
m2mb_mqttsn_connect is called to connect to the specified MQTTSN Gateway.
M2MB_MQTTSN_TOPIC_ID_NORMAL
Definition: m2mb_mqttsn.h:225
M2MB_MQTTSN_SOCKET_CONNECTED
Definition: m2mb_mqttsn.h:103
m2mb_mqttsn_register
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_register(M2MB_MQTTSN_HANDLE handle, const CHAR *topic, UINT16 *topic_id, UINT8 *return_code)
m2mb_mqttsn_register is called to send Register packet to the Gateway.
M2MB_MQTTSN_PUBLISH
MQTT-SN Publish structure. This is used to Publish data to the Gateway.
Definition: m2mb_mqttsn.h:270
M2MB_MQTTSN_MESSAGE_CTX::topic
const CHAR * topic
Definition: m2mb_mqttsn.h:300
M2MB_MQTTSN_ERROR_STAT
Definition: m2mb_mqttsn.h:85
M2MB_MQTTSN_MESSAGE_CTX::msg_length
UINT32 msg_length
Definition: m2mb_mqttsn.h:303
M2MB_MQTTSN_SET_KEEPALIVE_SEC
Definition: m2mb_mqttsn.h:137
m2mb_mqttsn_enter_sleep
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_enter_sleep(M2MB_MQTTSN_HANDLE handle, UINT16 duration)
m2mn_mqttsn_enter_sleep is called to enable sleeping client functionality
M2MB_MQTTSN_INDICATION_DISCONNECT
Definition: m2mb_mqttsn.h:63
M2MB_MQTTSN_PUBLISH::data_len
UINT32 data_len
Definition: m2mb_mqttsn.h:278
M2MB_MQTTSN_WILL
MQTT-SN will structure. Used while setting will and will topic update.
Definition: m2mb_mqttsn.h:257
m2mb_mqttsn_ind_callback
void(* m2mb_mqttsn_ind_callback)(M2MB_MQTTSN_HANDLE Handle, M2MB_MQTTSN_IND_E event, UINT16 resp_size, void *resp, void *userdata)
MQTT-SN callback prototype.
Definition: m2mb_mqttsn.h:392
M2MB_MQTTSN_CLIENT_AWAKE
Definition: m2mb_mqttsn.h:112
M2MB_MQTTSN_ERROR_MEMORY
Definition: m2mb_mqttsn.h:84
M2MB_MQTTSN_MESSAGE_CTX
MQTT-SN Subscribe structure. This is used while subscribing to a topic/topic Id.
Definition: m2mb_mqttsn.h:297
M2MB_MQTTSN_SUBSCRIBE
MQTT-SN Subscribe structure. This is used while subscribing to a topic/topic Id.
Definition: m2mb_mqttsn.h:284
M2MB_MQTTSN_CONN_RESET_BY_PEER
Definition: m2mb_mqttsn.h:107
M2MB_MQTTSN_ERROR_SEM
Definition: m2mb_mqttsn.h:88
M2MB_MQTTSN_PUBLISH::short_topic
const CHAR * short_topic
Definition: m2mb_mqttsn.h:276
M2MB_MQTTSN_MESSAGE_CTX::msg
const CHAR * msg
Definition: m2mb_mqttsn.h:302
M2MB_MQTTSN_WILL::will_msg_len
UINT16 will_msg_len
Definition: m2mb_mqttsn.h:264
M2MB_MQTTSN_ERROR_PACKET_ID
Definition: m2mb_mqttsn.h:81
M2MB_MQTTSN_CODE_INVTOPICNAME
Definition: m2mb_mqttsn.h:248
M2MB_MQTTSN_CODE_CONGESTION
Definition: m2mb_mqttsn.h:247
M2MB_MQTTSN_NOT_CONNECTED
Definition: m2mb_mqttsn.h:102
M2MB_MQTTSN_QOS_1
Definition: m2mb_mqttsn.h:214
M2MB_MQTTSN_PINGREQ_TIMEOUT_FAIL
Definition: m2mb_mqttsn.h:108
M2MB_MQTTSN_QOS_2
Definition: m2mb_mqttsn.h:215
M2MB_MQTTSN_PUBLISH::qos
M2MB_MQTTSN_QOS_E qos
Definition: m2mb_mqttsn.h:272
M2MB_MQTTSN_SUBSCRIBE::topic_type
M2MB_MQTTSN_TOPIC_ID_E topic_type
Definition: m2mb_mqttsn.h:288
M2MB_MQTTSN_SECURE_OPT
Definition: m2mb_mqttsn.h:134
M2MB_MQTTSN_SUBSCRIBE::topic
const CHAR * topic
Definition: m2mb_mqttsn.h:289
m2mb_mqttsn_ping
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_ping(M2MB_MQTTSN_HANDLE handle)
m2mb_mqttsn_ping is called to ping
M2MB_MQTTSN_TOPIC_ID_SHORT
Definition: m2mb_mqttsn.h:227
M2MB_MQTTSN_SET_LAST_WILL
Definition: m2mb_mqttsn.h:147
m2mb_mqttsn_will_topic_update
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_will_topic_update(M2MB_MQTTSN_HANDLE handle, M2MB_MQTTSN_WILL_T *will, UINT8 *return_code)
m2mb_mqttsn_will_topic_update is called to send Topic Update packet to the Gateway.
M2MB_MQTTSN_TOPIC_ID_PREDEF
Definition: m2mb_mqttsn.h:226
M2MB_MQTTSN_WILL::retain
UINT8 retain
Definition: m2mb_mqttsn.h:261
M2MB_MQTTSN_ERROR
Definition: m2mb_mqttsn.h:91
M2MB_MQTTSN_SET_PDP_CONTEXT
Definition: m2mb_mqttsn.h:161
M2MB_MQTTSN_WILL_T
struct M2MB_MQTTSN_WILL M2MB_MQTTSN_WILL_T
MQTT-SN will structure. Used while setting will and will topic update.
M2MB_MQTTSN_SET_TIMEOUT_MS
Definition: m2mb_mqttsn.h:130
M2MB_MQTTSN_GET_CLEAN_SESSION
Definition: m2mb_mqttsn.h:183
M2MB_MQTTSN_CODE_E
M2MB_MQTTSN_CODE_E
RETURN CODE values received in various MQTT-SN response (Acknowledgement) packets.
Definition: m2mb_mqttsn.h:244
M2MB_MQTTSN_SUBSCRIBE::qos
M2MB_MQTTSN_QOS_E qos
Definition: m2mb_mqttsn.h:286
M2MB_MQTTSN_SUCCESS
Definition: m2mb_mqttsn.h:76
M2MB_MQTTSN_CLIENT_SLEEP
Definition: m2mb_mqttsn.h:111
m2mb_mqttsn_will_message_update
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_will_message_update(M2MB_MQTTSN_HANDLE handle, CHAR *will_msg, UINT16 will_msg_len, UINT8 *return_code)
m2mb_mqttsn_will_message_update is called to send Will Message Update packet to the Gateway.
M2MB_MQTTSN_PUBLISH::topic
UINT16 topic
Definition: m2mb_mqttsn.h:275
M2MB_MQTTSN_RESPONSE_E
M2MB_MQTTSN_RESPONSE_E
MQTT-SN APIs response enum.
Definition: m2mb_mqttsn.h:74
M2MB_MQTTSN_RX_FINISHED
Definition: m2mb_mqttsn.h:236
M2MB_MQTTSN_MESSAGE_CTX::topic_type
UINT8 topic_type
Definition: m2mb_mqttsn.h:299
M2MB_MQTTSN_RX_STATUS_E
M2MB_MQTTSN_RX_STATUS_E
MQTT-SN Receive Data Status Enum.
Definition: m2mb_mqttsn.h:234
M2MB_MQTTSN_NETWORK_ERROR
Definition: m2mb_mqttsn.h:114
M2MB_MQTTSN_WILL::qos
M2MB_MQTTSN_QOS_E qos
Definition: m2mb_mqttsn.h:260
M2MB_MQTTSN_ERROR_TIMEOUT
Definition: m2mb_mqttsn.h:82
M2MB_MQTTSN_WILL::will
UINT8 will
Definition: m2mb_mqttsn.h:259
M2MB_MQTTSN_PUBLISH_T
struct M2MB_MQTTSN_PUBLISH M2MB_MQTTSN_PUBLISH_T
MQTT-SN Publish structure. This is used to Publish data to the Gateway.
M2MB_MQTTSN_PUBLISH::data
const CHAR * data
Definition: m2mb_mqttsn.h:277