wiliot-certificate 1.4.0a2__py3-none-any.whl → 1.5.1a1__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 (130) hide show
  1. brg_certificate/ag/energous_v0_defines.py +28 -28
  2. brg_certificate/ag/energous_v1_defines.py +28 -28
  3. brg_certificate/ag/energous_v2_defines.py +28 -28
  4. brg_certificate/ag/energous_v3_defines.py +28 -28
  5. brg_certificate/ag/energous_v4_defines.py +28 -28
  6. brg_certificate/ag/fanstel_lan_v0_defines.py +28 -28
  7. brg_certificate/ag/fanstel_lte_v0_defines.py +28 -28
  8. brg_certificate/ag/fanstel_wifi_v0_defines.py +28 -28
  9. brg_certificate/ag/minew_lte_v0_defines.py +28 -28
  10. brg_certificate/ag/wlt_cmd_if.html +1 -1
  11. brg_certificate/ag/wlt_types.html +3 -4
  12. brg_certificate/ag/wlt_types_ag.py +162 -163
  13. brg_certificate/brg_certificate.py +46 -12
  14. brg_certificate/brg_certificate_cli.py +1 -0
  15. brg_certificate/cert_common.py +31 -42
  16. brg_certificate/cert_config.py +7 -5
  17. brg_certificate/cert_data_sim.py +26 -4
  18. brg_certificate/cert_defines.py +30 -3
  19. brg_certificate/cert_gw_sim.py +12 -8
  20. brg_certificate/cert_mqtt.py +10 -2
  21. brg_certificate/cert_prints.py +7 -5
  22. brg_certificate/cert_protobuf.py +5 -1
  23. brg_certificate/cert_results.py +134 -84
  24. brg_certificate/cert_utils.py +14 -17
  25. brg_certificate/certificate_bcc_sanity_test_list.txt +35 -0
  26. brg_certificate/certificate_bcc_test_list.txt +45 -0
  27. brg_certificate/certificate_sanity_test_list.txt +2 -1
  28. brg_certificate/certificate_test_list.txt +10 -4
  29. brg_certificate/restore_brg.py +2 -0
  30. brg_certificate/tests/calibration/interval_test/interval_test.json +2 -1
  31. brg_certificate/tests/calibration/interval_test/interval_test.py +1 -1
  32. brg_certificate/tests/calibration/output_power_test/output_power_test.json +5 -3
  33. brg_certificate/tests/calibration/output_power_test/output_power_test.py +1 -1
  34. brg_certificate/tests/calibration/pattern_test/pattern_test.json +5 -2
  35. brg_certificate/tests/calibration/pattern_test/pattern_test.py +1 -1
  36. brg_certificate/tests/datapath/aging_test/aging_test.json +20 -0
  37. brg_certificate/tests/datapath/aging_test/aging_test.py +135 -0
  38. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +8 -3
  39. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +2 -2
  40. brg_certificate/tests/datapath/output_power_test/output_power_test.json +5 -2
  41. brg_certificate/tests/datapath/output_power_test/output_power_test.py +1 -1
  42. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +5 -2
  43. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +1 -1
  44. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +5 -2
  45. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +2 -2
  46. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +5 -2
  47. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +1 -1
  48. brg_certificate/tests/datapath/pattern_test/pattern_test.json +6 -3
  49. brg_certificate/tests/datapath/pattern_test/pattern_test.py +1 -1
  50. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +8 -2
  51. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +1 -1
  52. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +8 -2
  53. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +1 -1
  54. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +8 -2
  55. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +1 -1
  56. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +6 -2
  57. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +1 -1
  58. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +5 -2
  59. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +1 -1
  60. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +3 -4
  61. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +1 -1
  62. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +3 -4
  63. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +1 -1
  64. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +14 -22
  65. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +24 -24
  66. brg_certificate/tests/datapath/stress_test/stress_test.json +11 -18
  67. brg_certificate/tests/datapath/stress_test/stress_test.py +20 -27
  68. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +6 -2
  69. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +1 -1
  70. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +6 -2
  71. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +1 -1
  72. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +2 -1
  73. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +4 -24
  74. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +2 -1
  75. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +1 -1
  76. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +2 -1
  77. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.py +1 -1
  78. brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +9 -5
  79. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +4 -4
  80. brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +9 -5
  81. brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +45 -1
  82. brg_certificate/tests/edge_mgmt/stat_test/stat_test.json +2 -1
  83. brg_certificate/tests/edge_mgmt/stat_test/stat_test.py +1 -1
  84. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +5 -2
  85. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +1 -1
  86. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +5 -3
  87. brg_certificate/tests/energy2400/output_power_test/output_power_test.py +1 -1
  88. brg_certificate/tests/energy2400/pattern_test/pattern_test.json +5 -2
  89. brg_certificate/tests/energy2400/pattern_test/pattern_test.py +1 -1
  90. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +20 -0
  91. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +346 -0
  92. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +20 -0
  93. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +346 -0
  94. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +2 -1
  95. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +1 -1
  96. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +12 -5
  97. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +130 -43
  98. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +5 -2
  99. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +1 -1
  100. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +9 -3
  101. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +1 -1
  102. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +2 -1
  103. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +1 -1
  104. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +5 -2
  105. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +1 -1
  106. brg_certificate/wltPb_pb2.py +50 -38
  107. brg_certificate/wltPb_pb2.pyi +40 -34
  108. brg_certificate/wlt_types.py +4 -6
  109. common/wlt_logo.png +0 -0
  110. gw_certificate/ag/ut_defines.py +4 -1
  111. gw_certificate/cert_results.py +145 -0
  112. gw_certificate/gw_certificate.py +18 -6
  113. gw_certificate/gw_certificate_cli.py +3 -3
  114. gw_certificate/interface/mqtt.py +1 -0
  115. gw_certificate/interface/uart_if.py +1 -1
  116. gw_certificate/tests/actions.py +7 -2
  117. gw_certificate/tests/connection.py +1 -1
  118. gw_certificate/tests/generic.py +43 -17
  119. gw_certificate/tests/registration.py +2 -1
  120. gw_certificate/tests/uplink.py +26 -35
  121. {wiliot_certificate-1.4.0a2.dist-info → wiliot_certificate-1.5.1a1.dist-info}/METADATA +16 -10
  122. {wiliot_certificate-1.4.0a2.dist-info → wiliot_certificate-1.5.1a1.dist-info}/RECORD +126 -120
  123. {wiliot_certificate-1.4.0a2.dist-info → wiliot_certificate-1.5.1a1.dist-info}/WHEEL +1 -1
  124. {wiliot_certificate-1.4.0a2.dist-info → wiliot_certificate-1.5.1a1.dist-info}/top_level.txt +1 -0
  125. brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.json +0 -13
  126. brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.py +0 -76
  127. brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +0 -13
  128. brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +0 -398
  129. {wiliot_certificate-1.4.0a2.dist-info → wiliot_certificate-1.5.1a1.dist-info}/entry_points.txt +0 -0
  130. {wiliot_certificate-1.4.0a2.dist-info → wiliot_certificate-1.5.1a1.dist-info/licenses}/LICENSE +0 -0
