@@ -352,6 +352,30 @@ bool test_fhss_ws_tx_handle_callback()
352
352
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 )) {
353
353
return false;
354
354
}
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
+ }
355
379
356
380
return true;
357
381
}
@@ -433,6 +457,46 @@ bool test_fhss_ws_check_tx_conditions_callback()
433
457
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) {
434
458
return false;
435
459
}
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
+
436
500
return true;
437
501
}
438
502
@@ -821,6 +885,29 @@ bool test_fhss_ws_get_retry_period_callback()
821
885
if (fhss_common_stub .fhss_struct .fhss_api -> get_retry_period (api , NULL , 0 ) != 385000 ) {
822
886
return false;
823
887
}
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
+ }
824
911
return true;
825
912
}
826
913
0 commit comments