From a72af76f318cfec588788949eb774157064444bd Mon Sep 17 00:00:00 2001 From: Andrey Perminov Date: Thu, 30 Apr 2020 17:14:52 -0700 Subject: [PATCH] Corrected size of the last chunk for data packet longer than MTU Change-Id: I944ade837df571934dc5143209fd745f0a39bec8 --- BMLite_example/src/hcp_tiny.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/BMLite_example/src/hcp_tiny.c b/BMLite_example/src/hcp_tiny.c index 8c6fc24..99a4b4d 100644 --- a/BMLite_example/src/hcp_tiny.c +++ b/BMLite_example/src/hcp_tiny.c @@ -168,7 +168,7 @@ static fpc_bep_result_t _tx_application(HCP_comm_t *hcp_comm) uint16_t data_left = hcp_comm->pkt_size; uint8_t *p = hcp_comm->pkt_buffer; - _HPC_pkt_t *pkt = (_HPC_pkt_t *)hcp_comm->txrx_buffer; + _HPC_pkt_t *phy_frm = (_HPC_pkt_t *)hcp_comm->txrx_buffer; // Application MTU size is PHY MTU - (Transport and Link overhead) uint16_t app_mtu = MTU - 6 - 8; @@ -176,20 +176,21 @@ static fpc_bep_result_t _tx_application(HCP_comm_t *hcp_comm) // Calculate sequence length uint16_t seq_len = (data_left / app_mtu) + 1; - pkt->lnk_chn = 0; - pkt->t_seq_len = seq_len; + phy_frm->lnk_chn = 0; + phy_frm->t_seq_len = seq_len; for (seq_nr = 1; seq_nr <= seq_len && !status; seq_nr++) { - pkt->t_seq_nr = seq_nr; + phy_frm->t_seq_nr = seq_nr; if (data_left < app_mtu) { - pkt->t_size = data_left; + phy_frm->t_size = data_left; memcpy(hcp_comm->txrx_buffer + 10, p, data_left); - pkt->lnk_size = data_left + 6; + phy_frm->lnk_size = data_left + 6; } else { - pkt->t_size = app_mtu; + phy_frm->t_size = app_mtu; memcpy(hcp_comm->txrx_buffer + 10, p, app_mtu); - pkt->lnk_size = app_mtu + 6; + phy_frm->lnk_size = app_mtu + 6; p += app_mtu; + data_left -= app_mtu; } status = _tx_link(hcp_comm);