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
@@ -24,74 +24,72 @@ import brg_certificate.cert_config as cert_config
24
24
 
25
25
 
26
26
  # Test MACROS #
27
- DEFAULT_HDR = ag.Hdr(group_id=ag.GROUP_ID_GW2BRG)
28
- NUM_OF_SCANNING_CYCLE = 2
29
- DEFAULT_SCAN_TIME = 60
30
- SCAN_DELAY_TIME = 5
31
- BOARD_TYPES_2_POLARIZATION_ANT_LIST = [ag.BOARD_TYPE_MINEW_SINGLE_BAND_V0, ag.BOARD_TYPE_MINEW_DUAL_BAND_V0, ag.BOARD_TYPE_ENERGOUS_V2, ag.BOARD_TYPE_ERM_V0, ag.BOARD_TYPE_ERM_V1]
27
+ NUM_OF_SCANNING_CYCLE = 5
28
+ DEFAULT_SCAN_TIME = 30
29
+ SCAN_DELAY_TIME = 3
30
+
32
31
 
33
32
  # Test functions #
34
- def mqtt_scan_n_create_log_file(test, duration, phase):
35
- test.mqttc.flush_pkts()
36
- mqtt_scan_wait(test, duration=duration)
37
- generate_log_file(test, phase)
38
-
39
- def get_all_signal_ind_pkt(test=None, rx_brg=None, tx_brg=None):
40
- if rx_brg == test.brg1:
41
- all_sensor_packets = cert_mqtt.get_all_brg1_ext_sensor_pkts(mqttc=test.mqttc, test=test)
42
- elif rx_brg == test.brg0:
43
- all_sensor_packets = cert_mqtt.get_all_sensor_pkts(mqttc=test.mqttc, test=test)
44
- signal_ind_pkts = []
45
- for p in all_sensor_packets:
46
- if p[SENSOR_UUID] == "{:06X}".format(ag.SENSOR_SERVICE_ID_SIGNAL_INDICATOR) and p[BRIDGE_ID] == rx_brg.id_str and (p[SENSOR_ID] == tx_brg.id_alias):
47
- signal_ind_pkts.append(p)
48
- return signal_ind_pkts
49
-
50
- def expected_signal_ind_pkts_calc(tx_brg, rx_brg):
51
- if (tx_brg.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST):
52
- tx_brg_ant_polarization_num = 2
53
- else:
54
- tx_brg_ant_polarization_num = 1
55
- if (rx_brg.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST):
56
- rx_brg_ant_polarization_num = 2
57
- else:
58
- rx_brg_ant_polarization_num = 1
59
- return NUM_OF_SCANNING_CYCLE * tx_brg_ant_polarization_num * rx_brg_ant_polarization_num
33
+ def rssi_check(test, received_signal_ind_pkts):
34
+ threshold_rssi = [0, 80]
35
+ for p in received_signal_ind_pkts:
36
+ if not threshold_rssi[0] < p[RSSI] < threshold_rssi[1]:
37
+ test.rc = TEST_FAILED
38
+ test.add_reason("rssi value is wrong, out of 0 to 80 ")
60
39
 