@@ -45,6 +45,8 @@ def get_all_signal_ind_pkt(test=None, rx_brg=None, tx_brg=None):
45
45
  for p in all_sensor_packets:
46
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
47
  signal_ind_pkts.append(p)
48
+ #TODO: logging print
49
+ print(f" Found {len(signal_ind_pkts)} signal indicator pkts \n")
48
50
  return signal_ind_pkts
49
51
 
50
52
  def expected_signal_ind_pkts_calc(tx_brg, rx_brg):
@@ -54,42 +56,83 @@ def expected_signal_ind_pkts_calc(tx_brg, rx_brg):
54
56
  tx_brg_ant_polarization_num = 1
55
57
  if (rx_brg.board_type in BOARD_TYPES_2_POLARIZATION_ANT_LIST):
56
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]
57
61
  else:
58
62
  rx_brg_ant_polarization_num = 1
59
- return NUM_OF_SCANNING_CYCLE * tx_brg_ant_polarization_num * rx_brg_ant_polarization_num
63
+ result = [NUM_OF_SCANNING_CYCLE * tx_brg_ant_polarization_num * rx_brg_ant_polarization_num]
64
+ return result
60
65
 
61
- def test_brg0_rx_brg1_tx(test, energy2400_module, ext_sensors_module):
62
- cycle_rep = [(30,3), (60,4)]
63
- tx_brg_ = test.brg0
64
- rx_brg_ = test.brg1
65
- for cycle,rep in cycle_rep:
66
- utPrint(f"TX BRG with RX- cycle = {cycle}, repetition = {rep}\n", "BLUE")
67
- # configuring receiver #
68
- utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Receiver", "BOLD")
69
- test = cert_config.brg1_configure(test=test, module=ext_sensors_module, fields=[BRG_SENSOR0], values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
70
- if test.rc == TEST_FAILED:
71
- test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
72
- return test
73
- # configuring transmitter #
74
- utPrint(f"Configuring BRG {tx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
75
- test = cert_config.brg_configure(test=test, module=energy2400_module, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP], values=[cycle, rep])[0]
76
- if test.rc == TEST_FAILED:
77
- test.add_reason(f"BRG {tx_brg_.id_str}: didn't receive signal indicator transmitter configuration!")
78
- return test
79
- utPrint(f"BRG {tx_brg_.id_str} configured to be transmitter - cycle = {cycle},"
80
- f"repetition = {rep}", "BOLD")
81
- # phase analysis #
82
- mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"brg0_rx_brg1_tx_{cycle}_{rep}")
83
- expected_signal_ind_pkts = expected_signal_ind_pkts_calc(tx_brg_, rx_brg_)
84
- received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
85
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
66
+ def rssi_check(test, received_signal_ind_pkts ):
67
+ threshold_rssi = [0,80]
68
+ for p in received_signal_ind_pkts:
69
+ #TODO: logging print
70
+ # print(f"rssi value: {p[RSSI]}")
71
+ if not threshold_rssi[0] < p[RSSI] < threshold_rssi[1]:
86
72
  test.rc = TEST_FAILED
87
- test.add_reason(f"brg0_rx_brg1_tx phase failed - BRG {rx_brg_.id_str} received wrong number of "
88
- f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
89
- f"expected {expected_signal_ind_pkts} packets")
90
- if test.rc == TEST_FAILED: return test
73
+ test.add_reason("rssi value is wrong, out of 0 to 80 ")
74
+
75
+ return test
76
+
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:
86
+ test.rc = TEST_FAILED
87
+ test.add_reason("incorrect num of packets with (0,0)!")
88
+
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:
93
+ 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:
100
+ test.rc = TEST_FAILED
101
+ test.add_reason("incorrect num of packets with (1,0)")
102
+
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:
107
+ test.rc = TEST_FAILED
108
+ test.add_reason("incorrect num of packets with (1,1)")
109
+ return test
110
+
111
+ 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
+ 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
+
117
+ 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
121
+
122
+ 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")
91
133
  return test
92
134
 
135
+
93
136
  def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
94
137
  cycle, rep = 30, 3
95
138
  tx_brg_ = test.brg0
@@ -114,6 +157,8 @@ def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
114
157
  # phase analysis #
115
158
  mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"rssi_threshold")
116
159
  received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
