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.
- brg_certificate/ag/energous_v0_defines.py +17 -17
- brg_certificate/ag/energous_v1_defines.py +17 -17
- brg_certificate/ag/energous_v2_defines.py +17 -17
- brg_certificate/ag/energous_v3_defines.py +17 -17
- brg_certificate/ag/energous_v4_defines.py +17 -17
- brg_certificate/ag/fanstel_lan_v0_defines.py +17 -17
- brg_certificate/ag/fanstel_lte_v0_defines.py +17 -17
- brg_certificate/ag/fanstel_wifi_v0_defines.py +17 -17
- brg_certificate/ag/minew_lte_v0_defines.py +17 -17
- brg_certificate/ag/wlt_cmd_if.html +3 -2
- brg_certificate/ag/wlt_types.html +0 -1
- brg_certificate/ag/wlt_types_ag.py +151 -152
- brg_certificate/brg_certificate.py +38 -7
- brg_certificate/brg_certificate_cli.py +19 -3
- brg_certificate/cert_common.py +92 -55
- brg_certificate/cert_config.py +6 -4
- brg_certificate/cert_data_sim.py +47 -7
- brg_certificate/cert_defines.py +20 -6
- brg_certificate/cert_gw_sim.py +10 -6
- brg_certificate/cert_mqtt.py +9 -6
- brg_certificate/cert_prints.py +14 -1
- brg_certificate/cert_protobuf.py +7 -7
- brg_certificate/cert_results.py +131 -84
- brg_certificate/cert_utils.py +13 -7
- brg_certificate/certificate_bcc_sanity_test_list.txt +40 -0
- brg_certificate/certificate_bcc_test_list.txt +50 -0
- brg_certificate/certificate_sanity_test_list.txt +12 -5
- brg_certificate/certificate_test_list.txt +16 -6
- brg_certificate/tests/calibration/interval_test/interval_test.json +4 -3
- brg_certificate/tests/calibration/output_power_test/output_power_test.json +8 -5
- brg_certificate/tests/calibration/pattern_test/pattern_test.json +7 -4
- brg_certificate/tests/calibration/pattern_test/pattern_test.py +25 -26
- brg_certificate/tests/datapath/aging_test/aging_test.json +19 -0
- brg_certificate/tests/datapath/aging_test/aging_test.py +142 -0
- brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +10 -5
- brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +12 -11
- brg_certificate/tests/datapath/output_power_test/output_power_test.json +7 -4
- brg_certificate/tests/datapath/output_power_test/output_power_test.py +2 -1
- brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +8 -5
- brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +6 -3
- brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +7 -4
- brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +6 -3
- brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +7 -4
- brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +4 -2
- brg_certificate/tests/datapath/pattern_test/pattern_test.json +8 -5
- brg_certificate/tests/datapath/pattern_test/pattern_test.py +2 -1
- brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +11 -5
- brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +12 -5
- brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +10 -4
- brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +11 -6
- brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +10 -4
- brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -7
- brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +8 -4
- brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +7 -5
- brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +7 -4
- brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +7 -3
- brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +4 -5
- brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +107 -73
- brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +4 -5
- brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +128 -118
- brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +15 -23
- brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +104 -103
- brg_certificate/tests/datapath/stress_test/stress_test.json +15 -23
- brg_certificate/tests/datapath/stress_test/stress_test.py +104 -110
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +8 -4
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +7 -2
- brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +8 -4
- brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +8 -6
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +4 -3
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +2 -38
- brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +15 -8
- brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +14 -8
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +11 -7
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +25 -12
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +11 -7
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +48 -3
- brg_certificate/tests/edge_mgmt/{stat_test/stat_test.json → periodic_msgs_test/periodic_msgs_test.json} +5 -4
- brg_certificate/tests/edge_mgmt/{stat_test/stat_test.py → periodic_msgs_test/periodic_msgs_test.py} +4 -4
- brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +8 -5
- brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +2 -1
- brg_certificate/tests/energy2400/output_power_test/output_power_test.json +9 -6
- brg_certificate/tests/energy2400/output_power_test/output_power_test.py +2 -1
- brg_certificate/tests/energy2400/pattern_test/pattern_test.json +8 -5
- brg_certificate/tests/energy2400/pattern_test/pattern_test.py +2 -1
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +20 -0
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +343 -0
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +20 -0
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +343 -0
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +14 -7
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +45 -57
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +14 -7
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +198 -125
- brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +7 -4
- brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +2 -1
- brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +13 -6
- brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +2 -1
- brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +14 -7
- brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +117 -124
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +7 -4
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +2 -1
- brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +18 -0
- brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +84 -0
- brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +21 -0
- brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +306 -0
- brg_certificate/wltPb_pb2.py +15 -15
- brg_certificate/wltPb_pb2.pyi +8 -2
- brg_certificate/wlt_types.py +2 -1
- gw_certificate/cert_results.py +11 -4
- gw_certificate/gw_certificate.py +0 -2
- gw_certificate/gw_certificate_cli.py +3 -3
- gw_certificate/interface/uart_if.py +1 -1
- gw_certificate/tests/actions.py +7 -1
- gw_certificate/tests/registration.py +2 -1
- gw_certificate/tests/uplink.py +26 -35
- {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/METADATA +46 -42
- {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/RECORD +120 -112
- {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/WHEEL +1 -1
- brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.json +0 -13
- brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.py +0 -76
- brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +0 -13
- brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +0 -398
- {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/entry_points.txt +0 -0
- {wiliot_certificate-1.5.0a1.dist-info → wiliot_certificate-1.5.2a1.dist-info/licenses}/LICENSE +0 -0
- {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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if
|
|
77
|
-
test.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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(
|
|
88
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,
|
|
116
|
-
received_signal_ind_pkts =
|
|
117
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
130
|
-
utPrint(f"Configuring BRG {
|
|
131
|
-
test =
|
|
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 {
|
|
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 {
|
|
136
|
-
|
|
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 =
|
|
141
|
-
if len(received_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"
|
|
144
|
-
|
|
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 =
|
|
149
|
-
rx_cycle, rx_rep =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
-
#
|
|
189
|
-
|
|
190
|
-
received_signal_ind_pkts =
|
|
191
|
-
if
|
|
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
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
#
|
|
199
|
-
|
|
200
|
-
received_signal_ind_pkts =
|
|
201
|
-
if
|
|
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
|
-
|
|
205
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
232
|
-
if len(received_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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
337
|
+
brg1_modules=[energy2400_module, ext_sensors_module])
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"module": "
|
|
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
|
-
"
|
|
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",
|
|
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": "
|
|
3
|
-
"module": "
|
|
4
|
-
"purpose": "Test configuration for all supported
|
|
5
|
-
"
|
|
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",
|
|
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
|
-
"
|
|
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": "
|
|
3
|
-
"module": "
|
|
4
|
-
"purpose": "
|
|
5
|
-
"
|
|
6
|
-
"initialCondition": "
|
|
7
|
-
"procedure": ["Test prolog",
|
|
8
|
-
"
|
|
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
|
}
|