61
- def test_brg0_rx_brg1_tx(test, energy2400_module, ext_sensors_module):
62
- cycle_rep = [(30,3), (60,4)]
63
- tx_brg_ = test.brg0
64
- rx_brg_ = test.brg1
65
- for cycle,rep in cycle_rep:
66
- utPrint(f"TX BRG with RX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
67
- # configuring receiver #
68
- utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
69
- test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0], values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
70
- if test.rc == TEST_FAILED:
71
- test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
72
- return test
73
- # configuring transmitter #
74
- utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
75
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
76
- if test.rc == TEST_FAILED:
77
- test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
78
- return test
79
- utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {cycle},"
80
- f"repetition = {rep}", "BOLD")
81
- # phase analysis #
82
- mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"brg0_rx_brg1_tx_{cycle}_{rep}")
83
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(tx_brg_, rx_brg_)
84
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
85
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
40
+ return test
41
+
42
+
43
+ def rx_tx_antenna_check(test, received_signal_ind_pkts, tx_brg_, rx_brg_):
44
+
45
+ # Allow to miss 1 packet
46
+ expected = range(int(NUM_OF_SCANNING_CYCLE * 0.5), NUM_OF_SCANNING_CYCLE + 1)
47
+
48
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=0, tx_ant=0))
49
+ if received not in expected:
50
+ test.rc = TEST_FAILED
51
+ test.add_reason(f"rx_ant=0 tx_ant=0 expected={NUM_OF_SCANNING_CYCLE} received={received}")
52
+
53
+ if tx_brg_.board_type in cert_common.dual_polarization_ant_boards_get():
54
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=0, tx_ant=1))
55
+ if received not in expected:
56
+ test.rc = TEST_FAILED
57
+ test.add_reason(f"rx_ant=0 tx_ant=1 expected={NUM_OF_SCANNING_CYCLE} received={received}")
58
+
59
+ if rx_brg_.board_type in cert_common.dual_polarization_ant_boards_get():
60
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=1, tx_ant=0))
61
+ if received not in expected:
62
+ test.rc = TEST_FAILED
63
+ test.add_reason(f"rx_ant=1 tx_ant=0 expected={NUM_OF_SCANNING_CYCLE} received={received}")
64
+
65
+ if (rx_brg_.board_type in cert_common.dual_polarization_ant_boards_get() and
66
+ tx_brg_.board_type in cert_common.dual_polarization_ant_boards_get()):
67
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=1, tx_ant=1))
68
+ if received not in expected:
69
+ test.rc = TEST_FAILED
70
+ test.add_reason(f"rx_ant=1 tx_ant=1 expected={NUM_OF_SCANNING_CYCLE} received={received}")
71
+ return test
72
+
73
+
74
+ def get_polar_signal_ind_pkt(pkts, rx_ant, tx_ant):
75
+ return [p for p in pkts if p[SENSOR_PKT].pkt.rx_antenna == rx_ant and p[SENSOR_PKT].pkt.tx_antenna == tx_ant]
76
+
77
+
78
+ def output_power_check(test, received_signal_ind_pkts, tx_brg_):
79
+
80
+ datapath_module = cert_common.get_module_by_name(tx_brg_.modules, "Datapath")
81
+ output_power_default = datapath_module().output_power
82
+
83
+ for p in received_signal_ind_pkts:
84
+ if p[SENSOR_PKT].pkt.output_power != output_power_default:
86
85
  test.rc = TEST_FAILED
87
- test.add_reason(f"brg0_rx_brg1_tx phase failed - BRG {rx_brg_.id_str} received wrong number of "
88
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
89
- f"expected {expected_signal_ind_pkts} packets")
90
- if test.rc == TEST_FAILED: return test
86
+ test.add_reason("output power of internal brg is incorrect!\n"
87
+ f"got:{p[SENSOR_PKT].pkt.output_power}, expected: {output_power_default}\n")
91
88
  return test
92
89
 
90
+
93
91
  def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
94
- cycle, rep = 30, 3
92
+ cycle, rep = 5, 4
95
93
  tx_brg_ = test.brg0
96
94
  rx_brg_ = test.brg1
97
95
  rssi_threshold = -25
@@ -99,157 +97,216 @@ def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
99
97
  utPrint(f"TX BRG with RX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
100
98
  # configuring receiver #
101
99
  utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver with RSSI Threshold of {rssi_threshold}", "BOLD")
102
- test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0, BRG_RSSI_THRESHOLD], values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR, rssi_threshold])[0]
100
+ test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0, BRG_RSSI_THRESHOLD],
101
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR, rssi_threshold])[0]
103
102
  if test.rc == TEST_FAILED:
104
103
  test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
