123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- extern "C" {
- (BT_MESH_MODEL_OP_LEN(_op) + (_payload_len) + BT_MESH_MIC_SHORT)
- (BT_MESH_MODEL_OP_LEN(_op) + (_payload_len) + BT_MESH_MIC_LONG)
- NET_BUF_SIMPLE_DEFINE(_buf, BT_MESH_MODEL_BUF_LEN(_op, (_payload_len)))
- struct bt_mesh_msg_ctx {
-
- uint16_t net_idx;
-
- uint16_t app_idx;
-
- uint16_t addr;
-
- uint16_t recv_dst;
-
- int8_t recv_rssi;
-
- uint8_t recv_ttl;
-
- bool send_rel;
-
- uint8_t send_ttl;
- };
- void bt_mesh_model_msg_init(struct net_buf_simple *msg, uint32_t opcode);
- struct bt_mesh_msg_ack_ctx {
- struct k_sem sem;
- uint32_t op;
- uint16_t dst;
- void *user_data;
- };
- static inline void bt_mesh_msg_ack_ctx_init(struct bt_mesh_msg_ack_ctx *ack)
- {
- k_sem_init(&ack->sem, 0, 1);
- }
- static inline void bt_mesh_msg_ack_ctx_reset(struct bt_mesh_msg_ack_ctx *ack)
- {
- k_sem_reset(&ack->sem);
- }
- void bt_mesh_msg_ack_ctx_clear(struct bt_mesh_msg_ack_ctx *ack);
- int bt_mesh_msg_ack_ctx_prepare(struct bt_mesh_msg_ack_ctx *ack,
- uint32_t op, uint16_t dst, void *user_data);
- static inline bool bt_mesh_msg_ack_ctx_busy(struct bt_mesh_msg_ack_ctx *ack)
- {
- return (ack->op != 0);
- }
- int bt_mesh_msg_ack_ctx_wait(struct bt_mesh_msg_ack_ctx *ack, k_timeout_t timeout);
- static inline void bt_mesh_msg_ack_ctx_rx(struct bt_mesh_msg_ack_ctx *ack)
- {
- k_sem_give(&ack->sem);
- }
- bool bt_mesh_msg_ack_ctx_match(const struct bt_mesh_msg_ack_ctx *ack,
- uint32_t op, uint16_t addr, void **user_data);
- }
|