160
+ for p in received_signal_ind_pkts:
161
+ print(f"rssi value: {p[RSSI]}")
117
162
  rssi_threshold_viloation_pkts = [p for p in received_signal_ind_pkts if p[RSSI] >= -1*rssi_threshold]
118
163
  if rssi_threshold_viloation_pkts:
119
164
  test.rc = TEST_FAILED
@@ -121,6 +166,43 @@ def test_rssi_threshold(test, energy2400_module, ext_sensors_module):
121
166
  f" {len(rssi_threshold_viloation_pkts)} signal indicator packets\n with RSSI weaker than {rssi_threshold}")
122
167
  return test
123
168
 
169
+ 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
+
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")
200
+
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
+ return test
205
+
124
206
  def test_brg0_none_brg1_rx(test, energy2400_module, ext_sensors_module):
125
207
  cycle, rep = ag.BRG_DEFAULT_SIGNAL_INDICATOR_CYCLE, ag.BRG_DEFAULT_SIGNAL_INDICATOR_REP
126
208
  tx_brg_ = test.brg0
@@ -136,12 +218,14 @@ def test_brg0_none_brg1_rx(test, energy2400_module, ext_sensors_module):
136
218
  f"repetition = {rep}", "BOLD")
137
219
  # phase analysis #
138
220
  mqtt_scan_n_create_log_file(test, DEFAULT_SCAN_TIME, "brg0_none_brg1_rx")
139
- expected_signal_ind_pkts = 0
221
+ expected_signal_ind_pkts = [0]
140
222
  received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
141
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
223
+ if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
142
224
  test.rc = TEST_FAILED
143
- test.add_reason(f"brg0_none_brg1_rx phase failed - received signal indicator packet from BRG"
144
- f"{rx_brg_.id_str}")
225
+ 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")
228
+
145
229
  return test
146
230
 
147
231
  def test_brg0_rxtx_brg1_rxtx(test, energy2400_module, ext_sensors_module):
@@ -173,6 +257,7 @@ def test_brg0_rxtx_brg1_rxtx(test, energy2400_module, ext_sensors_module):
173
257
  test.add_reason(f"BRG {rx_brg_.id_str}: didn't receive signal indicator receiver configuration!")
174
258
  return test
175
259
  utPrint(f"BRG {rx_brg_.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
260
+
176
261
  # configuring second brg (rx_brg_) as transmitter (already configured as rx)
177
262
  utPrint(f"Configuring BRG {rx_brg_.id_str} as Signal Indicator Transmitter", "BOLD")
178
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]
@@ -185,24 +270,26 @@ def test_brg0_rxtx_brg1_rxtx(test, energy2400_module, ext_sensors_module):
185
270
  # phase analysis #
186
271
  mqtt_scan_n_create_log_file(test, NUM_OF_SCANNING_CYCLE * max(tx_cycle, rx_cycle) + SCAN_DELAY_TIME, "brg0_rxtx_brg1_rxtx")
187
272
 
188
- # Analysing brg0 as a receiver
273
+ # Analyzing tx_brg_ performance as receiver
274
+ utPrint(f"Analyzing tx_brg {tx_brg_.id_str} performance as a Receiver\n", "BOLD")
189
275
  expected_signal_ind_pkts = expected_signal_ind_pkts_calc(rx_brg_, tx_brg_)
190
276
  received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=tx_brg_, tx_brg=rx_brg_)
191
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
277
+ if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
192
278
  test.rc = TEST_FAILED
193
279
  test.add_reason(f"brg0_rxtx_brg1_rxtx phase failed - BRG {tx_brg_.id_str} received wrong number of "
194
280
  f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
195
281
  f"expected {expected_signal_ind_pkts} packets")
196
- if test.rc == TEST_FAILED: return test
197
282
 
198
- # Analysing brg1 as a receiver
283
+ # Analyzing rx_brg_ performance as receiver
284
+ utPrint(f"Analyzing rx_brg {rx_brg_.id_str} performance as a Receiver\n", "BOLD")
199
285
  expected_signal_ind_pkts = expected_signal_ind_pkts_calc(tx_brg_, rx_brg_)
200
286
  received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
201
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
287
+ if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
202
288
  test.rc = TEST_FAILED
203
289
  test.add_reason(f"brg0_rxtx_brg1_rxtx phase failed - BRG {rx_brg_.id_str} received wrong number of "
204
290
  f"signal indicator packets\n received {len(received_signal_ind_pkts)} packets, "
205
291
  f"expected {expected_signal_ind_pkts} packets")
292
+ #NOTE: I skipped the antenna and output power checks for this phase
206
293
  return test
207
294
 
208
295
  def test_brg0_tx_brg1_none(test, energy2400_module, ext_sensors_module):
@@ -227,12 +314,14 @@ def test_brg0_tx_brg1_none(test, energy2400_module, ext_sensors_module):
227
314
 
228
315
  # phase analysis #
229
316
  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
317
+ expected_signal_ind_pkts = [0]
231
318
  received_signal_ind_pkts = get_all_signal_ind_pkt(test=test, rx_brg=rx_brg_, tx_brg=tx_brg_)
232
- if len(received_signal_ind_pkts) != expected_signal_ind_pkts:
319
+ if len(received_signal_ind_pkts) not in expected_signal_ind_pkts:
233
320
  test.rc = TEST_FAILED
234
321
  test.add_reason(f"brg0_tx_brg1_none phase failed - received signal indicator packet from BRG"
235
322
  f"{rx_brg_.id_str}")
323
+ test = output_power_check(test, received_signal_ind_pkts, tx_brg_)
324
+
236
325
  return test
237
326
 
