mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-05 09:40:00 +00:00
mesh: use MESH_PDU_TYPE_SEGMENT_ACKNOWLEDGMENT for outgoing seg ack messages
This commit is contained in:
parent
6e7785c71c
commit
c0005391c5
@ -177,6 +177,7 @@ static void mesh_lower_transport_incoming_send_ack(uint16_t netkey_index, uint8_
|
|||||||
if (!network_pdu) return;
|
if (!network_pdu) return;
|
||||||
|
|
||||||
// setup network_pdu
|
// setup network_pdu
|
||||||
|
network_pdu->pdu_header.pdu_type = MESH_PDU_TYPE_SEGMENT_ACKNOWLEDGMENT;
|
||||||
mesh_network_setup_pdu(network_pdu, netkey_index, network_key->nid, 1, ttl, mesh_sequence_number_next(), mesh_node_get_primary_element_address(), dest, ack_msg, sizeof(ack_msg));
|
mesh_network_setup_pdu(network_pdu, netkey_index, network_key->nid, 1, ttl, mesh_sequence_number_next(), mesh_node_get_primary_element_address(), dest, ack_msg, sizeof(ack_msg));
|
||||||
|
|
||||||
// send network_pdu
|
// send network_pdu
|
||||||
@ -769,6 +770,12 @@ static void mesh_lower_transport_outgoing_segment_transmission_timeout(btstack_t
|
|||||||
static void mesh_lower_transport_network_pdu_sent(mesh_network_pdu_t *network_pdu){
|
static void mesh_lower_transport_network_pdu_sent(mesh_network_pdu_t *network_pdu){
|
||||||
// figure out what pdu was sent
|
// figure out what pdu was sent
|
||||||
|
|
||||||
|
// Segment Acknowledgment message sent by us?
|
||||||
|
if (network_pdu->pdu_header.pdu_type == MESH_PDU_TYPE_SEGMENT_ACKNOWLEDGMENT){
|
||||||
|
btstack_memory_mesh_network_pdu_free(network_pdu);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// single segment?
|
// single segment?
|
||||||
if (lower_transport_outgoing_segment == network_pdu){
|
if (lower_transport_outgoing_segment == network_pdu){
|
||||||
btstack_assert(lower_transport_outgoing_message != NULL);
|
btstack_assert(lower_transport_outgoing_message != NULL);
|
||||||
@ -799,12 +806,6 @@ static void mesh_lower_transport_network_pdu_sent(mesh_network_pdu_t *network_pd
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Segment Acknowledgment message sent by us?
|
|
||||||
if (mesh_network_control(network_pdu) && network_pdu->data[0] == 0){
|
|
||||||
btstack_memory_mesh_network_pdu_free(network_pdu);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// other
|
// other
|
||||||
higher_layer_handler(MESH_TRANSPORT_PDU_SENT, MESH_TRANSPORT_STATUS_SUCCESS, (mesh_pdu_t *) network_pdu);
|
higher_layer_handler(MESH_TRANSPORT_PDU_SENT, MESH_TRANSPORT_STATUS_SUCCESS, (mesh_pdu_t *) network_pdu);
|
||||||
}
|
}
|
||||||
|
@ -70,6 +70,7 @@ typedef enum {
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
MESH_PDU_TYPE_INVALID,
|
MESH_PDU_TYPE_INVALID,
|
||||||
MESH_PDU_TYPE_NETWORK,
|
MESH_PDU_TYPE_NETWORK,
|
||||||
|
MESH_PDU_TYPE_SEGMENT_ACKNOWLEDGMENT,
|
||||||
MESH_PDU_TYPE_SEGMENTED,
|
MESH_PDU_TYPE_SEGMENTED,
|
||||||
MESH_PDU_TYPE_UNSEGMENTED,
|
MESH_PDU_TYPE_UNSEGMENTED,
|
||||||
MESH_PDU_TYPE_ACCESS,
|
MESH_PDU_TYPE_ACCESS,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user