105
104
  return test
106
105
  # configuring transmitter #
107
106
  utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
108
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
107
+ test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
108
+ values=[cycle, rep])[0]
109
109
  if test.rc == TEST_FAILED:
110
110
  test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
111
111
  return test
112
112
  utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {cycle},"
113
113
  f"repetition = {rep}", "BOLD")
114
114
  # phase analysis #
115
- mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"rssi_threshold")
116
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
117
- rssi_threshold_viloation_pkts = [p for p in received_signal_ind_pkts if p[RSSI] >= -1*rssi_threshold]
115
+ mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, "rssi_threshold")
116
+ received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
117
+ for p in received_signal_ind_pkts:
118
+ print(f"rssi value: {p[RSSI]}")
119
+ rssi_threshold_viloation_pkts = [p for p in received_signal_ind_pkts if p[RSSI] >= -1 * rssi_threshold]
118
120
  if rssi_threshold_viloation_pkts:
119
121
  test.rc = TEST_FAILED
120
- test.add_reason(f"rssi_threshold phase failed - BRG {rx_brg_.id_str} echoed" +
121
- f" {len(rssi_threshold_viloation_pkts)} signal indicator packets\n with RSSI weaker than {rssi_threshold}")
122
+ test.add_reason(f"rssi_threshold phase failed - BRG {rx_brg_.id_str} echoed"
123
+ f" {len(rssi_threshold_viloation_pkts)} signal indicator packets\n with RSSI weaker than {rssi_threshold}")
122
124
  return test
123
125
 
126
+
127
+ def test_brg0_rx_brg1_tx(test, energy2400_module, ext_sensors_module):
128
+
129
+ rx_brg_ = test.brg0
130
+ tx_brg_ = test.brg1
131
+ cycle, rep = 8, 4
132
+
133
+ utPrint(f"TX BRG with RX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
134
+ # configuring receiver #
135
+ utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
136
+ test = cert_config.brg_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0],
137
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
138
+ if test.rc == TEST_FAILED:
139
+ test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
140
+ return test
141
+ # configuring transmitter #
142
+ utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
143
+ test = cert_config.brg1_configure(test=test, module=energy2400_module,
144
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
145
+ values=[cycle, rep])[0]
146
+ if test.rc == TEST_FAILED:
147
+ test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
148
+ return test
149
+ utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {cycle},"
150
+ f"repetition = {rep}", "BOLD")
151
+ # phase analysis #
152
+ mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"brg0_rx_brg1_tx_{cycle}_{rep}")
153
+ received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
154
+
155
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE, received_signal_ind_pkts):
156
+ test.rc = TEST_FAILED
157
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE)
158
+ test.add_reason(f"brg0_rx_brg1_tx phase failed - BRG {rx_brg_.id_str} received wrong number of "
159
+ f"signal indicator packets\nreceived {len(received_signal_ind_pkts)} packets, "
160
+ f"expected {expected_signal_ind_pkts} packets")
161
+ print(received_signal_ind_pkts) # TODO: logging print(debug)
162
+ print([[p[TIMESTAMP], p[SENSOR_PKT].pkt.rx_antenna] for p in received_signal_ind_pkts])
163
+
164
+ test = rx_tx_antenna_check(test, received_signal_ind_pkts, tx_brg_, rx_brg_)
165
+ test = output_power_check(test, received_signal_ind_pkts, tx_brg_)
166
+ test = rssi_check(test, received_signal_ind_pkts)
167
+
168
+ return test
169
+
170
+
124
171
  def test_brg0_none_brg1_rx(test, energy2400_module, ext_sensors_module):
125
172
  cycle, rep = ag.BRG_DEFAULT_SIGNAL_INDICATOR_CYCLE, ag.BRG_DEFAULT_SIGNAL_INDICATOR_REP
126
- tx_brg_ = test.brg0
173
+ tx_brg_ = test.brg1
127
174
  rx_brg_ = test.brg1
