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.
Files changed (98) hide show
  1. brg_certificate/ag/wlt_cmd_if.html +3 -2
  2. brg_certificate/brg_certificate_cli.py +18 -3
  3. brg_certificate/cert_common.py +82 -26
  4. brg_certificate/cert_data_sim.py +22 -4
  5. brg_certificate/cert_defines.py +10 -5
  6. brg_certificate/cert_gw_sim.py +4 -2
  7. brg_certificate/cert_mqtt.py +7 -6
  8. brg_certificate/cert_prints.py +14 -1
  9. brg_certificate/cert_protobuf.py +7 -7
  10. brg_certificate/cert_results.py +91 -64
  11. brg_certificate/cert_utils.py +9 -4
  12. brg_certificate/certificate_bcc_sanity_test_list.txt +10 -5
  13. brg_certificate/certificate_bcc_test_list.txt +14 -9
  14. brg_certificate/certificate_sanity_test_list.txt +10 -4
  15. brg_certificate/certificate_test_list.txt +13 -9
  16. brg_certificate/tests/calibration/interval_test/interval_test.json +2 -2
  17. brg_certificate/tests/calibration/output_power_test/output_power_test.json +3 -2
  18. brg_certificate/tests/calibration/pattern_test/pattern_test.json +2 -2
  19. brg_certificate/tests/calibration/pattern_test/pattern_test.py +25 -26
  20. brg_certificate/tests/datapath/aging_test/aging_test.json +4 -5
  21. brg_certificate/tests/datapath/aging_test/aging_test.py +39 -32
  22. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +2 -2
  23. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +12 -11
  24. brg_certificate/tests/datapath/output_power_test/output_power_test.json +2 -2
  25. brg_certificate/tests/datapath/output_power_test/output_power_test.py +2 -1
  26. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +3 -3
  27. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +6 -3
  28. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +2 -2
  29. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +6 -3
  30. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +2 -2
  31. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +4 -2
  32. brg_certificate/tests/datapath/pattern_test/pattern_test.json +2 -2
  33. brg_certificate/tests/datapath/pattern_test/pattern_test.py +2 -1
  34. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +3 -3
  35. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +12 -5
  36. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +2 -2
  37. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +11 -6
  38. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +2 -2
  39. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -7
  40. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +3 -3
  41. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +7 -5
  42. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +2 -2
  43. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +7 -3
  44. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +3 -3
  45. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +107 -73
  46. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +3 -3
  47. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +128 -118
  48. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +8 -8
  49. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +102 -101
  50. brg_certificate/tests/datapath/stress_test/stress_test.json +14 -15
  51. brg_certificate/tests/datapath/stress_test/stress_test.py +102 -101
  52. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +2 -2
  53. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +7 -2
  54. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +2 -2
  55. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +8 -6
  56. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +2 -2
  57. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +2 -18
  58. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +14 -8
  59. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +13 -8
  60. brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +2 -2
  61. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +22 -9
  62. brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +2 -2
  63. brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +6 -5
  64. brg_certificate/tests/edge_mgmt/{stat_test/stat_test.json → periodic_msgs_test/periodic_msgs_test.json} +3 -3
  65. brg_certificate/tests/edge_mgmt/{stat_test/stat_test.py → periodic_msgs_test/periodic_msgs_test.py} +4 -4
  66. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +3 -3
  67. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +2 -1
  68. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +4 -3
  69. brg_certificate/tests/energy2400/output_power_test/output_power_test.py +2 -1
  70. brg_certificate/tests/energy2400/pattern_test/pattern_test.json +3 -3
  71. brg_certificate/tests/energy2400/pattern_test/pattern_test.py +2 -1
  72. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +5 -5
  73. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +109 -112
  74. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +5 -5
  75. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +111 -114
  76. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +12 -6
  77. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +45 -57
  78. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +4 -4
  79. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +158 -172
  80. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +2 -2
  81. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +2 -1
  82. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +4 -3
  83. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +2 -1
  84. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +13 -7
  85. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +117 -124
  86. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +2 -2
  87. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +2 -1
  88. brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +18 -0
  89. brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +84 -0
  90. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +21 -0
  91. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +306 -0
  92. brg_certificate/wlt_types.py +2 -1
  93. {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/METADATA +40 -40
  94. {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/RECORD +98 -94
  95. {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/WHEEL +1 -1
  96. {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/entry_points.txt +0 -0
  97. {wiliot_certificate-1.5.1a1.dist-info → wiliot_certificate-1.5.2a1.dist-info}/licenses/LICENSE +0 -0
  98. {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
- 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
- #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
- def rx_tx_antenna_check(test, received_signal_ind_pkts , tx_brg_, rx_brg_ ):
78
- #TODO: logging print
79
- # print(f"length of received signal indicator pkts: {len(received_signal_ind_pkts)}\n ")
80
- # print(f"tx_brg board_type:{tx_brg_.board_type}\n")
81
- # print(f"rx_brg board_type:{rx_brg_.board_type}\n")
82
-
83
- list = get_polar_signal_ind_pkt(received_signal_ind_pkts,0,0)
84
- print(f"polar signal ind pkt 0,0: {list}")
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("incorrect num of packets with (0,0)!")
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 BOARD_TYPES_2_POLARIZATION_ANT_LIST:
90
- list = get_polar_signal_ind_pkt(received_signal_ind_pkts,0,1)
91
- print(f"polar signal ind pkt 0,1: {list}")
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("incorrect num of packets with (0,1)")
95
-
96
- if rx_brg_.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST:
97
- list = get_polar_signal_ind_pkt(received_signal_ind_pkts,1,0)
98
- print(f"polar signal ind pkt 1,0: {list}")
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("incorrect num of packets with (1,0)")
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 BOARD_TYPES_2_POLARIZATION_ANT_LIST and tx_brg_.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST:
104
- list = get_polar_signal_ind_pkt(received_signal_ind_pkts,1,1)
105
- print(f"polar signal ind pkt 1,1: {list}")
106
- if len(get_polar_signal_ind_pkt(received_signal_ind_pkts, 1, 1)) != NUM_OF_SCANNING_CYCLE:
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("incorrect num of packets with (1,1)")
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
- #TODO: verify that in this implement it corresponding to the current board. and verify situation that we have 2 different board type.
119
- output_power_def_internal = ag.BRG_DEFAULT_OUTPUT_POWER_2_4
120
- output_power_def_not_internal = ag.BRG_DEFAULT_DATAPATH_OUTPUT_POWER
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
- print(p[SENSOR_PKT].pkt)
124
- # NOTE: generic way to identify if the brg is internal or not
125
- if len(tx_brg_.__dict__["sup_caps"]) == 3 : # which mean it's internal bridge
126
- if p[SENSOR_PKT].pkt.output_power != output_power_def_internal:
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 = 30, 3
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 = 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]
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 = 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]
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, f"rssi_threshold")
159
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
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
- 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}")
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
- for cycle,rep in cycle_rep:
175
- utPrint(f"TX BRG with RX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
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], values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
179
- if test.rc == TEST_FAILED:
180
- test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
181
- return test
182
- # configuring transmitter #
183
- utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
184
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
185
- if test.rc == TEST_FAILED:
186
- test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
187
- return test
188
- utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {cycle},"
189
- f"repetition = {rep}", "BOLD")
190
- # phase analysis #
191
- mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"brg0_rx_brg1_tx_{cycle}_{rep}")
192
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
193
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(tx_brg_, rx_brg_)
194
-
195
- if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
196
- test.rc = TEST_FAILED
197
- test.add_reason(f"brg0_rx_brg1_tx phase failed - BRG {rx_brg_.id_str} received wrong number of "
198
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
199
- f"expected {expected_signal_ind_pkts} packets")
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.brg0
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 transmitter to no TX #
212
- utPrint(f"Configuring BRG {tx_brg_.id_str} to default", "BOLD")
213
- 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]
214
180
  if test.rc == TEST_FAILED:
