wiliot-certificate 1.5.0a1__py3-none-any.whl → 1.5.2a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. brg_certificate/ag/energous_v0_defines.py +17 -17
  2. brg_certificate/ag/energous_v1_defines.py +17 -17
  3. brg_certificate/ag/energous_v2_defines.py +17 -17
  4. brg_certificate/ag/energous_v3_defines.py +17 -17
  5. brg_certificate/ag/energous_v4_defines.py +17 -17
  6. brg_certificate/ag/fanstel_lan_v0_defines.py +17 -17
  7. brg_certificate/ag/fanstel_lte_v0_defines.py +17 -17
  8. brg_certificate/ag/fanstel_wifi_v0_defines.py +17 -17
  9. brg_certificate/ag/minew_lte_v0_defines.py +17 -17
  10. brg_certificate/ag/wlt_cmd_if.html +3 -2
  11. brg_certificate/ag/wlt_types.html +0 -1
  12. brg_certificate/ag/wlt_types_ag.py +151 -152
  13. brg_certificate/brg_certificate.py +38 -7
  14. brg_certificate/brg_certificate_cli.py +19 -3
  15. brg_certificate/cert_common.py +92 -55
  16. brg_certificate/cert_config.py +6 -4
  17. brg_certificate/cert_data_sim.py +47 -7
  18. brg_certificate/cert_defines.py +20 -6
  19. brg_certificate/cert_gw_sim.py +10 -6
  20. brg_certificate/cert_mqtt.py +9 -6
  21. brg_certificate/cert_prints.py +14 -1
  22. brg_certificate/cert_protobuf.py +7 -7
  23. brg_certificate/cert_results.py +131 -84
  24. brg_certificate/cert_utils.py +13 -7
  25. brg_certificate/certificate_bcc_sanity_test_list.txt +40 -0
  26. brg_certificate/certificate_bcc_test_list.txt +50 -0
  27. brg_certificate/certificate_sanity_test_list.txt +12 -5
  28. brg_certificate/certificate_test_list.txt +16 -6
  29. brg_certificate/tests/calibration/interval_test/interval_test.json +4 -3
  30. brg_certificate/tests/calibration/output_power_test/output_power_test.json +8 -5
  31. brg_certificate/tests/calibration/pattern_test/pattern_test.json +7 -4
  32. brg_certificate/tests/calibration/pattern_test/pattern_test.py +25 -26
  33. brg_certificate/tests/datapath/aging_test/aging_test.json +19 -0
  34. brg_certificate/tests/datapath/aging_test/aging_test.py +142 -0
  35. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +10 -5
  36. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +12 -11
  37. brg_certificate/tests/datapath/output_power_test/output_power_test.json +7 -4
  38. brg_certificate/tests/datapath/output_power_test/output_power_test.py +2 -1
  39. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +8 -5
  40. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +6 -3
  41. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +7 -4
  42. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +6 -3
  43. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +7 -4
  44. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +4 -2
  45. brg_certificate/tests/datapath/pattern_test/pattern_test.json +8 -5
  46. brg_certificate/tests/datapath/pattern_test/pattern_test.py +2 -1
  47. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +11 -5
  48. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +12 -5
  49. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +10 -4
  50. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +11 -6
  51. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +10 -4
  52. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -7
  53. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +8 -4
  54. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +7 -5
  55. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +7 -4
  56. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +7 -3
  57. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +4 -5
  58. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +107 -73
  59. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +4 -5
  60. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +128 -118
  61. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +15 -23
  62. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +104 -103
  63. brg_certificate/tests/datapath/stress_test/stress_test.json +15 -23
  64. brg_certificate/tests/datapath/stress_test/stress_test.py +104 -110
  65. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +8 -4
  66. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +7 -2
  67. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +8 -4
  68. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +8 -6
  69. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +4 -3
  70. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +2 -38
  71. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +15 -8
  72. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +14 -8
  73. brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +11 -7
  74. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +25 -12
  75. brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +11 -7
  76. brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +48 -3
  77. brg_certificate/tests/edge_mgmt/{stat_test/stat_test.json → periodic_msgs_test/periodic_msgs_test.json} +5 -4
  78. brg_certificate/tests/edge_mgmt/{stat_test/stat_test.py → periodic_msgs_test/periodic_msgs_test.py} +4 -4
  79. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +8 -5
  80. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +2 -1
  81. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +9 -6
  82. brg_certificate/tests/energy2400/output_power_test/output_power_test.py +2 -1
  83. brg_certificate/tests/energy2400/pattern_test/pattern_test.json +8 -5
  84. brg_certificate/tests/energy2400/pattern_test/pattern_test.py +2 -1
  85. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +20 -0
  86. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +343 -0
  87. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +20 -0
  88. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +343 -0
  89. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +14 -7
  90. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +45 -57
  91. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +14 -7
  92. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +198 -125
  93. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +7 -4
  94. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +2 -1
  95. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +13 -6
  96. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +2 -1
  97. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +14 -7
  98. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +117 -124
  99. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +7 -4
  100. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +2 -1
  101. brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +18 -0
  102. brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +84 -0
  103. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +21 -0
  104. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +306 -0
  105. brg_certificate/wltPb_pb2.py +15 -15
  106. brg_certificate/wltPb_pb2.pyi +8 -2
  107. brg_certificate/wlt_types.py +2 -1
  108. gw_certificate/cert_results.py +11 -4
  109. gw_certificate/gw_certificate.py +0 -2
  110. gw_certificate/gw_certificate_cli.py +3 -3
  111. gw_certificate/interface/uart_if.py +1 -1
  112. gw_certificate/tests/actions.py +7 -1
  113. gw_certificate/tests/registration.py +2 -1
  114. gw_certificate/tests/uplink.py +26 -35
  115. {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/METADATA +46 -42
  116. {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/RECORD +120 -112
  117. {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/WHEEL +1 -1
  118. brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.json +0 -13
  119. brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.py +0 -76
  120. brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +0 -13
  121. brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +0 -398
  122. {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/entry_points.txt +0 -0
  123. {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info/licenses}/LICENSE +0 -0
  124. {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/top_level.txt +0 -0
@@ -4,6 +4,7 @@ from brg_certificate.wlt_types import *
4
4
  import brg_certificate.cert_common as cert_common
5
5
  import brg_certificate.cert_config as cert_config
6
6
 
7
+
7
8
  def run(test):
8
9
 
9
10
  fields = [BRG_PACER_INTERVAL, BRG_PKT_FILTER, BRG_RX_CHANNEL]
@@ -14,7 +15,8 @@ def run(test):
14
15
  return cert_common.test_epilog(test)
15
16
 
16
17
  for param in test.params:
17
- test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.PKT_FILTER_TEMP_PKT, ag.RX_CHANNEL_37], module=datapath_module)[0]
18
+ test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.PKT_FILTER_TEMP_PKT, ag.RX_CHANNEL_37],
19
+ module=datapath_module)[0]
18
20
  test.set_phase_rc(param.name, test.rc)
19
21
  test.add_phase_reason(param.name, test.reason)
20
22
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
@@ -28,7 +30,7 @@ def run(test):
28
30
  num_of_pixels = 10
29
31
  pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=3, delay=100, pkt_types=[0])
