diff --git a/src/mesh/mesh_access.c b/src/mesh/mesh_access.c index 489b5950c..30bd012b9 100644 --- a/src/mesh/mesh_access.c +++ b/src/mesh/mesh_access.c @@ -118,9 +118,10 @@ uint32_t mesh_access_acknowledged_message_timeout_ms(void){ } #define MESH_ACCESS_OPCODE_INVALID 0xFFFFFFFFu +#define MESH_ACCESS_OPCODE_NOT_SET 0xFFFFFFFEu void mesh_access_send_unacknowledged_pdu(mesh_pdu_t * pdu){ - pdu->ack_opcode = MESH_ACCESS_OPCODE_INVALID;; + pdu->ack_opcode = MESH_ACCESS_OPCODE_INVALID; mesh_upper_transport_send_access_pdu(pdu); } @@ -618,6 +619,7 @@ mesh_transport_pdu_t * mesh_access_transport_init(uint32_t opcode){ if (!pdu) return NULL; pdu->len = mesh_access_setup_opcode(pdu->data, opcode); + pdu->pdu_header.ack_opcode = MESH_ACCESS_OPCODE_NOT_SET; return pdu; } @@ -652,6 +654,7 @@ mesh_network_pdu_t * mesh_access_network_init(uint32_t opcode){ if (!pdu) return NULL; pdu->len = mesh_access_setup_opcode(&pdu->data[10], opcode) + 10; + pdu->pdu_header.ack_opcode = MESH_ACCESS_OPCODE_NOT_SET; return pdu; } diff --git a/src/mesh/mesh_upper_transport.c b/src/mesh/mesh_upper_transport.c index 8d4bdde12..dea940f90 100644 --- a/src/mesh/mesh_upper_transport.c +++ b/src/mesh/mesh_upper_transport.c @@ -1064,7 +1064,12 @@ void mesh_upper_transport_init(){ mesh_lower_transport_set_higher_layer_handler(&mesh_upper_transport_pdu_handler); } +// TODO: higher layer define used for assert +#define MESH_ACCESS_OPCODE_NOT_SET 0xFFFFFFFEu + void mesh_upper_transport_send_access_pdu(mesh_pdu_t *pdu){ + btstack_assert(pdu->ack_opcode != MESH_ACCESS_OPCODE_NOT_SET); + if (pdu->pdu_type == MESH_PDU_TYPE_NETWORK){ btstack_assert( ((mesh_network_pdu_t *) pdu)->len >= 9); }