128
175
  utPrint(f"RX BRG without TX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
129
- # configuring transmitter to no TX #
130
- utPrint(f"Configuring BRG {tx_brg_.id_str} to default", "BOLD")
131
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
176
+ # configuring receiver #
177
+ utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
178
+ test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0],
179
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
132
180
  if test.rc == TEST_FAILED:
133
- test.add_reason(f"BRG {tx_brg_.id_str}: didn't revert to default (no signal indicator tx)!")
181
+ test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
134
182
  return test
135
- utPrint(f"BRG {tx_brg_.id_str} configured to default!!! cycle = {cycle},"
136
- f"repetition = {rep}", "BOLD")
183
+ utPrint(f"BRG {rx_brg_.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
184
+
137
185
  # phase analysis #
138
186
  mqtt_scan_n_create_log_file(test, DEFAULT_SCAN_TIME, "brg0_none_brg1_rx")
139
- expected_signal_ind_pkts = 0
140
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
141
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
187
+ expected_signal_ind_pkts = [0]
188
+ received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
189
+ if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
142
190
  test.rc = TEST_FAILED
143
- test.add_reason(f"brg0_none_brg1_rx phase failed - received signal indicator packet from BRG"
144
- f"{rx_brg_.id_str}")
191
+ test.add_reason(f"brg0_rx_brg1_tx phase failed - BRG {rx_brg_.id_str} received wrong number of "
192
+ f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
193
+ f"expected {expected_signal_ind_pkts} packets")
194
+
145
195
  return test
146
196
 
197
+
147
198
  def test_brg0_rxtx_brg1_rxtx(test, energy2400_module, ext_sensors_module):
148
- tx_cycle, tx_rep = 15,4
149
- rx_cycle, rx_rep = 16,4
199
+ tx_cycle, tx_rep = 5, 4
200
+ rx_cycle, rx_rep = 5, 4
150
201
  tx_brg_ = test.brg0
151
202
  rx_brg_ = test.brg1
152
- utPrint(f"Both BRG's are transmitter and receivers, with different values\n", "BLUE")
203
+ utPrint("Both BRG's are transmitter and receivers, with different values\n", "BLUE")
153
204
  # configuring first brg (tx_brg_) as receiver
154
205
  utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
155
- test = cert_config.brg_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0], values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
206
+ test = cert_config.brg_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0],
207
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
156
208
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
157
209
  test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
158
210
  return test
159
211
  utPrint(f"BRG {tx_brg_.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
160
212
  # configuring first brg (tx_brg_) as transmitter
161
213
  utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
162
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[tx_cycle, tx_rep])[0]
214
+ test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
215
+ values=[tx_cycle, tx_rep])[0]
163
216
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
164
217
  test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
165
218
  return test
166
- utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {tx_cycle},"
167
- f"repetition = {tx_rep}", "BOLD")
219
+ utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle={tx_cycle}, repetition={tx_rep}", "BOLD")
168
220
 
169
221
  # configuring second brg (rx_brg_) as receiver
170
222
  utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
171
- test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0], values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
223
+ test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0],
224
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
172
225
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
173
226
  test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
174
227
  return test
175
228
  utPrint(f"BRG {rx_brg_.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
229
+
176
230
  # configuring second brg (rx_brg_) as transmitter (already configured as rx)
177
231
  utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
178
- test = cert_config.brg1_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[rx_cycle, rx_rep])[0]
232
+ test = cert_config.brg1_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
233
+ values=[rx_cycle, rx_rep])[0]
179
234
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
180
235
  test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
181
236
  return test
182
- utPrint(f"BRG {rx_brg_.id_str} configured to be transmitter - cycle = {rx_cycle},"
183
- f"repetition = {rx_rep}")
237
+ utPrint(f"BRG {rx_brg_.id_str} configured to be transmitter - cycle={rx_cycle}, repetition={rx_rep}")
184
238
 