30
32
  pixel_sim_thread.start()
31
- df = cert_common.data_scan(test, scan_time=param.value*4, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
33
+ df = cert_common.data_scan(test, scan_time=param.value * 4, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
32
34
  if test.data == DATA_SIMULATION:
33
35
  # stop generating pkts with data simulator and wait a few seconds for full flush
34
36
  pixel_sim_thread.stop()
@@ -1,13 +1,16 @@
1
1
  {
2
- "name": "pattern_test",
3
- "module": "datapath",
4
- "purpose": "Test configuration for all supported calibration pattern values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
2
+ "name": "Pattern",
3
+ "module": "Datapath",
4
+ "purpose": "Test configuration for all supported communication pattern values",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Configuration",
6
6
  "initialCondition": "Bridge configured to defaults",
7
- "procedure": ["Test prolog", "Configurations", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "For each supported value - configure the BRG and verify the value",
9
+ "Test epilog and revert to defaults"],
8
10
  "expectedOutcome": "All values configured successfully",
9
11
  "mandatory": 1,
10
12
  "multiBridgeTest": 0,
11
13
  "gwOnlyTest": 0,
14
+ "internalBridge": 1,
12
15
  "allSupportedValues": ["DATAPATH_PATTERN_STANDARD", "DATAPATH_PATTERN_38_38_39", "DATAPATH_PATTERN_EU_PATTERN"]
13
16
  }
@@ -4,6 +4,7 @@ from brg_certificate.wlt_types import *
4
4
  import brg_certificate.cert_common as cert_common
5
5
  import brg_certificate.cert_config as cert_config
6
6
 
7
+
7
8
  def run(test):
8
9
 
9
10
  fields = [BRG_PATTERN]
@@ -25,4 +26,4 @@ def run(test):
25
26
  else:
26
27
  test.reset_result()
27
28
 
28
- return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
29
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
@@ -1,13 +1,19 @@
1
1
  {
2
- "name": "pkt_filter_test",
3
- "module": "datapath",
4
- "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters using BLE5",
5
- "documentaion": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
2
+ "name": "Packet Filter BLE5",
3
+ "module": "Datapath",
4
+ "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters using BLE_5.0",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
6
  "initialCondition": "Bridge & data simulator configured to defaults",
7
- "procedure": ["Test prolog", "Packet filter & secondary BLE5 rx channel configuration", "Generate pixels packets & scan for packets in the bridge", "Compare pacer interval mean per pixel & packet type to the configured value", "Repeat for all given packet filter values", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "Packet filter & secondary BLE5 rx channel configuration",
9
+ "Generate pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Repeat for all given packet filter values",
12
+ "Test epilog and revert to defaults"],
8
13
  "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
9
14
  "mandatory": 1,
10
15
  "multiBridgeTest": 0,
11
16
  "gwOnlyTest": 0,
17
+ "internalBridge": 1,
12
18
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
13
19
  }
@@ -6,6 +6,7 @@ import brg_certificate.cert_config as cert_config
6
6
 
7
7
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
8
 
9
+
9
10
  def run(test):
10
11
 
11
12
  fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
@@ -15,12 +16,14 @@ def run(test):
15
16
  if test.rc == TEST_FAILED:
16
17
  return cert_common.test_epilog(test)
17
18
 
18
-
19
19
  for param in test.params:
20
- test = cert_config.brg_configure_ble5(test, fields=fields, values=[param.value, RX_CHANNEL_10_250K, PKT_FILTER_TEST_PACER_INTERVAL], module=datapath_module)[0]
20
+ test = cert_config.brg_configure_ble5(test, fields=fields,
21
+ values=[param.value, RX_CHANNEL_10_250K, PKT_FILTER_TEST_PACER_INTERVAL],
22
+ module=datapath_module)[0]
21
23
  test.set_phase_rc(param.name, test.rc)
22
24
  test.add_phase_reason(param.name, test.reason)
23
25
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
26
+ test.add_reason(f"Failed to configure BRG with {param.name} filter")
24
27
  break
25
28
  else:
26
29
  test.reset_result()
@@ -30,15 +33,19 @@ def run(test):
30
33
  if test.data == DATA_SIMULATION:
31
34
  # start generating pkts and send them using data simulator
32
35
  num_of_pixels = 5
33
- pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2, delay=0, pkt_types=[2], pixels_type=GEN3_EXTENDED)
36
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2,
37
+ delay=0, pkt_types=[2], pixels_type=GEN3_EXTENDED)
34
38
  pixel_sim_thread.start()
