m2mb API docs  25.30.003
m2mb API sets documentation
m2mb_mqttsn.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
25 #ifndef M2M_M2MB_MQTTSN_API_H
26 #define M2M_M2MB_MQTTSN_API_H
27 
39 /*-----------------------------------------------------------------------------------------------*/
40 
41 /* Global declarations ==========================================================================*/
42 
43 /*-----------------------------------------------------------------------------------------------
44  m2mb_mqttsn_conf can be used without CMDS like below
45  m2mb_mqttsn_conf_(handle, M2MB_MQTTSN_SET_CLIENT_ID, "MQTTSN_demo")
46  -----------------------------------------------------------------------------------------------*/
47 #define m2mb_mqttsn_conf_( h, args... ) m2mb_mqttsn_conf( h, CMDS( args ) )
48 
49 /* Global typedef ==============================================================================*/
50 
55 typedef HANDLE M2MB_MQTTSN_HANDLE;
56 
60 typedef enum
61 {
67  ENUM_TO_INT( M2MB_MQTTSN_IND_E )
69 
73 typedef enum
74 {
92  ENUM_TO_INT( M2MB_MQTTSN_RESPONSE_E )
94 
98 typedef enum
99 {
100 
115  ENUM_TO_INT( M2MB_MQTTSN_STATUS_E )
117 
122 typedef enum
123 {
124 
204  ENUM_TO_INT( M2MB_MQTTSN_ACTION_E )
206 
210 typedef enum
211 {
216  ENUM_TO_INT( M2MB_MQTTSN_QOS_E )
218 
222 typedef enum
223 {
227  ENUM_TO_INT( M2MB_MQTTSN_TOPIC_ID_E )
229 
233 typedef enum
234 {
237  ENUM_TO_INT( M2MB_MQTTSN_RX_STATUS_E )
239 
243 typedef enum
244 {
249  ENUM_TO_INT( M2MB_MQTTSN_CODE_E )
250  /* 0x04 - 0xFF reserved */
252 
256 typedef struct M2MB_MQTTSN_WILL
257 {
258  UINT8 will;
260  UINT8 retain;
261  const CHAR* will_topic;
262  CHAR* will_msg;
263  UINT16 will_msg_len;
265 
269 typedef struct M2MB_MQTTSN_PUBLISH
270 {
272  UINT8 retain;
274  UINT16 topic;
275  const CHAR * short_topic;
276  const CHAR *data;
277  UINT32 data_len;
279 
283 typedef struct M2MB_MQTTSN_SUBSCRIBE
284 {
288  const CHAR * topic;
290  UINT16 topic_id;
292 
297 {
298  UINT8 topic_type;
299  const CHAR* topic;
300  UINT16 topic_length;
301  const CHAR* msg;
302  UINT32 msg_length;
306 
390 /*-----------------------------------------------------------------------------------------------*/
392  UINT16 resp_size, void *resp, void *userdata );
393 
394 /* Global functions =============================================================================*/
395 
396 /*---------------------------------------------------------------------------*/
458 /*-----------------------------------------------------------------------------------------------*/
460  void *userdata );
461 
462 /*-----------------------------------------------------------------------------------------------*/
524 /*-----------------------------------------------------------------------------------------------*/
526 
527 /*-----------------------------------------------------------------------------------------------*/
606 /*-----------------------------------------------------------------------------------------------*/
608 
609 /*-----------------------------------------------------------------------------------------------*/
682 /*-----------------------------------------------------------------------------------------------*/
683 M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_socket( M2MB_MQTTSN_HANDLE handle, const CHAR *host, UINT32 port);
684 
685 /*-----------------------------------------------------------------------------------------------*/
766 /*-----------------------------------------------------------------------------------------------*/
768 
769 /*-----------------------------------------------------------------------------------------------*/
873 /*-----------------------------------------------------------------------------------------------*/
875 
876 /*-----------------------------------------------------------------------------------------------*/
995 /*-----------------------------------------------------------------------------------------------*/
997 
998 /*-----------------------------------------------------------------------------------------------*/
1111 /*-----------------------------------------------------------------------------------------------*/
1113  UINT16* topic_id, UINT8* return_code);
1114 
1115 /*-----------------------------------------------------------------------------------------------*/
1265 /*-----------------------------------------------------------------------------------------------*/
1267  M2MB_MQTTSN_PUBLISH_T publish,
1268  UINT8* return_code );
1269 
1270 /*-----------------------------------------------------------------------------------------------*/
1410 /*-----------------------------------------------------------------------------------------------*/
1412  M2MB_MQTTSN_SUBSCRIBE_T subscribe,
1413  UINT16* topic_id, UINT8* return_code );
1414 
1415 /*-----------------------------------------------------------------------------------------------*/
1575 /*-----------------------------------------------------------------------------------------------*/
1577  M2MB_MQTTSN_TOPIC_ID_E topic_type,
1578  const CHAR * topic, UINT16 topic_id);
1579 
1580 /*-----------------------------------------------------------------------------------------------*/
1689 /*-----------------------------------------------------------------------------------------------*/
1691 
1692 /*-----------------------------------------------------------------------------------------------*/
1805 /*-----------------------------------------------------------------------------------------------*/
1807 
1808 /*-----------------------------------------------------------------------------------------------*/
1925 /*-----------------------------------------------------------------------------------------------*/
1927 
1928 /*-----------------------------------------------------------------------------------------------*/
2071 /*-----------------------------------------------------------------------------------------------*/
2073  M2MB_MQTTSN_WILL_T* will,
2074  UINT8* return_code );
2075 
2076 /*-----------------------------------------------------------------------------------------------*/
2209 /*-----------------------------------------------------------------------------------------------*/
2211  CHAR* will_msg,
2212  UINT16 will_msg_len,
2213  UINT8* return_code );
2214 
2215 /*-----------------------------------------------------------------------------------------------*/
2279 /*-----------------------------------------------------------------------------------------------*/
2281  M2MB_MQTTSN_STATUS_E* status );
2282 
2286 /*-----------------------------------------------------------------------------------------------*/
2287 
2288 #endif /* M2MB_MQTTSN_API_H */
M2MB_MQTTSN_CODE_ACCEPTED
Definition: m2mb_mqttsn.h:245
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:198
M2MB_MQTTSN_GET_CLIENT_ID
Definition: m2mb_mqttsn.h:164
M2MB_MQTTSN_QOS_0
Definition: m2mb_mqttsn.h:212
M2MB_MQTTSN_PUBLISH::topic_type
M2MB_MQTTSN_TOPIC_ID_E topic_type
Definition: m2mb_mqttsn.h:273
M2MB_MQTTSN_ERROR_PACKET_TYPE
Definition: m2mb_mqttsn.h:79
M2MB_MQTTSN_PUBLISH::topic
UINT16 topic
Definition: m2mb_mqttsn.h:274
M2MB_MQTTSN_ERROR_OUT_OF_BUFFER
Definition: m2mb_mqttsn.h:77
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:60
M2MB_MQTTSN_ERROR_CALLBACK
Definition: m2mb_mqttsn.h:85
M2MB_MQTTSN_ERROR_NETWORK
Definition: m2mb_mqttsn.h:82
M2MB_MQTTSN_PUBLISH::retain
UINT8 retain
Definition: m2mb_mqttsn.h:272
M2MB_MQTTSN_SET_CLIENT_ID
Definition: m2mb_mqttsn.h:125
M2MB_MQTTSN_STATUS_E
M2MB_MQTTSN_STATUS_E
mqtt-sn client status enum
Definition: m2mb_mqttsn.h:98
M2MB_MQTTSN_WILL::will_msg
CHAR * will_msg
Definition: m2mb_mqttsn.h:262
M2MB_MQTTSN_FATAL_ERROR
Definition: m2mb_mqttsn.h:112
M2MB_MQTTSN_WILL::retain
UINT8 retain
Definition: m2mb_mqttsn.h:260
M2MB_MQTTSN_CONTINUE
Definition: m2mb_mqttsn.h:91
M2MB_MQTTSN_SET_CLEAN_SESSION
Definition: m2mb_mqttsn.h:140
M2MB_MQTTSN_GET_TIMEOUT_MS
Definition: m2mb_mqttsn.h:170
M2MB_MQTTSN_SUBSCRIBE::topic_id
UINT16 topic_id
Definition: m2mb_mqttsn.h:290
M2MB_MQTTSN_CONNECT_TIMEOUT
Definition: m2mb_mqttsn.h:109
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:122
M2MB_MQTTSN_QOS_3
Definition: m2mb_mqttsn.h:215
M2MB_MQTTSN_CODE_NOTSUPPORTED
Definition: m2mb_mqttsn.h:248
M2MB_MQTTSN_MESSAGE_CTX::msg
const CHAR * msg
Definition: m2mb_mqttsn.h:301
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:188
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_MESSAGE_CTX::topic_length
UINT16 topic_length
Definition: m2mb_mqttsn.h:300
M2MB_MQTTSN_PUBLISH::data_len
UINT32 data_len
Definition: m2mb_mqttsn.h:277
M2MB_MQTTSN_WILL::will
UINT8 will
Definition: m2mb_mqttsn.h:258
M2MB_MQTTSN_TOPIC_ID_E
M2MB_MQTTSN_TOPIC_ID_E
MQTT-SN Topic ID types.
Definition: m2mb_mqttsn.h:222
M2MB_MQTTSN_MESSAGE_CTX::status
M2MB_MQTTSN_RX_STATUS_E status
Definition: m2mb_mqttsn.h:303
M2MB_MQTTSN_INDICATION_MESSAGE_RCV
Definition: m2mb_mqttsn.h:65
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:176
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_ERROR_ASYNC_THREAD
Definition: m2mb_mqttsn.h:88
M2MB_MQTTSN_QOS_E
M2MB_MQTTSN_QOS_E
MQTT-SN QoS Enum.
Definition: m2mb_mqttsn.h:210
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:55
M2MB_MQTTSN_ERROR_MALFORMED_DATA
Definition: m2mb_mqttsn.h:78
M2MB_MQTTSN_CLIENT_CONNECTED
Definition: m2mb_mqttsn.h:104
M2MB_MQTTSN_MESSAGE_CTX::topic
const CHAR * topic
Definition: m2mb_mqttsn.h:299
M2MB_MQTTSN_STATUS_UNKNOWN
Definition: m2mb_mqttsn.h:114
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_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:76
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_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:236
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:224
M2MB_MQTTSN_WILL::will_topic
const CHAR * will_topic
Definition: m2mb_mqttsn.h:261
M2MB_MQTTSN_SOCKET_CONNECTED
Definition: m2mb_mqttsn.h:102
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:269
M2MB_MQTTSN_PUBLISH::data
const CHAR * data
Definition: m2mb_mqttsn.h:276
M2MB_MQTTSN_ERROR_STAT
Definition: m2mb_mqttsn.h:84
M2MB_MQTTSN_SET_KEEPALIVE_SEC
Definition: m2mb_mqttsn.h:136
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:62
M2MB_MQTTSN_WILL
MQTT-SN will structure. Used while setting will and will topic update.
Definition: m2mb_mqttsn.h:256
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:391
M2MB_MQTTSN_CLIENT_AWAKE
Definition: m2mb_mqttsn.h:111
M2MB_MQTTSN_ERROR_MEMORY
Definition: m2mb_mqttsn.h:83
M2MB_MQTTSN_MESSAGE_CTX
MQTT-SN Subscribe structure. This is used while subscribing to a topic/topic Id.
Definition: m2mb_mqttsn.h:296
M2MB_MQTTSN_SUBSCRIBE
MQTT-SN Subscribe structure. This is used while subscribing to a topic/topic Id.
Definition: m2mb_mqttsn.h:283
M2MB_MQTTSN_CONN_RESET_BY_PEER
Definition: m2mb_mqttsn.h:106
M2MB_MQTTSN_ERROR_SEM
Definition: m2mb_mqttsn.h:87
M2MB_MQTTSN_ERROR_PACKET_ID
Definition: m2mb_mqttsn.h:80
M2MB_MQTTSN_WILL::will_msg_len
UINT16 will_msg_len
Definition: m2mb_mqttsn.h:263
M2MB_MQTTSN_PUBLISH::qos
M2MB_MQTTSN_QOS_E qos
Definition: m2mb_mqttsn.h:271
M2MB_MQTTSN_CODE_INVTOPICNAME
Definition: m2mb_mqttsn.h:247
M2MB_MQTTSN_CODE_CONGESTION
Definition: m2mb_mqttsn.h:246
M2MB_MQTTSN_NOT_CONNECTED
Definition: m2mb_mqttsn.h:101
M2MB_MQTTSN_QOS_1
Definition: m2mb_mqttsn.h:213
M2MB_MQTTSN_PINGREQ_TIMEOUT_FAIL
Definition: m2mb_mqttsn.h:107
M2MB_MQTTSN_MESSAGE_CTX::msg_length
UINT32 msg_length
Definition: m2mb_mqttsn.h:302
M2MB_MQTTSN_QOS_2
Definition: m2mb_mqttsn.h:214
M2MB_MQTTSN_WILL::qos
M2MB_MQTTSN_QOS_E qos
Definition: m2mb_mqttsn.h:259
M2MB_MQTTSN_SECURE_OPT
Definition: m2mb_mqttsn.h:133
m2mb_mqttsn_ping
M2MB_MQTTSN_RESPONSE_E m2mb_mqttsn_ping(M2MB_MQTTSN_HANDLE handle)
m2mb_mqttsn_ping is called to ping
M2MB_MQTTSN_MESSAGE_CTX::topic_type
UINT8 topic_type
Definition: m2mb_mqttsn.h:298
M2MB_MQTTSN_PUBLISH::short_topic
const CHAR * short_topic
Definition: m2mb_mqttsn.h:275
M2MB_MQTTSN_TOPIC_ID_SHORT
Definition: m2mb_mqttsn.h:226
M2MB_MQTTSN_SET_LAST_WILL
Definition: m2mb_mqttsn.h:146
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:225
M2MB_MQTTSN_SUBSCRIBE::topic
const CHAR * topic
Definition: m2mb_mqttsn.h:288
M2MB_MQTTSN_ERROR
Definition: m2mb_mqttsn.h:90
M2MB_MQTTSN_SET_PDP_CONTEXT
Definition: m2mb_mqttsn.h:160
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:129
M2MB_MQTTSN_GET_CLEAN_SESSION
Definition: m2mb_mqttsn.h:182
M2MB_MQTTSN_SUBSCRIBE::topic_type
M2MB_MQTTSN_TOPIC_ID_E topic_type
Definition: m2mb_mqttsn.h:287
M2MB_MQTTSN_CODE_E
M2MB_MQTTSN_CODE_E
RETURN CODE values received in various MQTT-SN response (Acknowledgement) packets.
Definition: m2mb_mqttsn.h:243
M2MB_MQTTSN_SUCCESS
Definition: m2mb_mqttsn.h:75
M2MB_MQTTSN_CLIENT_SLEEP
Definition: m2mb_mqttsn.h:110
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_RESPONSE_E
M2MB_MQTTSN_RESPONSE_E
MQTT-SN APIs response enum.
Definition: m2mb_mqttsn.h:73
M2MB_MQTTSN_RX_FINISHED
Definition: m2mb_mqttsn.h:235
M2MB_MQTTSN_RX_STATUS_E
M2MB_MQTTSN_RX_STATUS_E
MQTT-SN Receive Data Status Enum.
Definition: m2mb_mqttsn.h:233
M2MB_MQTTSN_NETWORK_ERROR
Definition: m2mb_mqttsn.h:113
M2MB_MQTTSN_ERROR_TIMEOUT
Definition: m2mb_mqttsn.h:81
M2MB_MQTTSN_SUBSCRIBE::qos
M2MB_MQTTSN_QOS_E qos
Definition: m2mb_mqttsn.h:285
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.