238
327
  SIGNAL_INDICATOR_TEST_MAP = {"rssi_threshold" : test_rssi_threshold, "brg0_rx_brg1_tx": test_brg0_rx_brg1_tx,
@@ -240,14 +329,12 @@ SIGNAL_INDICATOR_TEST_MAP = {"rssi_threshold" : test_rssi_threshold, "brg0_rx_br
240
329
  "brg0_tx_brg1_none": test_brg0_tx_brg1_none}
241
330
 
242
331
  def run(test):
243
-
244
332
  # Test modules evaluation #
245
333
  energy2400_module = eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}')
246
334
  ext_sensors_module = eval_pkt(f'ModuleExtSensorsV{test.active_brg.api_version}')
247
335
 
248
336
  # Test prolog
249
337
  test = cert_common.test_prolog(test)
250
-
251
338
  for param in test.params:
252
339
  functionality_run_print(param.name)
253
340
  test = SIGNAL_INDICATOR_TEST_MAP[param.value](test, energy2400_module, ext_sensors_module)
@@ -2,12 +2,15 @@
2
2
  "name": "duty_cycle_test",
3
3
  "module": "energy_sub1g",
4
4
  "purpose": "Test configuration for supported energy_sub1g duty cycle & bridge cycle sets of values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Sub1-Ghz-Energizer-module",
6
6
  "initialCondition": "Bridge configured to defaults",
7
- "procedure": ["Test prolog", "Configurations", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "For each supported value - configure the BRG and verify the value",
9
+ "Test epilog and revert to defaults"],
8
10
  "expectedOutcome": "All values configured successfully",
9
11
  "mandatory": 1,
10
12
  "multiBridgeTest": 0,
11
13
  "gwOnlyTest": 0,
14
+ "internalBridge": 1,
12
15
  "allSupportedValues": [15, 20, 40, 0]
13
16
  }
@@ -10,7 +10,7 @@ def run(test):
10
10
  sub1g_module = eval_pkt(f'ModuleEnergySub1GV{test.active_brg.api_version}')
11
11
 
12
12
  test = cert_common.test_prolog(test)
13
- if test.rc == TEST_FAILED or test.reason != TEST_SUCCESS:
13
+ if test.rc == TEST_FAILED:
14
14
  return cert_common.test_epilog(test)
15
15
  for param in test.params:
16
16
  param_name = f"{param.name}"
@@ -2,12 +2,18 @@
2
2
  "name": "pattern_test",
3
3
  "module": "energy_sub1g",
4
4
  "purpose": "Test configuration for all supported Energy SUB1GHz pattern values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Sub1-Ghz-Energizer-module",
6
6
  "initialCondition": "Bridge configured to defaults",
7
- "procedure": ["Test prolog", "Configurations", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "For each supported value - configure the BRG and verify the value",
9
+ "Test epilog and revert to defaults"],
8
10
  "expectedOutcome": "All values configured successfully",
9
11
  "mandatory": 1,
10
12
  "multiBridgeTest": 0,
11
13
  "gwOnlyTest": 0,
12
- "allSupportedValues": ["SUB1G_ENERGY_PATTERN_NO_ENERGIZING", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000", "SUB1G_ENERGY_PATTERN_FCC_HOPPING", "SUB1G_ENERGY_PATTERN_JAPAN_1W", "SUB1G_ENERGY_PATTERN_JAPAN_350MW", "SUB1G_ENERGY_PATTERN_KOREA", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_916300", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500", "SUB1G_ENERGY_PATTERN_AUSTRALIA", "SUB1G_ENERGY_PATTERN_ISRAEL", "SUB1G_ENERGY_PATTERN_NZ_HOPPING"]
14
+ "allSupportedValues": ["SUB1G_ENERGY_PATTERN_NO_ENERGIZING", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000",
15
+ "SUB1G_ENERGY_PATTERN_FCC_HOPPING", "SUB1G_ENERGY_PATTERN_JAPAN_1W",
16
+ "SUB1G_ENERGY_PATTERN_JAPAN_350MW", "SUB1G_ENERGY_PATTERN_KOREA",
17
+ "SUB1G_ENERGY_PATTERN_SINGLE_TONE_916300", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500",
18
+ "SUB1G_ENERGY_PATTERN_AUSTRALIA", "SUB1G_ENERGY_PATTERN_ISRAEL", "SUB1G_ENERGY_PATTERN_NZ_HOPPING"]
13
19
  }
@@ -10,7 +10,7 @@ def run(test):
10
10
  sub1g_module = eval_pkt(f'ModuleEnergySub1GV{test.active_brg.api_version}')
11
11
 
12
12
  test = cert_common.test_prolog(test)
13
- if test.rc == TEST_FAILED or test.reason != TEST_SUCCESS:
13
+ if test.rc == TEST_FAILED:
14
14
  return cert_common.test_epilog(test)
15
15
  for param in test.params:
16
16
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=sub1g_module)[0]
@@ -2,12 +2,13 @@
2
2
  "name": "signal_indicator_functionality_test",
3
3
  "module": "energy_sub1g",
4
4
  "purpose": "TODO",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
5
+ "documentation": "<TEST_DOCUMENTATION_LINK>",
6
6
  "initialCondition": "TODO",
7
7
  "procedure": ["Test prolog", "TODO", "Test epilog"],
8
8
  "expectedOutcome": "TODO",
9
9
  "mandatory": 0,
10
10
  "multiBridgeTest": 1,
11
11
  "gwOnlyTest": 0,
12
+ "internalBridge": 1,
12
13
  "allSupportedValues": []
13
14
  }
@@ -108,7 +108,7 @@ def run(test):
108
108
 
109
109
  # Test prolog
110
110
  test = cert_common.test_prolog(test)
111
- if test.rc == TEST_FAILED or test.reason != TEST_SUCCESS:
111
+ if test.rc == TEST_FAILED:
112
112
  return terminate_test(test)
113
113
 
114
114
  phase = 0
