20#ifndef ZEPHYR_INCLUDE_NET_MQTT_SN_H_ 
   21#define ZEPHYR_INCLUDE_NET_MQTT_SN_H_ 
   30#ifdef CONFIG_MQTT_SN_TRANSPORT_UDP 
   80#define MQTT_SN_DATA_STRING_LITERAL(literal) ((struct mqtt_sn_data){literal, sizeof(literal) - 1}) 
   89#define MQTT_SN_DATA_BYTES(...) \ 
   90        ((struct mqtt_sn_data) { (uint8_t[]){ __VA_ARGS__ }, sizeof((uint8_t[]){ __VA_ARGS__ })}) 
  182#ifdef CONFIG_MQTT_SN_TRANSPORT_UDP 
  186struct mqtt_sn_transport_udp {
 
  198#define UDP_TRANSPORT(transport) CONTAINER_OF(transport, struct mqtt_sn_transport_udp, tp) 
  207int mqtt_sn_transport_udp_init(
struct mqtt_sn_transport_udp *udp, 
struct sockaddr *gwaddr,
 
  246                        size_t txsz, 
void *rx, 
size_t rxsz);
 
size_t socklen_t
Definition: net_ip.h:167
 
int mqtt_sn_unsubscribe(struct mqtt_sn_client *client, enum mqtt_sn_qos qos, struct mqtt_sn_data *topic_name)
Unsubscribe from a topic.
 
int mqtt_sn_publish(struct mqtt_sn_client *client, enum mqtt_sn_qos qos, struct mqtt_sn_data *topic_name, bool retain, struct mqtt_sn_data *data)
Publish a value.
 
void mqtt_sn_client_deinit(struct mqtt_sn_client *client)
Deinitialize the client.
 
mqtt_sn_qos
Definition: mqtt_sn.h:42
 
int mqtt_sn_connect(struct mqtt_sn_client *client, bool will, bool clean_session)
Connect the client.
 
int mqtt_sn_subscribe(struct mqtt_sn_client *client, enum mqtt_sn_qos qos, struct mqtt_sn_data *topic_name)
Subscribe to a given topic.
 
mqtt_sn_evt_type
Definition: mqtt_sn.h:95
 
mqtt_sn_return_code
Definition: mqtt_sn.h:58
 
int mqtt_sn_disconnect(struct mqtt_sn_client *client)
Disconnect the client.
 
mqtt_sn_topic_type
Definition: mqtt_sn.h:52
 
int mqtt_sn_client_init(struct mqtt_sn_client *client, const struct mqtt_sn_data *client_id, struct mqtt_sn_transport *transport, mqtt_sn_evt_cb_t evt_cb, void *tx, size_t txsz, void *rx, size_t rxsz)
Initialize a client.
 
void(* mqtt_sn_evt_cb_t)(struct mqtt_sn_client *client, const struct mqtt_sn_evt *evt)
Asynchronous event notification callback registered by the application.
Definition: mqtt_sn.h:133
 
int mqtt_sn_sleep(struct mqtt_sn_client *client, uint16_t duration)
Set the client into sleep state for the given duration (seconds).
 
int mqtt_sn_input(struct mqtt_sn_client *client)
Check the transport for new incoming data.
 
@ MQTT_SN_QOS_M1
Definition: mqtt_sn.h:46
 
@ MQTT_SN_QOS_2
Definition: mqtt_sn.h:45
 
@ MQTT_SN_QOS_1
Definition: mqtt_sn.h:44
 
@ MQTT_SN_QOS_0
Definition: mqtt_sn.h:43
 
@ MQTT_SN_EVT_PINGRESP
Definition: mqtt_sn.h:101
 
@ MQTT_SN_EVT_CONNECTED
Definition: mqtt_sn.h:96
 
@ MQTT_SN_EVT_PUBLISH
Definition: mqtt_sn.h:100
 
@ MQTT_SN_EVT_ASLEEP
Definition: mqtt_sn.h:98
 
@ MQTT_SN_EVT_DISCONNECTED
Definition: mqtt_sn.h:97
 
@ MQTT_SN_EVT_AWAKE
Definition: mqtt_sn.h:99
 
@ MQTT_SN_CODE_ACCEPTED
Definition: mqtt_sn.h:59
 
@ MQTT_SN_CODE_REJECTED_CONGESTION
Definition: mqtt_sn.h:60
 
@ MQTT_SN_CODE_REJECTED_NOTSUP
Definition: mqtt_sn.h:62
 
@ MQTT_SN_CODE_REJECTED_TOPIC_ID
Definition: mqtt_sn.h:61
 
@ MQTT_SN_TOPIC_TYPE_NORMAL
Definition: mqtt_sn.h:53
 
@ MQTT_SN_TOPIC_TYPE_PREDEF
Definition: mqtt_sn.h:54
 
@ MQTT_SN_TOPIC_TYPE_SHORT
Definition: mqtt_sn.h:55
 
__SIZE_TYPE__ ssize_t
Definition: types.h:28
 
struct k_thread client
Definition: main.c:31
 
IPv6 and IPv4 definitions.
 
struct _slist sys_slist_t
Definition: slist.h:40
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
 
__INT64_TYPE__ int64_t
Definition: stdint.h:75
 
A structure used to submit work after a delay.
Definition: kernel.h:3735
 
Definition: mqtt_sn.h:214
 
int state
Definition: mqtt_sn.h:234
 
uint16_t next_msg_id
Definition: mqtt_sn.h:230
 
uint8_t ping_retries
Definition: mqtt_sn.h:236
 
sys_slist_t publish
Definition: mqtt_sn.h:231
 
struct net_buf_simple tx
Definition: mqtt_sn.h:224
 
enum mqtt_sn_qos will_qos
Definition: mqtt_sn.h:219
 
struct k_work_delayable process_work
Definition: mqtt_sn.h:238
 
struct mqtt_sn_data client_id
Definition: mqtt_sn.h:215
 
struct mqtt_sn_data will_msg
Definition: mqtt_sn.h:218
 
sys_slist_t topic
Definition: mqtt_sn.h:232
 
mqtt_sn_evt_cb_t evt_cb
Definition: mqtt_sn.h:228
 
bool will_retain
Definition: mqtt_sn.h:220
 
struct mqtt_sn_transport * transport
Definition: mqtt_sn.h:222
 
struct net_buf_simple rx
Definition: mqtt_sn.h:226
 
int64_t last_ping
Definition: mqtt_sn.h:235
 
struct mqtt_sn_data will_topic
Definition: mqtt_sn.h:217
 
Abstracts memory buffers.
Definition: mqtt_sn.h:66
 
uint16_t size
Definition: mqtt_sn.h:68
 
const uint8_t * data
Definition: mqtt_sn.h:67
 
Definition: mqtt_sn.h:118
 
union mqtt_sn_evt_param param
Definition: mqtt_sn.h:120
 
enum mqtt_sn_evt_type type
Definition: mqtt_sn.h:119
 
Structure to describe an MQTT-SN transport.
Definition: mqtt_sn.h:142
 
ssize_t(* recv)(struct mqtt_sn_client *client, void *buffer, size_t length)
Will be called by the library when it wants to receive a message.
Definition: mqtt_sn.h:167
 
int(* init)(struct mqtt_sn_transport *transport)
Will be called once on client init to initialize the transport.
Definition: mqtt_sn.h:148
 
int(* poll)(struct mqtt_sn_client *client)
Check if incoming data is available.
Definition: mqtt_sn.h:179
 
int(* msg_send)(struct mqtt_sn_client *client, void *buf, size_t sz)
Definition: mqtt_sn.h:160
 
void(* deinit)(struct mqtt_sn_transport *transport)
Will be called on client deinit.
Definition: mqtt_sn.h:155
 
Simple network buffer representation.
Definition: buf.h:82
 
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
 
static ZTEST_BMEM char buffer[8]
Definition: test_mbox_api.c:551
 
static ZTEST_DMEM int tp
Definition: main.c:35
 
Definition: mqtt_sn.h:107
 
struct mqtt_sn_evt_param::@232 publish
 
struct mqtt_sn_data data
Definition: mqtt_sn.h:109
 
enum mqtt_sn_topic_type topic_type
Definition: mqtt_sn.h:110
 
uint16_t topic_id
Definition: mqtt_sn.h:111