@@ -1395,6 +1395,15 @@ static void mcps_generic_sequence_number_allocate(protocol_interface_rf_mac_setu
1395
1395
}
1396
1396
1397
1397
1398
+ static uint32_t mcps_generic_backoff_calc (protocol_interface_rf_mac_setup_s * rf_ptr )
1399
+ {
1400
+ uint32_t random_period = mac_csma_backoff_get (rf_ptr );
1401
+ if (rf_ptr -> fhss_api ) {
1402
+ return mcps_calculate_tx_time (rf_ptr , random_period );
1403
+ }
1404
+ return random_period ;
1405
+ }
1406
+
1398
1407
static int8_t mcps_generic_packet_build (protocol_interface_rf_mac_setup_s * rf_ptr , mac_pre_build_frame_t * buffer )
1399
1408
{
1400
1409
phy_device_driver_s * dev_driver = rf_ptr -> dev_driver -> phy_driver ;
@@ -1411,6 +1420,7 @@ static int8_t mcps_generic_packet_build(protocol_interface_rf_mac_setup_s *rf_pt
1411
1420
tx_buf -> len = buffer -> mac_payload_length ;
1412
1421
1413
1422
memcpy (ptr , buffer -> mac_payload , buffer -> mac_payload_length );
1423
+ buffer -> tx_time = mcps_generic_backoff_calc (rf_ptr );
1414
1424
return 0 ;
1415
1425
}
1416
1426
@@ -1466,13 +1476,7 @@ static int8_t mcps_generic_packet_build(protocol_interface_rf_mac_setup_s *rf_pt
1466
1476
1467
1477
tx_buf -> len = frame_length ;
1468
1478
uint8_t * mhr_start = ptr ;
1469
-
1470
- uint32_t random_period = mac_csma_backoff_get (rf_ptr );
1471
- if (rf_ptr -> fhss_api ) {
1472
- buffer -> tx_time = mcps_calculate_tx_time (rf_ptr , random_period );
1473
- } else {
1474
- buffer -> tx_time = random_period ;
1475
- }
1479
+ buffer -> tx_time = mcps_generic_backoff_calc (rf_ptr );
1476
1480
1477
1481
ptr = mac_generic_packet_write (rf_ptr , ptr , buffer );
1478
1482
@@ -1506,6 +1510,7 @@ static int8_t mcps_generic_packet_rebuild(protocol_interface_rf_mac_setup_s *rf_
1506
1510
tx_buf -> len = buffer -> mac_payload_length ;
1507
1511
1508
1512
memcpy (ptr , buffer -> mac_payload , buffer -> mac_payload_length );
1513
+ buffer -> tx_time = mcps_generic_backoff_calc (rf_ptr );
1509
1514
return 0 ;
1510
1515
}
1511
1516
@@ -1533,12 +1538,8 @@ static int8_t mcps_generic_packet_rebuild(protocol_interface_rf_mac_setup_s *rf_
1533
1538
tx_buf -> len = frame_length ;
1534
1539
uint8_t * mhr_start = ptr ;
1535
1540
1536
- uint32_t random_period = mac_csma_backoff_get (rf_ptr );
1537
- if (rf_ptr -> fhss_api ) {
1538
- buffer -> tx_time = mcps_calculate_tx_time (rf_ptr , random_period );
1539
- } else {
1540
- buffer -> tx_time = random_period ;
1541
- }
1541
+ buffer -> tx_time = mcps_generic_backoff_calc (rf_ptr );
1542
+
1542
1543
ptr = mac_generic_packet_write (rf_ptr , ptr , buffer );
1543
1544
1544
1545
if (buffer -> fcf_dsn .securityEnabled ) {
0 commit comments