@@ -2,12 +2,15 @@
2
2
  "name": "signal_indicator_test",
3
3
  "module": "energy_sub1g",
4
4
  "purpose": "Test configuration for supported energy_sub1g signal indicator cycle & repetitions sets of values",
5
- "documentaion": "<TEST_DOCUMENTATION_LINK>",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Sub1-Ghz-Energizer-module",
6
6
  "initialCondition": "Bridge configured to defaults",
7
- "procedure": ["Test prolog", "Configurations", "Test epilog and revert to defaults"],
7
+ "procedure": ["Test prolog",
8
+ "For each supported value - configure the BRG and verify the value",
9
+ "Test epilog and revert to defaults"],
8
10
  "expectedOutcome": "All values configured successfully",
9
11
  "mandatory": 1,
10
12
  "multiBridgeTest": 0,
11
13
  "gwOnlyTest": 0,
14
+ "internalBridge": 1,
12
15
  "allSupportedValues": [[60,4], [100,3]]
13
16
  }
@@ -10,7 +10,7 @@ def run(test):
10
10
  sub1g_module = eval_pkt(f'ModuleEnergySub1GV{test.active_brg.api_version}')
11
11
 
12
12
  test = cert_common.test_prolog(test)
13
- if test.rc == TEST_FAILED or test.reason != TEST_SUCCESS:
13
+ if test.rc == TEST_FAILED:
14
14
  return cert_common.test_epilog(test)
15
15
  for param in test.params:
16
16
  param_name = f"{param.name}"
@@ -1,12 +1,22 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
3
4
  # source: wltPb.proto
4
- # Protobuf Python Version: 4.25.1
5
+ # Protobuf Python Version: 5.29.1
5
6
  """Generated protocol buffer code."""
6
7
  from google.protobuf import descriptor as _descriptor
7
8
  from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
8
10
  from google.protobuf import symbol_database as _symbol_database
9
11
  from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 29,
16
+ 1,
17
+ '',
18
+ 'wltPb.proto'
19
+ )
10
20
  # @@protoc_insertion_point(imports)
11
21
 
12
22
  _sym_db = _symbol_database.Default()
@@ -14,20 +24,20 @@ _sym_db = _symbol_database.Default()
14
24
 
15
25
 