215
- 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!")
216
182
  return test
217
- utPrint(f"BRG {tx_brg_.id_str} configured to default!!! cycle = {cycle},"
218
- f"repetition = {rep}", "BOLD")
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 = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
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
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
227
- f"expected {expected_signal_ind_pkts} packets")
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 = 15,4
233
- rx_cycle, rx_rep = 16,4
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(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")
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 = 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]
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 = 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]
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 = {tx_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 = 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]
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 = 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]
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 = {rx_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
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(rx_brg_, tx_brg_)
276
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=tx_brg_, tx_brg=rx_brg_)
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
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
281
- f"expected {expected_signal_ind_pkts} packets")
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
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(tx_brg_, rx_brg_)
286
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
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
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
291
- f"expected {expected_signal_ind_pkts} packets")
292
- #NOTE: I skipped the antenna and output power checks for this phase
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 = 15,3
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 = 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]
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 = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
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
- f"{rx_brg_.id_str}")
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
- 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,
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
- functionality_run_print(param.name)
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
- brg1_modules=[energy2400_module, ext_sensors_module])
337
+ brg1_modules=[energy2400_module, ext_sensors_module])
@@ -1,6 +1,6 @@
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
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": "pattern_test",
3
- "module": "energy_sub1g",
4
- "purpose": "Test configuration for all supported Energy SUB1GHz pattern values",
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": "signal_indicator_functionality_test",
3
- "module": "energy_sub1g",
4
- "purpose": "TODO",
5
- "documentation": "<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,