185
239
  # phase analysis #
186
240
  mqtt_scan_n_create_log_file(test, NUM_OF_SCANNING_CYCLE * max(tx_cycle, rx_cycle) + SCAN_DELAY_TIME, "brg0_rxtx_brg1_rxtx")
187
241
 
188
- # Analysing brg0 as a receiver
189
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(rx_brg_, tx_brg_)
190
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=tx_brg_, tx_brg=rx_brg_)
191
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
242
+ # Analyzing tx_brg_ performance as receiver
243
+ utPrint(f"Analyzing tx_brg {tx_brg_.id_str} performance as a Receiver\n", "BOLD")
244
+ received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=tx_brg_, tx_brg=rx_brg_)
245
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE, received_signal_ind_pkts):
192
246
  test.rc = TEST_FAILED
247
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE)
193
248
  test.add_reason(f"brg0_rxtx_brg1_rxtx phase failed - BRG {tx_brg_.id_str} received wrong number of "
194
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
195
- f"expected {expected_signal_ind_pkts} packets")
196
- if test.rc == TEST_FAILED: return test
197
-
198
- # Analysing brg1 as a receiver
199
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(tx_brg_, rx_brg_)
200
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
201
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
249
+ f"signal indicator packets\nreceived {len(received_signal_ind_pkts)} packets, "
250
+ f"expected {expected_signal_ind_pkts} packets")
251
+ print(received_signal_ind_pkts) # TODO: logging print(debug)
252
+
253
+ # Analyzing rx_brg_ performance as receiver
254
+ utPrint(f"Analyzing rx_brg {rx_brg_.id_str} performance as a Receiver\n", "BOLD")
255
+ received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
256
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE, received_signal_ind_pkts):
202
257
  test.rc = TEST_FAILED
258
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE)
203
259
  test.add_reason(f"brg0_rxtx_brg1_rxtx phase failed - BRG {rx_brg_.id_str} received wrong number of "
204
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
205
- f"expected {expected_signal_ind_pkts} packets")
260
+ f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
261
+ f"expected {expected_signal_ind_pkts} packets")
262
+ print(received_signal_ind_pkts) # TODO: logging print(debug)
263
+ # NOTE: We skipped the antenna and output power checks for this phase
206
264
  return test
207
265
 
266
+
208
267
  def test_brg0_tx_brg1_none(test, energy2400_module, ext_sensors_module):
209
268
  # Tx BRG without rx. just waiting for packets to be sent from the transmitter and verify
210
269
  # The receiver isn't receiving any signal indicator packets.
211
- cycle, rep = 15,3
270
+ cycle, rep = 4, 3
212
271
  tx_brg_ = test.brg0
213
272
  rx_brg_ = test.brg1
214
273
  utPrint(f"TX BRG without RX - cycle = {cycle}, repetition = {rep}\n", "BLUE")
215
- # restore default configuration for receiver #
216
- utPrint(f"Configuring BRG {rx_brg_.id_str} to default", "BOLD")
217
- test = cert_config.config_brg1_defaults(test, modules=[energy2400_module, ext_sensors_module])[0]
218
- if test.rc == TEST_FAILED:
219
- test.add_reason(f"BRG {rx_brg_.id_str}: didn't revert to default configuration!")
220
- return test
221
274
  # configuring transmitter #
222
275
  utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
223
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
276
+ test = cert_config.brg_configure(test=test, module=energy2400_module,
277
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
224
278
  if test.rc == TEST_FAILED:
225
279
  test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
226
280
  return test
227
281
 
228
282
  # phase analysis #
229
- mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE*cycle) + SCAN_DELAY_TIME, "brg0_tx_brg1_none")
230
- expected_signal_ind_pkts = 0
231
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
232
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
283
+ mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, "brg0_tx_brg1_none")
284
+ expected_signal_ind_pkts = [0]
285
+ received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
286
+ if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
233
287
  test.rc = TEST_FAILED
