@@ -352,6 +352,30 @@ bool test_fhss_ws_tx_handle_callback()
352352 if ((fhss_common_stub .fhss_struct .fhss_api -> tx_handle (api , DEFAULT_IS_BC_DEST , dest_address , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH , DEFAULT_TX_TIME ) != 0 ) || (fhss_callbacks_stub .uint8_value != VENDOR_CHANNEL )) {
353353 return false;
354354 }
355+ // Test TX allowed on RX slot for 1st hop in expedited forwarding mode
356+ fhss_common_stub .fhss_struct .ws -> is_on_bc_channel = false;
357+ fhss_common_stub .fhss_struct .own_hop = 1 ;
358+ fhss_common_stub .fhss_struct .ws -> expedited_forwarding_enabled_us = 1000000 ;
359+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_broadcast_interval = 1020 ;
360+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_bc_dwell_interval = 255 ;
361+ fhss_common_stub .fhss_struct .ws -> txrx_slot_length_ms = 54 ;
362+ fhss_platform_stub .remaining_slots_value = 750000 ;
363+ if (fhss_common_stub .fhss_struct .fhss_api -> tx_handle (api , DEFAULT_IS_BC_DEST , dest_address , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH , DEFAULT_TX_TIME ) != 0 ) {
364+ printf ("Fail: TX handle, 1st hop, EF enabled on RX slot\r\n" );
365+ return false;
366+ }
367+ // Test TX not allowed on RX slot for 1st hop when expedited forwarding mode disabled
368+ fhss_common_stub .fhss_struct .ws -> expedited_forwarding_enabled_us = 0 ;
369+ if (fhss_common_stub .fhss_struct .fhss_api -> tx_handle (api , DEFAULT_IS_BC_DEST , dest_address , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH , DEFAULT_TX_TIME ) != -1 ) {
370+ printf ("Fail: TX handle, 1st hop, EF disabled on RX slot\r\n" );
371+ return false;
372+ }
373+ // Test TX allowed on TX slot for 1st hop when expedited forwarding mode disabled
374+ fhss_platform_stub .remaining_slots_value = 700000 ;
375+ if (fhss_common_stub .fhss_struct .fhss_api -> tx_handle (api , DEFAULT_IS_BC_DEST , dest_address , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH , DEFAULT_TX_TIME ) != 0 ) {
376+ printf ("Fail: TX handle, 1st hop, EF disabled on TX slot\r\n" );
377+ return false;
378+ }
355379
356380 return true;
357381}
@@ -433,6 +457,46 @@ bool test_fhss_ws_check_tx_conditions_callback()
433457 if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
434458 return false;
435459 }
460+ // Test TX allowed on RX slot for 1st hop in expedited forwarding mode
461+ fhss_common_stub .fhss_struct .own_hop = 1 ;
462+ fhss_common_stub .fhss_struct .ws -> expedited_forwarding_enabled_us = 1000000 ;
463+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_broadcast_interval = 1020 ;
464+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_bc_dwell_interval = 255 ;
465+ fhss_common_stub .fhss_struct .ws -> txrx_slot_length_ms = 54 ;
466+ fhss_platform_stub .remaining_slots_value = 750000 ;
467+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != true) {
468+ printf ("Fail: TX conditions, 1st hop, EF enabled on RX slot\r\n" );
469+ return false;
470+ }
471+ // Test TX not allowed on RX slot for 1st hop when expedited forwarding mode disabled
472+ fhss_common_stub .fhss_struct .ws -> expedited_forwarding_enabled_us = 0 ;
473+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
474+ printf ("Fail: TX conditions, 1st hop, EF disabled on RX slot\r\n" );
475+ return false;
476+ }
477+ // Test TX not allowed on RX slot for 2nd hop in expedited forwarding mode
478+ fhss_common_stub .fhss_struct .own_hop = 2 ;
479+ fhss_common_stub .fhss_struct .ws -> expedited_forwarding_enabled_us = 1000000 ;
480+ fhss_platform_stub .remaining_slots_value = 700000 ;
481+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
482+ printf ("Fail: TX conditions, 2nd hop, EF enabled on RX slot\r\n" );
483+ return false;
484+ }
485+ // Test TX allowed on TX slot for 2nd hop in expedited forwarding mode
486+ fhss_common_stub .fhss_struct .own_hop = 2 ;
487+ fhss_platform_stub .remaining_slots_value = 650000 ;
488+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != true) {
489+ printf ("Fail: TX conditions, 2nd hop, EF enabled on TX slot\r\n" );
490+ return false;
491+ }
492+ // Test TX not allowed on RX slot for 3rd hop in expedited forwarding mode
493+ fhss_common_stub .fhss_struct .own_hop = 3 ;
494+ fhss_platform_stub .remaining_slots_value = 750000 ;
495+ if (fhss_common_stub .fhss_struct .fhss_api -> check_tx_conditions (api , DEFAULT_IS_BC_DEST , DEFAULT_HANDLE , DEFAULT_FRAME_TYPE , DEFAULT_FRAME_LENGTH , DEFAULT_PHY_HEAD_LENGTH , DEFAULT_PHY_TAIL_LENGTH ) != false) {
496+ printf ("Fail: TX conditions, 3rd hop, EF enabled on RX slot\r\n" );
497+ return false;
498+ }
499+
436500 return true;
437501}
438502
@@ -821,6 +885,29 @@ bool test_fhss_ws_get_retry_period_callback()
821885 if (fhss_common_stub .fhss_struct .fhss_api -> get_retry_period (api , NULL , 0 ) != 385000 ) {
822886 return false;
823887 }
888+ // Test retrying allowed on RX slot for 1st hop in expedited forwarding mode
889+ fhss_common_stub .fhss_struct .own_hop = 1 ;
890+ fhss_common_stub .fhss_struct .ws -> expedited_forwarding_enabled_us = 1000000 ;
891+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_broadcast_interval = 1020 ;
892+ fhss_common_stub .fhss_struct .ws -> fhss_configuration .fhss_bc_dwell_interval = 255 ;
893+ fhss_common_stub .fhss_struct .ws -> txrx_slot_length_ms = 54 ;
894+ fhss_common_stub .fhss_struct .ws -> unicast_start_time_us = 0 ;
895+ fhss_callbacks_stub .uint32_value = 65000 ;
896+ fhss_platform_stub .remaining_slots_value = 750000 ;
897+ fhss_common_stub .fhss_struct .ws -> is_on_bc_channel = false;
898+ retry_period = fhss_common_stub .fhss_struct .fhss_api -> get_retry_period (api , NULL , 0 );
899+ if (retry_period != 0 ) {
900+ printf ("Fail: Retry period: %u us for 1st hop, EF enabled on RX slot\r\n" , retry_period );
901+ return false;
902+ }
903+ // Test retrying not allowed on RX slot for 2nd hop in expedited forwarding mode
904+ fhss_common_stub .fhss_struct .own_hop = 2 ;
905+ fhss_platform_stub .remaining_slots_value = 700000 ;
906+ retry_period = fhss_common_stub .fhss_struct .fhss_api -> get_retry_period (api , NULL , 0 );
907+ if (retry_period != 70000 ) {
908+ printf ("Fail: Retry period: %u us for 2nd hop, EF enabled on RX slot\r\n" , retry_period );
909+ return false;
910+ }
824911 return true;
825912}
826913
0 commit comments