16
26
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bwltPb.proto\x12\x05wltPb\"$\n\x08Location\x12\x0b\n\x03lat\x18\x01 \x01(\x01\x12\x0b\n\x03lng\x18\x02 \x01(\x01\"j\n\x05Value\x12\x16\n\x0cintegerValue\x18\x01 \x01(\x03H\x00\x12\x15\n\x0bnumberValue\x18\x02 \x01(\x01H\x00\x12\x15\n\x0bstringValue\x18\x03 \x01(\tH\x00\x12\x13\n\tboolValue\x18\x04 \x01(\x08H\x00\x42\x06\n\x04type\"\x89\x02\n\x0bGatewayData\x12\x11\n\tgatewayId\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12*\n\x07packets\x18\x03 \x03(\x0b\x32\x19.wltPb.GatewayData.Packet\x12&\n\x08location\x18\x04 \x01(\x0b\x32\x0f.wltPb.LocationH\x00\x88\x01\x01\x1as\n\x06Packet\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x12\n\nsequenceId\x18\x03 \x01(\r\x12\x11\n\x04rssi\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x15\n\raliasBridgeId\x18\x05 \x01(\tB\x07\n\x05_rssiB\x0b\n\t_location\"\xc9\x01\n\rUplinkMessage\x12-\n\rgatewayStatus\x18\x01 \x01(\x0b\x32\x14.wltPb.GatewayStatusH\x00\x12)\n\x0bgatewayInfo\x18\x02 \x01(\x0b\x32\x12.wltPb.GatewayInfoH\x00\x12)\n\x0bgatewayLogs\x18\x03 \x01(\x0b\x32\x12.wltPb.GatewayLogsH\x00\x12+\n\x0c\x61\x63tionStatus\x18\x04 \x01(\x0b\x32\x13.wltPb.ActionStatusH\x00\x42\x06\n\x04type\"\xdb\x03\n\rGatewayStatus\x12\x11\n\tgatewayId\x18\x01 \x01(\t\x12\x13\n\x0bgatewayType\x18\x02 \x01(\t\x12\x19\n\x11\x64ownlinkSupported\x18\x03 \x01(\x08\x12!\n\x19\x62ridgeOtaUpgradeSupported\x18\x04 \x01(\x08\x12\x12\n\napiVersion\x18\x05 \x01(\r\x12\x14\n\x07version\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x62leSwVersion\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12interfaceSwVersion\x18\x08 \x01(\tH\x02\x88\x01\x01\x12&\n\x08location\x18\t \x01(\x0b\x32\x0f.wltPb.LocationH\x03\x88\x01\x01\x12\x30\n\x06\x63onfig\x18\n \x03(\x0b\x32 .wltPb.GatewayStatus.ConfigEntry\x12\x17\n\nbleAddress\x18\x0b \x01(\tH\x04\x88\x01\x01\x1a;\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x05value\x18\x02 \x01(\x0b\x32\x0c.wltPb.Value:\x02\x38\x01\x42\n\n\x08_versionB\x0f\n\r_bleSwVersionB\x15\n\x13_interfaceSwVersionB\x0b\n\t_locationB\r\n\x0b_bleAddress\"}\n\x0bGatewayInfo\x12\x30\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1f.wltPb.GatewayInfo.EntriesEntry\x1a<\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x05value\x18\x02 \x01(\x0b\x32\x0c.wltPb.Value:\x02\x38\x01\"\x1b\n\x0bGatewayLogs\x12\x0c\n\x04logs\x18\x01 \x03(\t\".\n\x0c\x41\x63tionStatus\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\r\x12\x0e\n\x06status\x18\x02 \x01(\r\"\xa7\x02\n\x0f\x44ownlinkMessage\x12#\n\x08txPacket\x18\x01 \x01(\x0b\x32\x0f.wltPb.TxPacketH\x00\x12-\n\rgatewayAction\x18\x02 \x01(\x0b\x32\x14.wltPb.GatewayActionH\x00\x12-\n\rbridgeUpgrade\x18\x03 \x01(\x0b\x32\x14.wltPb.BridgeUpgradeH\x00\x12-\n\rgatewayConfig\x18\x04 \x01(\x0b\x32\x14.wltPb.GatewayConfigH\x00\x12+\n\x0c\x63ustomBroker\x18\x05 \x01(\x0b\x32\x13.wltPb.CustomBrokerH\x00\x12-\n\rcustomMessage\x18\x06 \x01(\x0b\x32\x14.wltPb.CustomMessageH\x00\x42\x06\n\x04type\"F\n\x08TxPacket\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x12\n\nmaxRetries\x18\x02 \x01(\r\x12\x15\n\rmaxDurationMs\x18\x03 \x01(\r\"\x1f\n\rGatewayAction\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\"\xa5\x01\n\rBridgeUpgrade\x12\x14\n\x0crebootPacket\x18\x01 \x01(\x0c\x12\x17\n\x0ftxMaxDurationMs\x18\x02 \x01(\r\x12\x14\n\x0ctxMaxRetries\x18\x03 \x01(\r\x12\x10\n\x08\x62ridgeId\x18\x04 \x01(\t\x12\x13\n\x0bversionUuid\x18\x05 \x01(\t\x12\x13\n\x0bupgradeBlSd\x18\x06 \x01(\x08\x12\x13\n\x0bimageDirUrl\x18\x07 \x01(\t\"\xb9\x02\n\rGatewayConfig\x12\x14\n\x07version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x62leSwVersion\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12interfaceSwVersion\x18\x03 \x01(\tH\x02\x88\x01\x01\x12&\n\x08location\x18\x04 \x01(\x0b\x32\x0f.wltPb.LocationH\x03\x88\x01\x01\x12\x30\n\x06\x63onfig\x18\x05 \x03(\x0b\x32 .wltPb.GatewayConfig.ConfigEntry\x1a;\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x05value\x18\x02 \x01(\x0b\x32\x0c.wltPb.Value:\x02\x38\x01\x42\n\n\x08_versionB\x0f\n\r_bleSwVersionB\x15\n\x13_interfaceSwVersionB\x0b\n\t_location\"\xa6\x01\n\x0c\x43ustomBroker\x12\x14\n\x0c\x63ustomBroker\x18\x01 \x01(\x08\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x11\n\tbrokerUrl\x18\x03 \x01(\t\x12\x10\n\x08username\x18\x04 \x01(\t\x12\x10\n\x08password\x18\x05 \x01(\t\x12\x13\n\x0bupdateTopic\x18\x06 \x01(\t\x12\x13\n\x0bstatusTopic\x18\x07 \x01(\t\x12\x11\n\tdataTopic\x18\x08 \x01(\t\"\x81\x01\n\rCustomMessage\x12\x32\n\x07\x65ntries\x18\x01 \x03(\x0b\x32!.wltPb.CustomMessage.EntriesEntry\x1a<\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x05value\x18\x02 \x01(\x0b\x32\x0c.wltPb.Value:\x02\x38\x01\x62\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bwltPb.proto\x12\x05wltPb\"$\n\x08Location\x12\x0b\n\x03lat\x18\x01 \x01(\x01\x12\x0b\n\x03lng\x18\x02 \x01(\x01\"j\n\x05Value\x12\x16\n\x0cintegerValue\x18\x01 \x01(\x03H\x00\x12\x15\n\x0bnumberValue\x18\x02 \x01(\x01H\x00\x12\x15\n\x0bstringValue\x18\x03 \x01(\tH\x00\x12\x13\n\tboolValue\x18\x04 \x01(\x08H\x00\x42\x06\n\x04type\"\x89\x02\n\x0bGatewayData\x12\x11\n\tgatewayId\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12*\n\x07packets\x18\x03 \x03(\x0b\x32\x19.wltPb.GatewayData.Packet\x12&\n\x08location\x18\x04 \x01(\x0b\x32\x0f.wltPb.LocationH\x00\x88\x01\x01\x1as\n\x06Packet\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x12\n\nsequenceId\x18\x03 \x01(\r\x12\x11\n\x04rssi\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x15\n\raliasBridgeId\x18\x05 \x01(\tB\x07\n\x05_rssiB\x0b\n\t_location\"\xc9\x01\n\rUplinkMessage\x12-\n\rgatewayStatus\x18\x01 \x01(\x0b\x32\x14.wltPb.GatewayStatusH\x00\x12)\n\x0bgatewayInfo\x18\x02 \x01(\x0b\x32\x12.wltPb.GatewayInfoH\x00\x12)\n\x0bgatewayLogs\x18\x03 \x01(\x0b\x32\x12.wltPb.GatewayLogsH\x00\x12+\n\x0c\x61\x63tionStatus\x18\x04 \x01(\x0b\x32\x13.wltPb.ActionStatusH\x00\x42\x06\n\x04type\"&\n\x03\x41\x43L\x12\x12\n\nmode_allow\x18\x01 \x01(\x08\x12\x0b\n\x03ids\x18\x02 \x03(\x0c\"\x97\x01\n\x12GatewayConfigValue\x12\x16\n\x0cintegerValue\x18\x01 \x01(\x03H\x00\x12\x15\n\x0bnumberValue\x18\x02 \x01(\x01H\x00\x12\x15\n\x0bstringValue\x18\x03 \x01(\tH\x00\x12\x13\n\tboolValue\x18\x04 \x01(\x08H\x00\x12\x1e\n\x08\x61\x63lValue\x18\x05 \x01(\x0b\x32\n.wltPb.ACLH\x00\x42\x06\n\x04type\"\xe8\x03\n\rGatewayStatus\x12\x11\n\tgatewayId\x18\x01 \x01(\t\x12\x13\n\x0bgatewayType\x18\x02 \x01(\t\x12\x19\n\x11\x64ownlinkSupported\x18\x03 \x01(\x08\x12!\n\x19\x62ridgeOtaUpgradeSupported\x18\x04 \x01(\x08\x12\x12\n\napiVersion\x18\x05 \x01(\r\x12\x14\n\x07version\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x62leSwVersion\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12interfaceSwVersion\x18\x08 \x01(\tH\x02\x88\x01\x01\x12&\n\x08location\x18\t \x01(\x0b\x32\x0f.wltPb.LocationH\x03\x88\x01\x01\x12\x30\n\x06\x63onfig\x18\n \x03(\x0b\x32 .wltPb.GatewayStatus.ConfigEntry\x12\x17\n\nbleAddress\x18\x0b \x01(\tH\x04\x88\x01\x01\x1aH\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.wltPb.GatewayConfigValue:\x02\x38\x01\x42\n\n\x08_versionB\x0f\n\r_bleSwVersionB\x15\n\x13_interfaceSwVersionB\x0b\n\t_locationB\r\n\x0b_bleAddress\"}\n\x0bGatewayInfo\x12\x30\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1f.wltPb.GatewayInfo.EntriesEntry\x1a<\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x05value\x18\x02 \x01(\x0b\x32\x0c.wltPb.Value:\x02\x38\x01\"\x1b\n\x0bGatewayLogs\x12\x0c\n\x04logs\x18\x01 \x03(\t\"\x92\x01\n\x0c\x41\x63tionStatus\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\r\x12\x0e\n\x06status\x18\x02 \x01(\r\x12\x11\n\x04step\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08progress\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x62ridgeId\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x42\x07\n\x05_stepB\x0b\n\t_progressB\x0b\n\t_bridgeId\"\x8e\x02\n\x0f\x44ownlinkMessage\x12#\n\x08txPacket\x18\x01 \x01(\x0b\x32\x0f.wltPb.TxPacketH\x00\x12-\n\rgatewayAction\x18\x02 \x01(\x0b\x32\x14.wltPb.GatewayActionH\x00\x12-\n\rbridgeUpgrade\x18\x03 \x01(\x0b\x32\x14.wltPb.BridgeUpgradeH\x00\x12-\n\rgatewayConfig\x18\x04 \x01(\x0b\x32\x14.wltPb.GatewayConfigH\x00\x12-\n\rcustomMessage\x18\x06 \x01(\x0b\x32\x14.wltPb.CustomMessageH\x00\x42\x06\n\x04typeJ\x04\x08\x05\x10\x06R\x0c\x63ustomBroker\"F\n\x08TxPacket\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x12\n\nmaxRetries\x18\x02 \x01(\r\x12\x15\n\rmaxDurationMs\x18\x03 \x01(\r\"\x1f\n\rGatewayAction\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\"\xa5\x01\n\rBridgeUpgrade\x12\x14\n\x0crebootPacket\x18\x01 \x01(\x0c\x12\x17\n\x0ftxMaxDurationMs\x18\x02 \x01(\r\x12\x14\n\x0ctxMaxRetries\x18\x03 \x01(\r\x12\x10\n\x08\x62ridgeId\x18\x04 \x01(\t\x12\x13\n\x0bversionUuid\x18\x05 \x01(\t\x12\x13\n\x0bupgradeBlSd\x18\x06 \x01(\x08\x12\x13\n\x0bimageDirUrl\x18\x07 \x01(\t\"\xc6\x02\n\rGatewayConfig\x12\x14\n\x07version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x62leSwVersion\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12interfaceSwVersion\x18\x03 \x01(\tH\x02\x88\x01\x01\x12&\n\x08location\x18\x04 \x01(\x0b\x32\x0f.wltPb.LocationH\x03\x88\x01\x01\x12\x30\n\x06\x63onfig\x18\x05 \x03(\x0b\x32 .wltPb.GatewayConfig.ConfigEntry\x1aH\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.wltPb.GatewayConfigValue:\x02\x38\x01\x42\n\n\x08_versionB\x0f\n\r_bleSwVersionB\x15\n\x13_interfaceSwVersionB\x0b\n\t_location\"\x81\x01\n\rCustomMessage\x12\x32\n\x07\x65ntries\x18\x01 \x03(\x0b\x32!.wltPb.CustomMessage.EntriesEntry\x1a<\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x05value\x18\x02 \x01(\x0b\x32\x0c.wltPb.Value:\x02\x38\x01\x62\x06proto3')
18
28
 
