MeshX 0.4
This repository provides an implementation for Bluetooth Low Energy (BLE) Mesh network nodes. The project allows you to create BLE mesh nodes that can communicate with each other, enabling the development of smart home solutions or other IoT-based applications.
Loading...
Searching...
No Matches
meshx_msg_q.h
Go to the documentation of this file.
1/**
2 * @file meshx_msg_q.h
3 * @brief MeshX Message Queue Interface
4 *
5 * This file contains the MeshX Message Queue Interface.
6 *
7 * @author Pranjal Chanda
8 * @version 1.0
9 */
10
11#ifndef __MESHX_MSG_Q_H
12#define __MESHX_MSG_Q_H
13
14#include <stdint.h>
15#include <stddef.h>
16#include "meshx_err.h"
17
18/**
19 * @brief MeshX Message Queue Structure
20 */
21typedef struct meshx_msg_q
22{
23 /* Public */
24 int max_msg_depth; /**< Maximum Message Length */
25 int max_msg_length; /**< Maximum Message Count */
26 /* Private */
27 void *__msg_q_handle; /**< Message Queue Handle */
29
30/**
31 * @brief Create a MeshX Message Queue
32 *
33 * This function creates a MeshX Message Queue.
34 *
35 * @param[in,out] msg_q_handle Message Queue Handle
36 *
37 * @return Message Queue Handle
38 */
40
41/**
42 * @brief Delete a MeshX Message Queue
43 *
44 * This function deletes a MeshX Message Queue.
45 *
46 * @param[in] msg_q_handle Message Queue Handle
47 */
49
50/**
51 * @brief Send a Message to a MeshX Message Queue Back
52 *
53 * This function sends a message to a MeshX Message Queue.
54 *
55 * @param[in] msg_q_handle Message Queue Handle
56 * @param[in] msg Message
57 * @param[in] msg_len Message Length
58 * @param[in] delay_ms Delay in milliseconds
59 *
60 * @return None
61 */
62meshx_err_t meshx_msg_q_send(meshx_msg_q_t *msg_q_handle, void const *msg, size_t msg_len, uint32_t delay_ms);
63
64/**
65 * @brief Send a Message to the front of a MeshX Message Queue
66 *
67 * This function sends a message to the front of a MeshX Message Queue.
68 *
69 * @param[in] msg_q_handle Message Queue Handle
70 * @param[in] msg Message
71 * @param[in] msg_len Message Length
72 * @param[in] delay_ms Delay in milliseconds
73 *
74 * @return None
75 */
76meshx_err_t meshx_msg_q_send_front(meshx_msg_q_t *msg_q_handle, void const *msg, size_t msg_len, uint32_t delay_ms);
77
78/**
79 * @brief Receive a Message from a MeshX Message Queue
80 *
81 * This function receives a message from a MeshX Message Queue.
82 *
83 * @param[in] msg_q_handle Message Queue Handle
84 * @param[in] msg Message
85 * @param[in] delay_ms Delay in milliseconds
86 *
87 * @return Message Queue Handle
88 */
89meshx_err_t meshx_msg_q_recv(meshx_msg_q_t *msg_q_handle, void *msg, uint32_t delay_ms);
90
91/**
92 * @brief Peek a Message from a MeshX Message Queue
93 *
94 * This function peeks a message from a MeshX Message Queue.
95 *
96 * @param[in] msg_q_handle Message Queue Handle
97 * @param[in] msg Message
98 * @param[in] delay_ms Delay in milliseconds
99 *
100 * @return Message Queue Handle
101 */
102meshx_err_t meshx_msg_q_peek(meshx_msg_q_t *msg_q_handle, void *msg, uint32_t delay_ms);
103
104/**
105 * @brief Get the number of messages in a MeshX Message Queue
106 *
107 * This function gets the number of messages in a MeshX Message Queue.
108 *
109 * @param[in] msg_q_handle Message Queue Handle
110 *
111 * @return Number of messages
112 */
114
115#endif /* __MESHX_MSG_Q_H */
MeshX Error Codes.
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:43
meshx_err_t meshx_msg_q_peek(meshx_msg_q_t *msg_q_handle, void *msg, uint32_t delay_ms)
Peek a Message from a MeshX Message Queue.
int meshx_msg_q_get_count(meshx_msg_q_t *msg_q_handle)
Get the number of messages in a MeshX Message Queue.
meshx_err_t meshx_msg_q_create(meshx_msg_q_t *msg_q_handle)
Create a MeshX Message Queue.
meshx_err_t meshx_msg_q_send_front(meshx_msg_q_t *msg_q_handle, void const *msg, size_t msg_len, uint32_t delay_ms)
Send a Message to the front of a MeshX Message Queue.
struct meshx_msg_q meshx_msg_q_t
MeshX Message Queue Structure.
meshx_err_t meshx_msg_q_send(meshx_msg_q_t *msg_q_handle, void const *msg, size_t msg_len, uint32_t delay_ms)
Send a Message to a MeshX Message Queue Back.
meshx_err_t meshx_msg_q_delete(meshx_msg_q_t *msg_q_handle)
Delete a MeshX Message Queue.
meshx_err_t meshx_msg_q_recv(meshx_msg_q_t *msg_q_handle, void *msg, uint32_t delay_ms)
Receive a Message from a MeshX Message Queue.
MeshX Message Queue Structure.
Definition meshx_msg_q.h:22
int max_msg_length
Definition meshx_msg_q.h:25
int max_msg_depth
Definition meshx_msg_q.h:24
void * __msg_q_handle
Definition meshx_msg_q.h:27