wiliot-certificate 1.5.1a1__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/wlt_cmd_if.html +3 -2
- brg_certificate/brg_certificate_cli.py +18 -3
- brg_certificate/cert_common.py +82 -26
- brg_certificate/cert_data_sim.py +22 -4
- brg_certificate/cert_defines.py +10 -5
- brg_certificate/cert_gw_sim.py +4 -2
- brg_certificate/cert_mqtt.py +7 -6
- brg_certificate/cert_prints.py +14 -1
- brg_certificate/cert_protobuf.py +7 -7
- brg_certificate/cert_results.py +91 -64
- brg_certificate/cert_utils.py +9 -4
- brg_certificate/certificate_bcc_sanity_test_list.txt +10 -5
- brg_certificate/certificate_bcc_test_list.txt +14 -9
- brg_certificate/certificate_sanity_test_list.txt +10 -4
- brg_certificate/certificate_test_list.txt +13 -9
- brg_certificate/tests/calibration/interval_test/interval_test.json +2 -2
- brg_certificate/tests/calibration/output_power_test/output_power_test.json +3 -2
- brg_certificate/tests/calibration/pattern_test/pattern_test.json +2 -2
- brg_certificate/tests/calibration/pattern_test/pattern_test.py +25 -26
- brg_certificate/tests/datapath/aging_test/aging_test.json +4 -5
- brg_certificate/tests/datapath/aging_test/aging_test.py +39 -32
- brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +4 -2
- brg_certificate/tests/datapath/pattern_test/pattern_test.json +2 -2
- brg_certificate/tests/datapath/pattern_test/pattern_test.py +2 -1
- brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +3 -3
- 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 +2 -2
- 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 +2 -2
- brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -7
- brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +3 -3
- brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +7 -5
- brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +2 -2
- 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 +3 -3
- 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 +3 -3
- 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 +8 -8
- brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +102 -101
- brg_certificate/tests/datapath/stress_test/stress_test.json +14 -15
- brg_certificate/tests/datapath/stress_test/stress_test.py +102 -101
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +2 -2
- 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 +2 -2
- brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +8 -6
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +2 -2
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +2 -18
- brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +14 -8
- brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +13 -8
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +2 -2
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +22 -9
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +2 -2
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +6 -5
- brg_certificate/tests/edge_mgmt/{stat_test/stat_test.json → periodic_msgs_test/periodic_msgs_test.json} +3 -3
- 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 +3 -3
- brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +2 -1
- brg_certificate/tests/energy2400/output_power_test/output_power_test.json +4 -3
- brg_certificate/tests/energy2400/output_power_test/output_power_test.py +2 -1
- brg_certificate/tests/energy2400/pattern_test/pattern_test.json +3 -3
- 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 +5 -5
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +109 -112
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +5 -5
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +111 -114
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +12 -6
- 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 +4 -4
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +158 -172
- brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +2 -2
- brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +2 -1
- brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +4 -3
- 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 +13 -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 +2 -2
- 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/wlt_types.py +2 -1
- {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/METADATA +40 -40
- {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/RECORD +98 -94
- {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/WHEEL +1 -1
- {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/entry_points.txt +0 -0
- {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/licenses/LICENSE +0 -0
- {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/top_level.txt +0 -0
|
@@ -24,117 +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
|
-
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
|
-
#TODO: logging print
|
|
49
|
-
print(f" Found {len(signal_ind_pkts)} signal indicator pkts \n")
|
|
50
|
-
return signal_ind_pkts
|
|
51
|
-
|
|
52
|
-
def expected_signal_ind_pkts_calc(tx_brg, rx_brg):
|
|
53
|
-
if (tx_brg.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST):
|
|
54
|
-
tx_brg_ant_polarization_num = 2
|
|
55
|
-
else:
|
|
56
|
-
tx_brg_ant_polarization_num = 1
|
|
57
|
-
if (rx_brg.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST):
|
|
58
|
-
rx_brg_ant_polarization_num = 2
|
|
59
|
-
result = [(NUM_OF_SCANNING_CYCLE * tx_brg_ant_polarization_num * rx_brg_ant_polarization_num) - 1,
|
|
60
|
-
NUM_OF_SCANNING_CYCLE * tx_brg_ant_polarization_num * rx_brg_ant_polarization_num]
|
|
61
|
-
else:
|
|
62
|
-
rx_brg_ant_polarization_num = 1
|
|
63
|
-
result = [NUM_OF_SCANNING_CYCLE * tx_brg_ant_polarization_num * rx_brg_ant_polarization_num]
|
|
64
|
-
return result
|
|
65
|
-
|
|
66
|
-
def rssi_check(test, received_signal_ind_pkts ):
|
|
67
|
-
threshold_rssi = [0,80]
|
|
33
|
+
def rssi_check(test, received_signal_ind_pkts):
|
|
34
|
+
threshold_rssi = [0, 80]
|
|
68
35
|
for p in received_signal_ind_pkts:
|
|
69
|
-
#TODO: logging print
|
|
70
|
-
# print(f"rssi value: {p[RSSI]}")
|
|
71
36
|
if not threshold_rssi[0] < p[RSSI] < threshold_rssi[1]:
|
|
72
37
|
test.rc = TEST_FAILED
|
|
73
38
|
test.add_reason("rssi value is wrong, out of 0 to 80 ")
|
|
74
39
|
|
|
75
40
|
return test
|
|
76
41
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
#
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if len(get_polar_signal_ind_pkt(received_signal_ind_pkts, 0, 0)) != NUM_OF_SCANNING_CYCLE:
|
|
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:
|
|
86
50
|
test.rc = TEST_FAILED
|
|
87
|
-
test.add_reason("
|
|
51
|
+
test.add_reason(f"rx_ant=0 tx_ant=0 expected={NUM_OF_SCANNING_CYCLE} received={received}")
|
|
88
52
|
|
|
89
|
-
if tx_brg_.board_type in
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if len(get_polar_signal_ind_pkt(pkts=received_signal_ind_pkts, rx_ant=0, tx_ant=1)) != NUM_OF_SCANNING_CYCLE:
|
|
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:
|
|
93
56
|
test.rc = TEST_FAILED
|
|
94
|
-
test.add_reason("
|
|
95
|
-
|
|
96
|
-
if rx_brg_.board_type in
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if len(get_polar_signal_ind_pkt(received_signal_ind_pkts, 1, 0)) != NUM_OF_SCANNING_CYCLE:
|
|
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:
|
|
100
62
|
test.rc = TEST_FAILED
|
|
101
|
-
test.add_reason("
|
|
63
|
+
test.add_reason(f"rx_ant=1 tx_ant=0 expected={NUM_OF_SCANNING_CYCLE} received={received}")
|
|
102
64
|
|
|
103
|
-
if rx_brg_.board_type in
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if
|
|
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:
|
|
107
69
|
test.rc = TEST_FAILED
|
|
108
|
-
test.add_reason("
|
|
70
|
+
test.add_reason(f"rx_ant=1 tx_ant=1 expected={NUM_OF_SCANNING_CYCLE} received={received}")
|
|
109
71
|
return test
|
|
110
72
|
|
|
73
|
+
|
|
111
74
|
def get_polar_signal_ind_pkt(pkts, rx_ant, tx_ant):
|
|
112
|
-
for p in pkts:
|
|
113
|
-
#TODO: logging print
|
|
114
|
-
print(f" rx antenna: {p[SENSOR_PKT].pkt.rx_antenna}, tx antenna: {p[SENSOR_PKT].pkt.tx_antenna} ###### rx_ant: {rx_ant}, tx_ant: {tx_ant}")
|
|
115
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]
|
|
116
76
|
|
|
77
|
+
|
|
117
78
|
def output_power_check(test, received_signal_ind_pkts, tx_brg_):
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
79
|
+
|
|
80
|
+
datapath_module = cert_common.get_module_by_name(tx_brg_.modules, "Datapath")
|
|
81
|
+
output_power_default = datapath_module().output_power
|
|
121
82
|
|
|
122
83
|
for p in received_signal_ind_pkts:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
test.rc = TEST_FAILED
|
|
128
|
-
test.add_reason(f"output power of internal brg is incorrect! \n got:{p[SENSOR_PKT].pkt.out_power}, expected: {output_power_def_internal}\n")
|
|
129
|
-
else:
|
|
130
|
-
if p[SENSOR_PKT].pkt.output_power != output_power_def_not_internal:
|
|
131
|
-
test.rc = TEST_FAILED
|
|
132
|
-
test.add_reason(f"output power of active brg is incorrect! \n got:{p[SENSOR_PKT].pkt.output_power}, expected: {output_power_def_internal}\n")
|
|
84
|
+
if p[SENSOR_PKT].pkt.output_power != output_power_default:
|
|
85
|
+
test.rc = TEST_FAILED
|
|
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")
|
|
133
88
|
return test
|
|
134
89
|
|
|
135
90
|
|
|
136
91
|
def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
|
|
137
|
-
cycle, rep =
|
|
92
|
+
cycle, rep = 5, 4
|
|
138
93
|
tx_brg_ = test.brg0
|
|
139
94
|
rx_brg_ = test.brg1
|
|
140
95
|
rssi_threshold = -25
|
|
@@ -142,117 +97,131 @@ def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
|
|
|
142
97
|
utPrint(f"TX BRG with RX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
|
|
143
98
|
# configuring receiver #
|
|
144
99
|
utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver with RSSI Threshold of {rssi_threshold}", "BOLD")
|
|
145
|
-
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]
|
|
146
102
|
if test.rc == TEST_FAILED:
|
|
147
103
|
test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
|
|
148
104
|
return test
|
|
149
105
|
# configuring transmitter #
|
|
150
106
|
utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
|
|
151
|
-
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]
|
|
152
109
|
if test.rc == TEST_FAILED:
|
|
153
110
|
test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
|
|
154
111
|
return test
|
|
155
112
|
utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {cycle},"
|
|
156
113
|
f"repetition = {rep}", "BOLD")
|
|
157
114
|
# phase analysis #
|
|
158
|
-
mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME,
|
|
159
|
-
received_signal_ind_pkts =
|
|
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_)
|
|
160
117
|
for p in received_signal_ind_pkts:
|
|
161
118
|
print(f"rssi value: {p[RSSI]}")
|
|
162
|
-
rssi_threshold_viloation_pkts = [p for p in received_signal_ind_pkts if p[RSSI] >= -1*rssi_threshold]
|
|
119
|
+
rssi_threshold_viloation_pkts = [p for p in received_signal_ind_pkts if p[RSSI] >= -1 * rssi_threshold]
|
|
163
120
|
if rssi_threshold_viloation_pkts:
|
|
164
121
|
test.rc = TEST_FAILED
|
|
165
|
-
test.add_reason(f"rssi_threshold phase failed - BRG {rx_brg_.id_str} echoed"
|
|
166
|
-
|
|
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}")
|
|
167
124
|
return test
|
|
168
125
|
|
|
126
|
+
|
|
169
127
|
def test_brg0_rx_brg1_tx(test, energy2400_module, ext_sensors_module):
|
|
170
|
-
cycle_rep = [(30,3), (60,4)]
|
|
171
|
-
tx_brg_ = test.brg0
|
|
172
|
-
rx_brg_ = test.brg1
|
|
173
128
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
test
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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)
|
|
200
167
|
|
|
201
|
-
test = rx_tx_antenna_check(test, received_signal_ind_pkts, tx_brg_, rx_brg_)
|
|
202
|
-
test = output_power_check(test, received_signal_ind_pkts, tx_brg_)
|
|
203
|
-
test = rssi_check(test, received_signal_ind_pkts)
|
|
204
168
|
return test
|
|
205
169
|
|
|
170
|
+
|
|
206
171
|
def test_brg0_none_brg1_rx(test, energy2400_module, ext_sensors_module):
|
|
207
172
|
cycle, rep = ag.BRG_DEFAULT_SIGNAL_INDICATOR_CYCLE, ag.BRG_DEFAULT_SIGNAL_INDICATOR_REP
|
|
208
|
-
tx_brg_ = test.
|
|
173
|
+
tx_brg_ = test.brg1
|
|
209
174
|
rx_brg_ = test.brg1
|
|
210
175
|
utPrint(f"RX BRG without TX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
|
|
211
|
-
# configuring
|
|
212
|
-
utPrint(f"Configuring BRG {
|
|
213
|
-
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]
|
|
214
180
|
if test.rc == TEST_FAILED:
|
|
215
|
-
test.add_reason(f"BRG {
|
|
181
|
+
test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
|
|
216
182
|
return test
|
|
217
|
-
utPrint(f"BRG {
|
|
218
|
-
|
|
183
|
+
utPrint(f"BRG {rx_brg_.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
|
|
184
|
+
|
|
219
185
|
# phase analysis #
|
|
220
186
|
mqtt_scan_n_create_log_file(test, DEFAULT_SCAN_TIME, "brg0_none_brg1_rx")
|
|
221
187
|
expected_signal_ind_pkts = [0]
|
|
222
|
-
received_signal_ind_pkts =
|
|
188
|
+
received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
|
|
223
189
|
if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
|
|
224
190
|
test.rc = TEST_FAILED
|
|
225
191
|
test.add_reason(f"brg0_rx_brg1_tx phase failed - BRG {rx_brg_.id_str} received wrong number of "
|
|
226
|
-
|
|
227
|
-
|
|
192
|
+
f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
|
|
193
|
+
f"expected {expected_signal_ind_pkts} packets")
|
|
228
194
|
|
|
229
195
|
return test
|
|
230
196
|
|
|
197
|
+
|
|
231
198
|
def test_brg0_rxtx_brg1_rxtx(test, energy2400_module, ext_sensors_module):
|
|
232
|
-
tx_cycle, tx_rep =
|
|
233
|
-
rx_cycle, rx_rep =
|
|
199
|
+
tx_cycle, tx_rep = 5, 4
|
|
200
|
+
rx_cycle, rx_rep = 5, 4
|
|
234
201
|
tx_brg_ = test.brg0
|
|
235
202
|
rx_brg_ = test.brg1
|
|
236
|
-
utPrint(
|
|
203
|
+
utPrint("Both BRG's are transmitter and receivers, with different values\n", "BLUE")
|
|
237
204
|
# configuring first brg (tx_brg_) as receiver
|
|
238
205
|
utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
|
|
239
|
-
test =
|
|
206
|
+
test = cert_config.brg_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0],
|
|
207
|
+
values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
|
|
240
208
|
if test.rc == TEST_FAILED and test.exit_on_param_failure:
|
|
241
209
|
test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
|
|
242
210
|
return test
|
|
243
211
|
utPrint(f"BRG {tx_brg_.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
|
|
244
212
|
# configuring first brg (tx_brg_) as transmitter
|
|
245
213
|
utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
|
|
246
|
-
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]
|
|
247
216
|
if test.rc == TEST_FAILED and test.exit_on_param_failure:
|
|
248
217
|
test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
|
|
249
218
|
return test
|
|
250
|
-
utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle
|
|
251
|
-
f"repetition = {tx_rep}", "BOLD")
|
|
219
|
+
utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle={tx_cycle}, repetition={tx_rep}", "BOLD")
|
|
252
220
|
|
|
253
221
|
# configuring second brg (rx_brg_) as receiver
|
|
254
222
|
utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
|
|
255
|
-
test =
|
|
223
|
+
test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0],
|
|
224
|
+
values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
|
|
256
225
|
if test.rc == TEST_FAILED and test.exit_on_param_failure:
|
|
257
226
|
test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
|
|
258
227
|
return test
|
|
@@ -260,83 +229,84 @@ def test_brg0_rxtx_brg1_rxtx(test, energy2400_module, ext_sensors_module):
|
|
|
260
229
|
|
|
261
230
|
# configuring second brg (rx_brg_) as transmitter (already configured as rx)
|
|
262
231
|
utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
|
|
263
|
-
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]
|
|
264
234
|
if test.rc == TEST_FAILED and test.exit_on_param_failure:
|
|
265
235
|
test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
|
|
266
236
|
return test
|
|
267
|
-
utPrint(f"BRG {rx_brg_.id_str} configured to be transmitter - cycle
|
|
268
|
-
f"repetition = {rx_rep}")
|
|
237
|
+
utPrint(f"BRG {rx_brg_.id_str} configured to be transmitter - cycle={rx_cycle}, repetition={rx_rep}")
|
|
269
238
|
|
|
270
239
|
# phase analysis #
|
|
271
240
|
mqtt_scan_n_create_log_file(test, NUM_OF_SCANNING_CYCLE * max(tx_cycle, rx_cycle) + SCAN_DELAY_TIME, "brg0_rxtx_brg1_rxtx")
|
|
272
241
|
|
|
273
242
|
# Analyzing tx_brg_ performance as receiver
|
|
274
243
|
utPrint(f"Analyzing tx_brg {tx_brg_.id_str} performance as a Receiver\n", "BOLD")
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
|
|
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):
|
|
278
246
|
test.rc = TEST_FAILED
|
|
247
|
+
expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE)
|
|
279
248
|
test.add_reason(f"brg0_rxtx_brg1_rxtx phase failed - BRG {tx_brg_.id_str} received wrong number of "
|
|
280
|
-
|
|
281
|
-
|
|
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)
|
|
282
252
|
|
|
283
253
|
# Analyzing rx_brg_ performance as receiver
|
|
284
254
|
utPrint(f"Analyzing rx_brg {rx_brg_.id_str} performance as a Receiver\n", "BOLD")
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
|
|
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):
|
|
288
257
|
test.rc = TEST_FAILED
|
|
258
|
+
expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tx_brg_, rx_brg_, NUM_OF_SCANNING_CYCLE)
|
|
289
259
|
test.add_reason(f"brg0_rxtx_brg1_rxtx phase failed - BRG {rx_brg_.id_str} received wrong number of "
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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
|
|
293
264
|
return test
|
|
294
265
|
|
|
266
|
+
|
|
295
267
|
def test_brg0_tx_brg1_none(test, energy2400_module, ext_sensors_module):
|
|
296
268
|
# Tx BRG without rx. just waiting for packets to be sent from the transmitter and verify
|
|
297
269
|
# The receiver isn't receiving any signal indicator packets.
|
|
298
|
-
cycle, rep =
|
|
270
|
+
cycle, rep = 4, 3
|
|
299
271
|
tx_brg_ = test.brg0
|
|
300
272
|
rx_brg_ = test.brg1
|
|
301
273
|
utPrint(f"TX BRG without RX - cycle = {cycle}, repetition = {rep}\n", "BLUE")
|
|
302
|
-
# restore default configuration for receiver #
|
|
303
|
-
utPrint(f"Configuring BRG {rx_brg_.id_str} to default", "BOLD")
|
|
304
|
-
test = cert_config.config_brg1_defaults(test, modules=[energy2400_module, ext_sensors_module])[0]
|
|
305
|
-
if test.rc == TEST_FAILED:
|
|
306
|
-
test.add_reason(f"BRG {rx_brg_.id_str}: didn't revert to default configuration!")
|
|
307
|
-
return test
|
|
308
274
|
# configuring transmitter #
|
|
309
275
|
utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
|
|
310
|
-
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]
|
|
311
278
|
if test.rc == TEST_FAILED:
|
|
312
279
|
test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
|
|
313
280
|
return test
|
|
314
281
|
|
|
315
282
|
# phase analysis #
|
|
316
|
-
mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE*cycle) + SCAN_DELAY_TIME, "brg0_tx_brg1_none")
|
|
283
|
+
mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, "brg0_tx_brg1_none")
|
|
317
284
|
expected_signal_ind_pkts = [0]
|
|
318
|
-
received_signal_ind_pkts =
|
|
285
|
+
received_signal_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
|
|
319
286
|
if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
|
|
320
287
|
test.rc = TEST_FAILED
|
|
321
288
|
test.add_reason(f"brg0_tx_brg1_none phase failed - received signal indicator packet from BRG"
|
|
322
|
-
|
|
289
|
+
f"{rx_brg_.id_str}")
|
|
323
290
|
test = output_power_check(test, received_signal_ind_pkts, tx_brg_)
|
|
324
291
|
|
|
325
292
|
return test
|
|
326
293
|
|
|
327
|
-
|
|
294
|
+
|
|
295
|
+
SIGNAL_INDICATOR_TEST_MAP = {"rssi_threshold": test_rssi_threshold, "brg0_rx_brg1_tx": test_brg0_rx_brg1_tx,
|
|
328
296
|
"brg0_none_brg1_rx": test_brg0_none_brg1_rx, "brg0_rxtx_brg1_rxtx": test_brg0_rxtx_brg1_rxtx,
|
|
329
297
|
"brg0_tx_brg1_none": test_brg0_tx_brg1_none}
|
|
330
298
|
|
|
299
|
+
|
|
331
300
|
def run(test):
|
|
301
|
+
# Test prolog
|
|
302
|
+
test = cert_common.test_prolog(test)
|
|
303
|
+
|
|
332
304
|
# Test modules evaluation #
|
|
333
305
|
energy2400_module = eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}')
|
|
334
306
|
ext_sensors_module = eval_pkt(f'ModuleExtSensorsV{test.active_brg.api_version}')
|
|
335
307
|
|
|
336
|
-
# Test prolog
|
|
337
|
-
test = cert_common.test_prolog(test)
|
|
338
308
|
for param in test.params:
|
|
339
|
-
|
|
309
|
+
phase_run_print(param.name)
|
|
340
310
|
test = SIGNAL_INDICATOR_TEST_MAP[param.value](test, energy2400_module, ext_sensors_module)
|
|
341
311
|
generate_log_file(test, param.name)
|
|
342
312
|
field_functionality_pass_fail_print(test, param.name)
|
|
@@ -346,6 +316,22 @@ def run(test):
|
|
|
346
316
|
break
|
|
347
317
|
else:
|
|
348
318
|
test.reset_result()
|
|
349
|
-
|
|
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
|
+
|
|
350
336
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[energy2400_module, ext_sensors_module],
|
|
351
|
-
|
|
337
|
+
brg1_modules=[energy2400_module, ext_sensors_module])
|
|
@@ -1,6 +1,6 @@
|
|
|
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",
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"module": "
|
|
4
|
-
"purpose": "Test configuration for all supported
|
|
2
|
+
"name": "Pattern",
|
|
3
|
+
"module": "Energizer Sub-1GHz",
|
|
4
|
+
"purpose": "Test configuration for all supported energy_sub1g pattern 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
7
|
"procedure": ["Test prolog",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"mandatory": 1,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
|
+
"internalBridge": 1,
|
|
14
15
|
"allSupportedValues": ["SUB1G_ENERGY_PATTERN_NO_ENERGIZING", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000",
|
|
15
16
|
"SUB1G_ENERGY_PATTERN_FCC_HOPPING", "SUB1G_ENERGY_PATTERN_JAPAN_1W",
|
|
16
17
|
"SUB1G_ENERGY_PATTERN_JAPAN_350MW", "SUB1G_ENERGY_PATTERN_KOREA",
|
|
@@ -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,11 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"module": "
|
|
4
|
-
"purpose": "
|
|
5
|
-
"documentation": "
|
|
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,
|