19
29
  _globals = globals()
20
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
31
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'wltPb_pb2', _globals)
22
- if _descriptor._USE_C_DESCRIPTORS == False:
23
- DESCRIPTOR._options = None
24
- _globals['_GATEWAYSTATUS_CONFIGENTRY']._options = None
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_GATEWAYSTATUS_CONFIGENTRY']._loaded_options = None
25
35
  _globals['_GATEWAYSTATUS_CONFIGENTRY']._serialized_options = b'8\001'
26
- _globals['_GATEWAYINFO_ENTRIESENTRY']._options = None
36
+ _globals['_GATEWAYINFO_ENTRIESENTRY']._loaded_options = None
27
37
  _globals['_GATEWAYINFO_ENTRIESENTRY']._serialized_options = b'8\001'
28
- _globals['_GATEWAYCONFIG_CONFIGENTRY']._options = None
38
+ _globals['_GATEWAYCONFIG_CONFIGENTRY']._loaded_options = None
29
39
  _globals['_GATEWAYCONFIG_CONFIGENTRY']._serialized_options = b'8\001'
30
- _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._options = None
40
+ _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._loaded_options = None
31
41
  _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._serialized_options = b'8\001'
32
42
  _globals['_LOCATION']._serialized_start=22
33
43
  _globals['_LOCATION']._serialized_end=58