234
288
  test.add_reason(f"brg0_tx_brg1_none phase failed - received signal indicator packet from BRG"
235
- f"{rx_brg_.id_str}")
289
+ f"{rx_brg_.id_str}")
290
+ test = output_power_check(test, received_signal_ind_pkts, tx_brg_)
291
+
236
292
  return test
237
293
 
238
- SIGNAL_INDICATOR_TEST_MAP = {"rssi_threshold" : test_rssi_threshold, "brg0_rx_brg1_tx": test_brg0_rx_brg1_tx,
294
+
295
+ SIGNAL_INDICATOR_TEST_MAP = {"rssi_threshold": test_rssi_threshold, "brg0_rx_brg1_tx": test_brg0_rx_brg1_tx,
239
296
  "brg0_none_brg1_rx": test_brg0_none_brg1_rx, "brg0_rxtx_brg1_rxtx": test_brg0_rxtx_brg1_rxtx,
240
297
  "brg0_tx_brg1_none": test_brg0_tx_brg1_none}
241
298
 
299
+
242
300
  def run(test):
301
+ # Test prolog
302
+ test = cert_common.test_prolog(test)
243
303
 
244
304
  # Test modules evaluation #
245
305
  energy2400_module = eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}')
246
306
  ext_sensors_module = eval_pkt(f'ModuleExtSensorsV{test.active_brg.api_version}')
247
307
 
248
- # Test prolog
249
- test = cert_common.test_prolog(test)
250
-
251
308
  for param in test.params:
252
- functionality_run_print(param.name)
309
+ phase_run_print(param.name)
253
310
  test = SIGNAL_INDICATOR_TEST_MAP[param.value](test, energy2400_module, ext_sensors_module)
254
311
  generate_log_file(test, param.name)
255
312
  field_functionality_pass_fail_print(test, param.name)
@@ -259,6 +316,22 @@ def run(test):
259
316
  break
260
317
  else:
261
318
  test.reset_result()
262
-
319
+
320
+ # Reset to defaults after every phase (don't fail the phase on that)
321
+ test = cert_config.config_brg_defaults(test, modules=[energy2400_module, ext_sensors_module])[0]
322
+ if test.rc == TEST_FAILED:
323
+ test.add_reason("Failed to restore brg0 to defaults")
324
+ else:
325
+ test = cert_config.config_brg1_defaults(test, modules=[energy2400_module, ext_sensors_module])[0]
326
+ if test.rc == TEST_FAILED:
327
+ test.add_reason("Failed to restore brg0 to defaults")
328
+ if test.rc == TEST_FAILED:
329
+ test.set_phase_rc(param.name, test.rc)
330
+ test.add_phase_reason(param.name, test.reason)
331
+ if test.exit_on_param_failure:
332
+ break
333
+ else:
334
+ test.reset_result()
335
+
263
336
  return cert_common.test_epilog(test, revert_brgs=True, modules=[energy2400_module, ext_sensors_module],
264
- brg1_modules=[energy2400_module, ext_sensors_module])
337
+ brg1_modules=[energy2400_module, ext_sensors_module])
@@ -1,13 +1,16 @@
1
1
  {
2
- "name": "duty_cycle_test",
3
- "module": "energy_sub1g",
2
+ "name": "Duty Cycle",
3
+ "module": "Energizer Sub-1GHz",
4
4
  "purpose": "Test configuration for supported energy_sub1g duty cycle & bridge cycle sets of values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Sub1-Ghz-Energizer-module",
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": [15, 20, 40, 0]
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_DUTY_CYCLE]
@@ -24,4 +25,4 @@ def run(test):
24
25
  else:
25
26
  test.reset_result()
26
27
 