35
- df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg, scan_time=PKT_FILTER_TEST_PACER_INTERVAL*6, per_pkt_type=True, pkt_filter_cfg=param.value, flush_pkts=True)
39
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
40
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 6, per_pkt_type=True,
41
+ pkt_filter_cfg=param.value, flush_pkts=True)
36
42
  if test.data == DATA_SIMULATION:
37
43
  # stop generating pkts with data simulator and wait a few seconds for full flush
38
44
  pixel_sim_thread.stop()
39
45
  time.sleep(5)
40
46
  cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
41
- test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value, num_of_pixels=num_of_pixels, is_ble5_test=True)
47
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
48
+ num_of_pixels=num_of_pixels, is_ble5_test=True)
42
49
  generate_log_file(test, param.name)
43
50
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
44
51
  test.set_phase_rc(param.name, test.rc)
@@ -1,13 +1,19 @@
1
1
  {
2
- "name": "pkt_filter_gen3_test",
3
- "module": "datapath",
2
+ "name": "Packet Filter Gen3 Pixels",
3
+ "module": "Datapath",
4
4
  "purpose": "Test the packet filter feature configuration and functionality in the bridge for different packet filters with Gen3 data packets",
5
- "documentaion": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
6
  "initialCondition": "Bridge & data simulator configured to defaults",
7
- "procedure": ["Test prolog", "Packet filter configuration", "Generate Gen3 pixels packets & scan for packets in the bridge", "Compare pacer interval mean per pixel & packet type to the configured value", "Repeat for all given packet filter values", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "Packet filter configuration",
9
+ "Generate Gen3 pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Repeat for all given packet filter values",
12
+ "Test epilog and revert to defaults"],
8
13
  "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
9
14
  "mandatory": 1,
10
15
  "multiBridgeTest": 0,
11
16
  "gwOnlyTest": 0,
17
+ "internalBridge": 1,
12
18
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS"]
13
19
  }