@@ -39,34 +49,36 @@ if _descriptor._USE_C_DESCRIPTORS == False:
39
49
  _globals['_GATEWAYDATA_PACKET']._serialized_end=421
40
50
  _globals['_UPLINKMESSAGE']._serialized_start=437
41
51
  _globals['_UPLINKMESSAGE']._serialized_end=638
42
- _globals['_GATEWAYSTATUS']._serialized_start=641
43
- _globals['_GATEWAYSTATUS']._serialized_end=1116
44
- _globals['_GATEWAYSTATUS_CONFIGENTRY']._serialized_start=977
45
- _globals['_GATEWAYSTATUS_CONFIGENTRY']._serialized_end=1036
46
- _globals['_GATEWAYINFO']._serialized_start=1118
47
- _globals['_GATEWAYINFO']._serialized_end=1243
48
- _globals['_GATEWAYINFO_ENTRIESENTRY']._serialized_start=1183
49
- _globals['_GATEWAYINFO_ENTRIESENTRY']._serialized_end=1243
50
- _globals['_GATEWAYLOGS']._serialized_start=1245
51
- _globals['_GATEWAYLOGS']._serialized_end=1272
52
- _globals['_ACTIONSTATUS']._serialized_start=1274
53
- _globals['_ACTIONSTATUS']._serialized_end=1320
54
- _globals['_DOWNLINKMESSAGE']._serialized_start=1323
55
- _globals['_DOWNLINKMESSAGE']._serialized_end=1618
56
- _globals['_TXPACKET']._serialized_start=1620
57
- _globals['_TXPACKET']._serialized_end=1690
58
- _globals['_GATEWAYACTION']._serialized_start=1692
59
- _globals['_GATEWAYACTION']._serialized_end=1723
60
- _globals['_BRIDGEUPGRADE']._serialized_start=1726
61
- _globals['_BRIDGEUPGRADE']._serialized_end=1891
62
- _globals['_GATEWAYCONFIG']._serialized_start=1894
63
- _globals['_GATEWAYCONFIG']._serialized_end=2207
64
- _globals['_GATEWAYCONFIG_CONFIGENTRY']._serialized_start=977
65
- _globals['_GATEWAYCONFIG_CONFIGENTRY']._serialized_end=1036
66
- _globals['_CUSTOMBROKER']._serialized_start=2210
67
- _globals['_CUSTOMBROKER']._serialized_end=2376
68
- _globals['_CUSTOMMESSAGE']._serialized_start=2379
69
- _globals['_CUSTOMMESSAGE']._serialized_end=2508
70
- _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._serialized_start=1183
71
- _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._serialized_end=1243
52
+ _globals['_ACL']._serialized_start=640
53
+ _globals['_ACL']._serialized_end=678
54
+ _globals['_GATEWAYCONFIGVALUE']._serialized_start=681
55
+ _globals['_GATEWAYCONFIGVALUE']._serialized_end=832
56
+ _globals['_GATEWAYSTATUS']._serialized_start=835
57
+ _globals['_GATEWAYSTATUS']._serialized_end=1323
58
+ _globals['_GATEWAYSTATUS_CONFIGENTRY']._serialized_start=1171
59
+ _globals['_GATEWAYSTATUS_CONFIGENTRY']._serialized_end=1243
60
+ _globals['_GATEWAYINFO']._serialized_start=1325
61
+ _globals['_GATEWAYINFO']._serialized_end=1450
62
+ _globals['_GATEWAYINFO_ENTRIESENTRY']._serialized_start=1390
63
+ _globals['_GATEWAYINFO_ENTRIESENTRY']._serialized_end=1450
64
+ _globals['_GATEWAYLOGS']._serialized_start=1452
65
+ _globals['_GATEWAYLOGS']._serialized_end=1479
66
+ _globals['_ACTIONSTATUS']._serialized_start=1482
67
+ _globals['_ACTIONSTATUS']._serialized_end=1628
68
+ _globals['_DOWNLINKMESSAGE']._serialized_start=1631
69
+ _globals['_DOWNLINKMESSAGE']._serialized_end=1901
70
+ _globals['_TXPACKET']._serialized_start=1903
71
+ _globals['_TXPACKET']._serialized_end=1973
72
+ _globals['_GATEWAYACTION']._serialized_start=1975
73
+ _globals['_GATEWAYACTION']._serialized_end=2006
74
+ _globals['_BRIDGEUPGRADE']._serialized_start=2009
75
+ _globals['_BRIDGEUPGRADE']._serialized_end=2174
76
+ _globals['_GATEWAYCONFIG']._serialized_start=2177
77
+ _globals['_GATEWAYCONFIG']._serialized_end=2503
78
+ _globals['_GATEWAYCONFIG_CONFIGENTRY']._serialized_start=1171
79
+ _globals['_GATEWAYCONFIG_CONFIGENTRY']._serialized_end=1243
80
+ _globals['_CUSTOMMESSAGE']._serialized_start=2506
81
+ _globals['_CUSTOMMESSAGE']._serialized_end=2635
82
+ _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._serialized_start=1390
83
+ _globals['_CUSTOMMESSAGE_ENTRIESENTRY']._serialized_end=1450
72
84
  # @@protoc_insertion_point(module_scope)