27
- return cert_common.test_epilog(test, revert_brgs=True, modules=[sub1g_module])
28
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[sub1g_module])
@@ -1,13 +1,20 @@
1
1
  {
2
- "name": "pattern_test",
3
- "module": "energy_sub1g",
4
- "purpose": "Test configuration for all supported Energy SUB1GHz pattern values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
2
+ "name": "Pattern",
3
+ "module": "Energizer Sub-1GHz",
4
+ "purpose": "Test configuration for all supported energy_sub1g pattern values",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Sub1-Ghz-Energizer-module",
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,
12
- "allSupportedValues": ["SUB1G_ENERGY_PATTERN_NO_ENERGIZING", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000", "SUB1G_ENERGY_PATTERN_FCC_HOPPING", "SUB1G_ENERGY_PATTERN_JAPAN_1W", "SUB1G_ENERGY_PATTERN_JAPAN_350MW", "SUB1G_ENERGY_PATTERN_KOREA", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_916300", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500", "SUB1G_ENERGY_PATTERN_AUSTRALIA", "SUB1G_ENERGY_PATTERN_ISRAEL", "SUB1G_ENERGY_PATTERN_NZ_HOPPING"]
14
+ "internalBridge": 1,
15
+ "allSupportedValues": ["SUB1G_ENERGY_PATTERN_NO_ENERGIZING", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000",
16
+ "SUB1G_ENERGY_PATTERN_FCC_HOPPING", "SUB1G_ENERGY_PATTERN_JAPAN_1W",
17
+ "SUB1G_ENERGY_PATTERN_JAPAN_350MW", "SUB1G_ENERGY_PATTERN_KOREA",
18
+ "SUB1G_ENERGY_PATTERN_SINGLE_TONE_916300", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500",
19
+ "SUB1G_ENERGY_PATTERN_AUSTRALIA", "SUB1G_ENERGY_PATTERN_ISRAEL", "SUB1G_ENERGY_PATTERN_NZ_HOPPING"]
13
20
  }
@@ -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]
@@ -23,4 +24,4 @@ def run(test):
23
24
  else:
24
25
  test.reset_result()
25
26
 
26
- return cert_common.test_epilog(test, revert_brgs=True, modules=[sub1g_module])
27
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[sub1g_module])
@@ -1,13 +1,20 @@
1
1
  {
2
- "name": "signal_indicator_functionality_test",
3
- "module": "energy_sub1g",
4
- "purpose": "TODO",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
6
- "initialCondition": "TODO",
7
- "procedure": ["Test prolog", "TODO", "Test epilog"],
8
- "expectedOutcome": "TODO",
2
+ "name": "Signal Indicator Functionality",
3
+ "module": "Energizer Sub-1GHz",
4
+ "purpose": "Test functionality for supported sub1g signal indicator cycle & repetitions sets of values",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Sub1-Ghz-Energizer-module",
6
+ "initialCondition": "1 GW and at least 1 BRG configured to defaults",
7
+ "procedure": ["Test prolog",
8
+ "rssi_threshold - check the if rssi value is between 0 to -25.",
9
+ "brg0_tx_brg1_rx (for all EP's)- one brg is transmitter and the second is receiver, we expect to receive signal indicator packets for all energy patterns",
10
+ "brg0_tx_brg1_rx ( only israel ep) - one brg is transmitter and the second is receiver, we expect to receive signal indicator packets in the specified energy pattern",
11
+ "brg0_none_brg1_rx - One BRG will be configured as signal indicator rx, but no tx, so we don't expect to receive signal indicator packets.",
12
+ "brg0_rxtx_brg1_rxtx - Both BRG's will be configured to be transmitters and receivers, with different tx params for each one. we expect to see signal indicator packets from both BRG's, according to the tx params.",
13
+ "Test epilog"],
14
+ "expectedOutcome": "All phases passes successfully",
9
15
  "mandatory": 0,
10
16
  "multiBridgeTest": 1,
11
17
  "gwOnlyTest": 0,
18
+ "internalBridge": 1,
12
19
  "allSupportedValues": []
13
20
  }