@@ -6,6 +6,7 @@ import brg_certificate.cert_config as cert_config
6
6
 
7
7
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
8
 
9
+
9
10
  def run(test):
10
11
 
11
12
  # We add the field BRG_RX_CHANNEL so internal BRGs will be configured to channel 37 (default is 39)
@@ -16,12 +17,13 @@ def run(test):
16
17
  if test.rc == TEST_FAILED:
17
18
  return cert_common.test_epilog(test)
18
19
 
19
-
20
20
  for param in test.params:
21
- test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.RX_CHANNEL_37, PKT_FILTER_TEST_PACER_INTERVAL], module=datapath_module)[0]
21
+ test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.RX_CHANNEL_37, PKT_FILTER_TEST_PACER_INTERVAL],
22
+ module=datapath_module)[0]
22
23
  test.set_phase_rc(param.name, test.rc)
23
24
  test.add_phase_reason(param.name, test.reason)
24
25
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
26
+ test.add_reason(f"Failed to configure BRG with {param.name} filter")
25
27
  break
26
28
  else:
27
29
  test.reset_result()
@@ -32,16 +34,19 @@ def run(test):
32
34
  if test.data == DATA_SIMULATION:
33
35
  # start generating pkts and send them using data simulator
34
36
  num_of_pixels = 5
35
- pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2, delay=0, pkt_types=[0,1], pixels_type=GEN3)
37
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2, delay=0,
38
+ pkt_types=[0, 1], pixels_type=GEN3)
36
39
  pixel_sim_thread.start()
37
- df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg, scan_time=PKT_FILTER_TEST_PACER_INTERVAL*6, per_pkt_type=True,
38
- pkt_filter_cfg=param.value, flush_pkts=True)
40
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
41
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 6, per_pkt_type=True,
42
+ pkt_filter_cfg=param.value, flush_pkts=True)
39
43
  if test.data == DATA_SIMULATION:
40
44
  # stop generating pkts with data simulator and wait a few seconds for full flush
41
45
  pixel_sim_thread.stop()
42
46
  time.sleep(5)
43
47
  cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"pkt_filter_gen3_{param.name}_", dir=test.dir)
44
- test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value, num_of_pixels=num_of_pixels)
48
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
49
+ num_of_pixels=num_of_pixels)
45
50
  generate_log_file(test, param.name)
46
51
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
47
52
  test.set_phase_rc(param.name, test.rc)
@@ -1,13 +1,19 @@
1
1
  {
2
- "name": "pkt_filter_test",
3
- "module": "datapath",
2
+ "name": "Packet Filter Gen2 Pixels",
3
+ "module": "Datapath",
4
4
  "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters",
5
- "documentaion": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
6
  "initialCondition": "Bridge & data simulator configured to defaults",
7
- "procedure": ["Test prolog", "Packet filter configuration", "Generate pixels packets & scan for packets in the bridge", "Compare pacer interval mean per pixel & packet type to the configured value", "Repeat for all given packet filter values", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "Packet filter configuration",
9
+ "Generate pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Repeat for all given packet filter values",
12
+ "Test epilog and revert to defaults"],
8
13
  "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
9
14
  "mandatory": 1,
10
15
  "multiBridgeTest": 0,
11
16
  "gwOnlyTest": 0,
17
+ "internalBridge": 1,
12
18
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
13
19
  }
@@ -6,6 +6,7 @@ import brg_certificate.cert_config as cert_config
6
6
 
7
7
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
8
 
9
+
9
10
  def run(test):
10
11
 
