mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-29 22:20:37 +00:00
mesh: remove segmented field from mesh_message_pdu_t
This commit is contained in:
parent
d38a76647a
commit
04050cc707
@ -847,38 +847,28 @@ static void mesh_lower_transport_network_pdu_sent(mesh_network_pdu_t *network_pd
|
||||
if (lower_transport_outgoing_segment == network_pdu){
|
||||
btstack_assert(lower_transport_outgoing_message != NULL);
|
||||
|
||||
if (lower_transport_outgoing_message->segmented == false){
|
||||
// of unsegmented message
|
||||
mesh_message_pdu_t * message_pdu = lower_transport_outgoing_message;
|
||||
lower_transport_outgoing_message = NULL;
|
||||
lower_transport_outgoing_segment = NULL;
|
||||
higher_layer_handler(MESH_TRANSPORT_PDU_SENT, MESH_TRANSPORT_STATUS_SUCCESS, (mesh_pdu_t *) message_pdu);
|
||||
return;
|
||||
|
||||
} else {
|
||||
// of segmented message
|
||||
// of segmented message
|
||||
#ifdef LOG_LOWER_TRANSPORT
|
||||
printf("[+] Lower transport, segmented pdu %p, seq %06x: network pdu %p sent\n", lower_transport_outgoing_message, mesh_message_seq(lower_transport_outgoing_message), network_pdu);
|
||||
printf("[+] Lower transport, segmented pdu %p, seq %06x: network pdu %p sent\n", lower_transport_outgoing_message, mesh_message_seq(lower_transport_outgoing_message), network_pdu);
|
||||
#endif
|
||||
|
||||
lower_transport_outgoing_segment_queued = 0;
|
||||
if (lower_transport_outgoing_trasnmission_complete){
|
||||
// handle complete
|
||||
lower_transport_outgoing_trasnmission_complete = 0;
|
||||
lower_transport_outgoing_transmission_timeout = 0;
|
||||
mesh_lower_transport_outgoing_complete();
|
||||
return;
|
||||
}
|
||||
if (lower_transport_outgoing_transmission_timeout){
|
||||
// handle timeout
|
||||
lower_transport_outgoing_transmission_timeout = 0;
|
||||
mesh_lower_transport_segment_transmission_fired();
|
||||
return;
|
||||
}
|
||||
|
||||
// send next segment
|
||||
mesh_lower_transport_send_next_segment();
|
||||
lower_transport_outgoing_segment_queued = 0;
|
||||
if (lower_transport_outgoing_trasnmission_complete){
|
||||
// handle complete
|
||||
lower_transport_outgoing_trasnmission_complete = 0;
|
||||
lower_transport_outgoing_transmission_timeout = 0;
|
||||
mesh_lower_transport_outgoing_complete();
|
||||
return;
|
||||
}
|
||||
if (lower_transport_outgoing_transmission_timeout){
|
||||
// handle timeout
|
||||
lower_transport_outgoing_transmission_timeout = 0;
|
||||
mesh_lower_transport_segment_transmission_fired();
|
||||
return;
|
||||
}
|
||||
|
||||
// send next segment
|
||||
mesh_lower_transport_send_next_segment();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -963,24 +953,16 @@ static void mesh_lower_transport_run(void){
|
||||
break;
|
||||
case MESH_PDU_TYPE_MESSAGE:
|
||||
message_pdu = (mesh_message_pdu_t *) pdu;
|
||||
if (message_pdu->segmented){
|
||||
//
|
||||
printf("[+] Lower transport, segmented pdu %p, seq %06x: run start sending now\n", message_pdu, mesh_message_seq(message_pdu));
|
||||
// start sending segmented pdu
|
||||
lower_transport_retry_count = 3;
|
||||
lower_transport_outgoing_message = message_pdu;
|
||||
lower_transport_outgoing_transmission_timeout = 0;
|
||||
lower_transport_outgoing_trasnmission_complete = 0;
|
||||
mesh_lower_transport_setup_block_ack(message_pdu);
|
||||
mesh_lower_transport_setup_sending_segmented_pdus();
|
||||
mesh_lower_transport_send_next_segment();
|
||||
} else {
|
||||
btstack_assert(false);
|
||||
network_pdu = (mesh_network_pdu_t *) btstack_linked_list_get_first_item(&message_pdu->segments);
|
||||
lower_transport_outgoing_message = message_pdu;
|
||||
lower_transport_outgoing_segment = network_pdu;
|
||||
mesh_network_send_pdu(network_pdu);
|
||||
}
|
||||
//
|
||||
printf("[+] Lower transport, segmented pdu %p, seq %06x: run start sending now\n", message_pdu, mesh_message_seq(message_pdu));
|
||||
// start sending segmented pdu
|
||||
lower_transport_retry_count = 3;
|
||||
lower_transport_outgoing_message = message_pdu;
|
||||
lower_transport_outgoing_transmission_timeout = 0;
|
||||
lower_transport_outgoing_trasnmission_complete = 0;
|
||||
mesh_lower_transport_setup_block_ack(message_pdu);
|
||||
mesh_lower_transport_setup_sending_segmented_pdus();
|
||||
mesh_lower_transport_send_next_segment();
|
||||
break;
|
||||
default:
|
||||
btstack_assert(false);
|
||||
|
@ -139,8 +139,6 @@ typedef struct {
|
||||
uint32_t retransmit_timeout_ms;
|
||||
uint32_t ack_opcode;
|
||||
|
||||
bool segmented;
|
||||
|
||||
// rx/tx: acknowledgement timer / segment transmission timer
|
||||
btstack_timer_source_t acknowledgement_timer;
|
||||
// rx: incomplete timer / tx: resend timer
|
||||
|
@ -630,7 +630,7 @@ static void mesh_upper_transport_pdu_handler(mesh_transport_callback_type_t call
|
||||
if (higher_layer_handler){
|
||||
higher_layer_handler(callback_type, status, (mesh_pdu_t*) network_pdu);
|
||||
} else {
|
||||
mesh_transport_pdu_free(transport_pdu);
|
||||
mesh_network_pdu_free(network_pdu);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -666,7 +666,6 @@ static void mesh_upper_transport_send_segmented_pdu(mesh_transport_pdu_t * trans
|
||||
outgoing_segmented_pdu = transport_pdu;
|
||||
mesh_message_pdu_t * message_pdu = &outgoing_segmented_message_singleton;
|
||||
message_pdu->pdu_header.pdu_type = MESH_PDU_TYPE_MESSAGE;
|
||||
message_pdu->segmented = true;
|
||||
|
||||
// convert mesh_transport_pdu_t into mesh_message_pdu_t
|
||||
uint16_t message_offset = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user