11
12
  # We add the field BRG_RX_CHANNEL so internal BRGs will be configured to channel 37 (default is 39)
@@ -16,12 +17,13 @@ def run(test):
16
17
  if test.rc == TEST_FAILED:
17
18
  return cert_common.test_epilog(test)
18
19
 
19
-
20
20
  for param in test.params:
21
- test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.RX_CHANNEL_37, PKT_FILTER_TEST_PACER_INTERVAL], module=datapath_module)[0]
21
+ test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.RX_CHANNEL_37, PKT_FILTER_TEST_PACER_INTERVAL],
22
+ module=datapath_module)[0]
22
23
  test.set_phase_rc(param.name, test.rc)
23
24
  test.add_phase_reason(param.name, test.reason)
24
25
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
26
+ test.add_reason(f"Failed to configure BRG with {param.name} filter")
25
27
  break
26
28
  else:
27
29
  test.reset_result()
@@ -32,17 +34,19 @@ def run(test):
32
34
  if test.data == DATA_SIMULATION:
33
35
  # start generating pkts and send them using data simulator
34
36
  num_of_pixels = 5
35
- pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2, delay=0, pkt_types=[0,1,2])
37
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels,
38
+ duplicates=2, delay=0, pkt_types=[0, 1, 2])
36
39
  pixel_sim_thread.start()
37
- df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg, scan_time=PKT_FILTER_TEST_PACER_INTERVAL*6, per_pkt_type=True,
38
- pkt_filter_cfg=param.value, flush_pkts=True)
40
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
41
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 6, per_pkt_type=True,
42
+ pkt_filter_cfg=param.value, flush_pkts=True)
39
43
  if test.data == DATA_SIMULATION:
40
44
  # stop generating pkts with data simulator and wait a few seconds for full flush
41
45
  pixel_sim_thread.stop()
42
46
  time.sleep(5)
43
47
  cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"pkt_filter_{param.name}_", dir=test.dir)
44
- test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value, num_of_pixels=num_of_pixels)
45
- # param epilog
48
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df,
49
+ pkt_filter_cfg=param.value, num_of_pixels=num_of_pixels)
46
50
  generate_log_file(test, param.name)
47
51
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
48
52
  test.set_phase_rc(param.name, test.rc)
@@ -1,13 +1,17 @@
1
1
  {
2
- "name": "rssi_threshold_test",
3
- "module": "datapath",
2
+ "name": "RSSI Threshold",
3
+ "module": "Datapath",
4
4
  "purpose": "Test RSSI threshold configuration and functionality in the bridge",
5
- "documentaion": "TODO",
5
+ "documentation": "<TEST_DOCUMENTATION_LINK>",
6
6
  "initialCondition": "Bridge configured to defaults",
7
- "procedure": ["Test prolog", "RSSI Threshold configuration", "Checking for packets violating RSSI threshold", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "RSSI Threshold configuration",
9
+ "Checking for packets violating RSSI threshold",
10
+ "Test epilog and revert to defaults"],
8
11
  "expectedOutcome": "RSSI Threshold configured successfully and no pixel packets with RSSI weaker than the threshold have been echoed.",
9
12
  "mandatory": 1,
10
13
  "multiBridgeTest": 0,
11
14
  "gwOnlyTest": 0,
15
+ "internalBridge": 1,
12
16
  "allSupportedValues": ["-80", "-65", "-10"]
13
17
  }
@@ -4,27 +4,29 @@ from brg_certificate.wlt_types import *
4
4
  import brg_certificate.cert_common as cert_common
5
5
  import brg_certificate.cert_config as cert_config
6
6
 
7
+
7
8
  def rssi_threshold_analysis(test, df, threshold):
8
9
  tags_count = len(list(df[TAG_ID].unique()))
9
10
 
10
11
  # Filter rows where RSSI is higher than threshold
11
- low_rssi_df = df[df[RSSI] >= (-1)*threshold]
12
+ low_rssi_df = df[df[RSSI] >= (-1) * threshold]
12
13
 
13
14
  # Extract all tag IDs from those filtered rows
14
15
  low_rssi_tag_ids = low_rssi_df[TAG_ID].unique()
15
16
  failed_tags = len(low_rssi_tag_ids)
16
17
 
17
18
  if failed_tags:
18
- test.rc =TEST_FAILED
19
- print("Tag IDs with RSSI exceeding", (-1)*threshold, ":", low_rssi_tag_ids)
19
+ test.rc = TEST_FAILED
20
+ print("Tag IDs with RSSI exceeding", (-1) * threshold, ":", low_rssi_tag_ids)
20
21
 
21
22
  if test.rc == TEST_FAILED:
22
- test.add_reason(f"{failed_tags}/{tags_count} tags rssi violating threshold of {(-1)*threshold}")
23
+ test.add_reason(f"{failed_tags}/{tags_count} tags rssi violating threshold of {(-1) * threshold}")
23
24
  print(test.reason)
24
25
  else:
25
26
  test.rc = TEST_PASSED
26
27
  return test
27
28
 
29
+
28
30
  def run(test):
29
31
 
30
32
  fields = [BRG_RSSI_THRESHOLD]
@@ -33,7 +35,7 @@ def run(test):
33
35
  test = cert_common.test_prolog(test)
34
36
  if test.rc == TEST_FAILED:
35
37
  return cert_common.test_epilog(test)
36
-
38
+
37
39
  # Configure the BRG with RSSI threshold and check for packets violating the threshold
38
40
  for param in test.params:
39
41
  functionality_run_print(f"test for RSSI threshold of {param.value}")
@@ -1,13 +1,16 @@
1
1
  {
2
- "name": "rx_channel_test",
3
- "module": "datapath",
2
+ "name": "Rx Channel",
3
+ "module": "Datapath",
4
4
  "purpose": "Test configuration for all supported datapath rx channel values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Configuration",
6
6
  "initialCondition": "Bridge configured to defaults",
7
- "procedure": ["Test prolog", "Configurations", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "For each supported value - configure the BRG and verify the value",
9
+ "Test epilog and revert to defaults"],
8
10
  "expectedOutcome": "All values configured successfully",
9
11
  "mandatory": 1,
10
12
  "multiBridgeTest": 0,
11
13
  "gwOnlyTest": 0,
14
+ "internalBridge": 1,
12
15
  "allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "RX_CHANNEL_10_250K", "RX_CHANNEL_10_500K"]
13
16
  }
@@ -4,18 +4,22 @@ from brg_certificate.wlt_types import *
4
4
  import brg_certificate.cert_common as cert_common
5
5
  import brg_certificate.cert_config as cert_config
6
6
 
7
+
7
8
  def is_primary_channel(channel):
8
9
  if channel == ag.RX_CHANNEL_37 or channel == ag.RX_CHANNEL_38 or channel == ag.RX_CHANNEL_39:
9
10
  return True
10
11
  else:
11
12
  return False
12
13
 
14
+
13
15
  def run(test):
14
16
 
15
17
  fields = [BRG_RX_CHANNEL]
16
18
  print(test.params)
17
- datapath_module = eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}')
18
- ble5_state = False # We use this flag to know whether the BRG is currently in BLE5 mode and needs special configuration next time it is configured
19
+ datapath_module = cert_common.get_module_by_name(test.active_brg.modules, "Datapath")
20
+
21
+ # We use this flag to know whether the BRG is currently in BLE5 mode and needs special configuration next time it is configured
22
+ ble5_state = False
19
23
 
20
24
  test = cert_common.test_prolog(test)
21
25
  if test.rc == TEST_FAILED:
@@ -38,4 +42,4 @@ def run(test):
38
42
  else:
39
43
  test.reset_result()
40
44
 
41
- return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module], ble5=ble5_state)
45
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module], ble5=ble5_state)
@@ -1,9 +1,7 @@
1
1
  {
2
- "name": "rx_rate_gen2",
3
- "module": "DataPath",
4
- "purpose": [
5
- "Verify the accuracy of the RX rate value"
6
- ],
2
+ "name": "Rx Rate Gen2 Pixels",
3
+ "module": "Datapath",
4
+ "purpose": "Verify the accuracy of the RX rate value",
7
5
  "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
8
6
  "initialCondition": "Bridge set to default configuration",
9
7
  "procedure": [
@@ -17,5 +15,6 @@
17
15
  "mandatory": 1,
18
16
  "multiBridgeTest": 0,
19
17
  "gwOnlyTest": 0,
18
+ "internalBridge": 1,
20
19
  "allSupportedValues": ["mid_values", "diff_pacer", "min_value", "max_value", "diff_rate"]
21
20
  }