wiliot-certificate 4.4.3__py3-none-any.whl → 4.5.0a1__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 (295) hide show
  1. {brg_certificate → certificate}/ag/wlt_cmd_if.html +10 -4
  2. {brg_certificate → certificate}/ag/wlt_types_ag.py +1878 -519
  3. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2brg_ota.json +69 -0
  4. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2gw_hb.json +109 -0
  5. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +45 -0
  6. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/calibration.json +96 -0
  7. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/custom.json +99 -0
  8. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/datapath.json +241 -13
  9. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/energy2400.json +120 -0
  10. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/energySub1g.json +96 -0
  11. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/externalSensor.json +135 -6
  12. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/interface.json +157 -0
  13. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/powerManagement.json +205 -0
  14. brg_certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json → certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +27 -11
  15. certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +175 -0
  16. certificate/ag/wlt_types_ag_jsons/unified_sensor_pkt.json +65 -0
  17. certificate/cert_common.py +1459 -0
  18. certificate/cert_config.py +455 -0
  19. {brg_certificate → certificate}/cert_data_sim.py +131 -46
  20. {brg_certificate → certificate}/cert_defines.py +120 -128
  21. {brg_certificate → certificate}/cert_gw_sim.py +151 -49
  22. {brg_certificate → certificate}/cert_mqtt.py +164 -59
  23. {brg_certificate → certificate}/cert_prints.py +34 -33
  24. {brg_certificate → certificate}/cert_protobuf.py +15 -6
  25. {brg_certificate → certificate}/cert_results.py +205 -48
  26. certificate/cert_utils.py +622 -0
  27. certificate/certificate.py +198 -0
  28. certificate/certificate_cli.py +79 -0
  29. certificate/certificate_eth_test_list.txt +74 -0
  30. certificate/certificate_sanity_test_list.txt +65 -0
  31. certificate/certificate_test_list.txt +75 -0
  32. {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.json +2 -2
  33. {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.py +7 -6
  34. certificate/tests/calibration/output_power_test/output_power_test.json +22 -0
  35. certificate/tests/calibration/output_power_test/output_power_test.py +39 -0
  36. {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.json +1 -1
  37. {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.py +20 -15
  38. certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.json +14 -0
  39. certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.py +140 -0
  40. certificate/tests/cloud_connectivity/acl_test/acl_test.json +14 -0
  41. certificate/tests/cloud_connectivity/acl_test/acl_test.py +98 -0
  42. certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.json +18 -0
  43. certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.py +39 -0
  44. certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.json +18 -0
  45. certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.py +215 -0
  46. certificate/tests/cloud_connectivity/connection_test/connection_test.json +17 -0
  47. certificate/tests/cloud_connectivity/connection_test/connection_test.py +74 -0
  48. certificate/tests/cloud_connectivity/downlink_test/downlink_test.json +20 -0
  49. certificate/tests/cloud_connectivity/downlink_test/downlink_test.py +204 -0
  50. certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.json +16 -0
  51. certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.py +98 -0
  52. certificate/tests/cloud_connectivity/reboot_test/reboot_test.json +17 -0
  53. certificate/tests/cloud_connectivity/reboot_test/reboot_test.py +57 -0
  54. certificate/tests/cloud_connectivity/registration_test/registration_test.json +19 -0
  55. certificate/tests/cloud_connectivity/registration_test/registration_test.py +384 -0
  56. certificate/tests/cloud_connectivity/registration_test/registration_test_cli.py +90 -0
  57. certificate/tests/cloud_connectivity/stress_test/stress_test.json +16 -0
  58. certificate/tests/cloud_connectivity/stress_test/stress_test.py +97 -0
  59. certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.json +24 -0
  60. certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.py +93 -0
  61. certificate/tests/cloud_connectivity/uplink_test/uplink_test.json +19 -0
  62. certificate/tests/cloud_connectivity/uplink_test/uplink_test.py +161 -0
  63. {brg_certificate → certificate}/tests/datapath/aging_test/aging_test.json +1 -1
  64. certificate/tests/datapath/aging_test/aging_test.py +138 -0
  65. certificate/tests/datapath/event_ble5_test/event_ble5_test.json +16 -0
  66. certificate/tests/datapath/event_ble5_test/event_ble5_test.py +95 -0
  67. certificate/tests/datapath/event_test/event_test.json +16 -0
  68. certificate/tests/datapath/event_test/event_test.py +85 -0
  69. {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.json +1 -1
  70. {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.py +10 -8
  71. certificate/tests/datapath/output_power_test/output_power_test.json +22 -0
  72. {brg_certificate → certificate}/tests/datapath/output_power_test/output_power_test.py +17 -6
  73. {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +1 -1
  74. {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +10 -8
  75. {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.json +1 -1
  76. {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.py +9 -7
  77. {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.json +2 -2
  78. {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.py +18 -6
  79. certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.json +19 -0
  80. certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.py +61 -0
  81. {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +1 -1
  82. {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +11 -10
  83. certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.json +18 -0
  84. certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.py +83 -0
  85. {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +1 -1
  86. {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +10 -9
  87. {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.json +1 -1
  88. {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.py +10 -9
  89. {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +1 -1
  90. {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +9 -8
  91. brg_certificate/tests/datapath/output_power_test/output_power_test.json → certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.json +5 -4
  92. certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.py +77 -0
  93. {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.json +2 -2
  94. {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.py +7 -6
  95. {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +7 -7
  96. {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +112 -72
  97. {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +7 -7
  98. {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +112 -72
  99. {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.json +3 -3
  100. {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.py +12 -11
  101. {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.json +3 -3
  102. {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.py +12 -11
  103. {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.json +2 -1
  104. {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.py +14 -13
  105. certificate/tests/edge_mgmt/action_blink_test/action_blink_test.json +14 -0
  106. certificate/tests/edge_mgmt/action_blink_test/action_blink_test.py +24 -0
  107. certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.json +14 -0
  108. certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.py +43 -0
  109. certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.json +14 -0
  110. certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.py +42 -0
  111. certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.json +14 -0
  112. certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.py +44 -0
  113. certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.json +15 -0
  114. certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.py +42 -0
  115. certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.json +14 -0
  116. certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.py +49 -0
  117. certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.json +14 -0
  118. certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.py +102 -0
  119. certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.json +14 -0
  120. certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.py +41 -0
  121. {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +2 -2
  122. {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.py +22 -11
  123. {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.json +1 -1
  124. {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.py +7 -6
  125. certificate/tests/energy2400/output_power_test/output_power_test.json +22 -0
  126. {brg_certificate → certificate}/tests/energy2400/output_power_test/output_power_test.py +17 -6
  127. {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.json +1 -1
  128. {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.py +7 -6
  129. certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +25 -0
  130. certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +378 -0
  131. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json → certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.json +3 -3
  132. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py → certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.py +97 -87
  133. certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +23 -0
  134. certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +350 -0
  135. {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +1 -1
  136. {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +7 -6
  137. {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.json +1 -1
  138. {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.py +7 -6
  139. {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +1 -1
  140. {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +10 -10
  141. {brg_certificate → certificate}/tests/sensors/ext_sensor_test/ext_sensor_test.json +4 -4
  142. certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +455 -0
  143. certificate/wlt_types.py +122 -0
  144. {gw_certificate → common}/api_if/202/status.json +6 -0
  145. {gw_certificate → common}/api_if/203/status.json +6 -0
  146. {gw_certificate → common}/api_if/204/status.json +6 -0
  147. common/api_if/206/data.json +85 -0
  148. common/api_if/206/status.json +69 -0
  149. common/api_if/api_validation.py +85 -0
  150. common/web/templates/generator.html +148 -0
  151. common/web/templates/index.html +20 -0
  152. common/web/templates/menu.html +54 -0
  153. common/web/templates/parser.html +53 -0
  154. {brg_certificate/ag → common/web/templates}/wlt_types.html +1216 -191
  155. common/web/web_utils.py +377 -0
  156. {brg_certificate → common}/wltPb_pb2.py +14 -12
  157. {gw_certificate/common → common}/wltPb_pb2.pyi +16 -2
  158. gui_certificate/gui_certificate_cli.py +14 -0
  159. gui_certificate/server.py +1062 -0
  160. gui_certificate/templates/cert_run.html +1207 -0
  161. wiliot_certificate-4.5.0a1.dist-info/METADATA +110 -0
  162. wiliot_certificate-4.5.0a1.dist-info/RECORD +182 -0
  163. {wiliot_certificate-4.4.3.dist-info → wiliot_certificate-4.5.0a1.dist-info}/WHEEL +1 -1
  164. wiliot_certificate-4.5.0a1.dist-info/entry_points.txt +5 -0
  165. wiliot_certificate-4.5.0a1.dist-info/top_level.txt +3 -0
  166. brg_certificate/ag/energous_v0_defines.py +0 -925
  167. brg_certificate/ag/energous_v1_defines.py +0 -931
  168. brg_certificate/ag/energous_v2_defines.py +0 -925
  169. brg_certificate/ag/energous_v3_defines.py +0 -925
  170. brg_certificate/ag/energous_v4_defines.py +0 -925
  171. brg_certificate/ag/fanstel_lan_v0_defines.py +0 -925
  172. brg_certificate/ag/fanstel_lte_v0_defines.py +0 -925
  173. brg_certificate/ag/fanstel_wifi_v0_defines.py +0 -925
  174. brg_certificate/ag/minew_lte_v0_defines.py +0 -925
  175. brg_certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +0 -61
  176. brg_certificate/brg_certificate.py +0 -225
  177. brg_certificate/brg_certificate_cli.py +0 -63
  178. brg_certificate/cert_common.py +0 -923
  179. brg_certificate/cert_config.py +0 -402
  180. brg_certificate/cert_utils.py +0 -362
  181. brg_certificate/certificate_bcc_sanity_test_list.txt +0 -40
  182. brg_certificate/certificate_bcc_test_list.txt +0 -48
  183. brg_certificate/certificate_sanity_test_list.txt +0 -43
  184. brg_certificate/certificate_test_list.txt +0 -53
  185. brg_certificate/config/eclipse.json +0 -10
  186. brg_certificate/config/hivemq.json +0 -10
  187. brg_certificate/config/mosquitto.json +0 -10
  188. brg_certificate/config/mosquitto.md +0 -95
  189. brg_certificate/config/wiliot-dev.json +0 -10
  190. brg_certificate/restore_brg.py +0 -61
  191. brg_certificate/tests/calibration/output_power_test/output_power_test.json +0 -16
  192. brg_certificate/tests/calibration/output_power_test/output_power_test.py +0 -28
  193. brg_certificate/tests/datapath/aging_test/aging_test.py +0 -143
  194. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +0 -16
  195. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +0 -73
  196. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +0 -17
  197. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +0 -118
  198. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +0 -14
  199. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +0 -396
  200. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +0 -20
  201. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +0 -94
  202. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +0 -19
  203. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.py +0 -87
  204. brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +0 -17
  205. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +0 -223
  206. brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +0 -17
  207. brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +0 -128
  208. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +0 -16
  209. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +0 -20
  210. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +0 -321
  211. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +0 -20
  212. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +0 -141
  213. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +0 -20
  214. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +0 -276
  215. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +0 -20
  216. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +0 -390
  217. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +0 -16
  218. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +0 -28
  219. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +0 -305
  220. brg_certificate/wltPb_pb2.pyi +0 -234
  221. brg_certificate/wlt_types.py +0 -113
  222. gw_certificate/ag/ut_defines.py +0 -364
  223. gw_certificate/ag/wlt_types.py +0 -85
  224. gw_certificate/ag/wlt_types_ag.py +0 -5310
  225. gw_certificate/ag/wlt_types_data.py +0 -64
  226. gw_certificate/api/extended_api.py +0 -23
  227. gw_certificate/api_if/200/data.json +0 -106
  228. gw_certificate/api_if/200/status.json +0 -47
  229. gw_certificate/api_if/201/data.json +0 -98
  230. gw_certificate/api_if/201/status.json +0 -53
  231. gw_certificate/api_if/205/logs.json +0 -12
  232. gw_certificate/api_if/api_validation.py +0 -38
  233. gw_certificate/api_if/gw_capabilities.py +0 -54
  234. gw_certificate/cert_results.py +0 -145
  235. gw_certificate/common/analysis_data_bricks.py +0 -60
  236. gw_certificate/common/debug.py +0 -42
  237. gw_certificate/common/serialization_formatter.py +0 -93
  238. gw_certificate/common/utils.py +0 -8
  239. gw_certificate/common/utils_defines.py +0 -15
  240. gw_certificate/common/wltPb_pb2.py +0 -84
  241. gw_certificate/gw_certificate.py +0 -154
  242. gw_certificate/gw_certificate_cli.py +0 -87
  243. gw_certificate/interface/4.4.93_app.zip +0 -0
  244. gw_certificate/interface/4.4.93_sd_bl_app.zip +0 -0
  245. gw_certificate/interface/ble_simulator.py +0 -61
  246. gw_certificate/interface/ble_sniffer.py +0 -189
  247. gw_certificate/interface/flash_fw.py +0 -90
  248. gw_certificate/interface/if_defines.py +0 -36
  249. gw_certificate/interface/mqtt.py +0 -563
  250. gw_certificate/interface/nrfutil-linux +0 -0
  251. gw_certificate/interface/nrfutil-mac +0 -0
  252. gw_certificate/interface/nrfutil.exe +0 -0
  253. gw_certificate/interface/pkt_generator.py +0 -594
  254. gw_certificate/interface/uart_if.py +0 -236
  255. gw_certificate/interface/uart_ports.py +0 -20
  256. gw_certificate/templates/results.html +0 -241
  257. gw_certificate/templates/stage.html +0 -22
  258. gw_certificate/templates/table.html +0 -6
  259. gw_certificate/templates/test.html +0 -38
  260. gw_certificate/tests/__init__.py +0 -10
  261. gw_certificate/tests/actions.py +0 -289
  262. gw_certificate/tests/bad_crc_to_PER_quantization.csv +0 -51
  263. gw_certificate/tests/connection.py +0 -188
  264. gw_certificate/tests/downlink.py +0 -172
  265. gw_certificate/tests/generic.py +0 -238
  266. gw_certificate/tests/registration.py +0 -340
  267. gw_certificate/tests/static/__init__.py +0 -0
  268. gw_certificate/tests/static/connection_defines.py +0 -9
  269. gw_certificate/tests/static/downlink_defines.py +0 -9
  270. gw_certificate/tests/static/generated_packet_table.py +0 -195
  271. gw_certificate/tests/static/packet_table.csv +0 -10067
  272. gw_certificate/tests/static/references.py +0 -5
  273. gw_certificate/tests/static/uplink_defines.py +0 -14
  274. gw_certificate/tests/throughput.py +0 -240
  275. gw_certificate/tests/uplink.py +0 -853
  276. wiliot_certificate-4.4.3.dist-info/METADATA +0 -211
  277. wiliot_certificate-4.4.3.dist-info/RECORD +0 -210
  278. wiliot_certificate-4.4.3.dist-info/entry_points.txt +0 -3
  279. wiliot_certificate-4.4.3.dist-info/top_level.txt +0 -3
  280. {brg_certificate → certificate}/__init__.py +0 -0
  281. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -0
  282. {brg_certificate → certificate}/ag/wlt_types_ag_jsons/signal_indicator_data.json +0 -0
  283. {gw_certificate → common}/api_if/202/data.json +0 -0
  284. {gw_certificate/api_if/200 → common/api_if/202}/logs.json +0 -0
  285. {gw_certificate → common}/api_if/203/data.json +0 -0
  286. {gw_certificate/api_if/201 → common/api_if/203}/logs.json +0 -0
  287. {gw_certificate → common}/api_if/204/data.json +0 -0
  288. {gw_certificate/api_if/202 → common/api_if/204}/logs.json +0 -0
  289. {gw_certificate → common}/api_if/205/data.json +0 -0
  290. {gw_certificate/api_if/203 → common/api_if/205}/logs.json +0 -0
  291. {gw_certificate → common}/api_if/205/status.json +0 -0
  292. {gw_certificate/api_if/204 → common/api_if/206}/logs.json +0 -0
  293. {gw_certificate → common/api_if}/__init__.py +0 -0
  294. {gw_certificate/api_if → gui_certificate}/__init__.py +0 -0
  295. {wiliot_certificate-4.4.3.dist-info → wiliot_certificate-4.5.0a1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,350 @@
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
7
+
8
+ # Test Description:
9
+ # This test is to verify the functionality of both signal indicator tx (tx_brg) and rx (rx_brg) at BRG level.
10
+ # We will configure several signal indicator params during the test, and check the functionality of the signal indicator logic
11
+ # for each of them.
12
+ # It is important to execute the test with several setups: 2 Fanstel BRG's, 2 Minew BRG's and 1 Fanstel and 1 Minew BRG.
13
+ # At first, we will configure several tx signal indicator params and check for ack's, to verify all indicated params were
14
+ # received at the cloud.
15
+ # Then, we will examine the signal indicator end-2-end logic with both transmitter and receiver:
16
+ # phase 1 - One BRG will be configured as signal indicator tx, and the other as signal indicator rx, and we expect to see
17
+ # signal indicator packets only from the tx BRG, and according to the tx params (to check the repetition and cycle params).
18
+ # phase 2 - Same as phase 1, but with different tx params configured.
19
+ # phase 3 - One rx BRG without any tx BRG. We don't expect to see any signal indicator packets. This phase is to verify the
20
+ # brg module logic is working properly, and no tag packet is accidentally being treated as signal indicator packet.
21
+ # phase 4 - Both BRG's will be configured to be transmitters and receivers, with different tx params for each one. we expect
22
+ # to see signal indicator packets from both BRG's, according to the tx params.
23
+ # phase 5 - One BRG will be configured as signal indicator tx, but no rx, so we don't expect to receive signal indicatopr packets.
24
+ # that way we can assure the logic within the receiver is not confused by the signal indicator uuid as external sensor.
25
+
26
+
27
+ # Test MACROS #
28
+ NUM_OF_SCANNING_CYCLE = 5
29
+ DEFAULT_SCAN_TIME = 30
30
+ SCAN_DELAY_TIME = 3
31
+
32
+
33
+ def test_rssi_threshold(test):
34
+ cycle, rep = 5, 4
35
+ dut = cert_config.get_brg_by_target(test, DUT)
36
+ tester = cert_config.get_brg_by_target(test, TESTER)
37
+ rssi_threshold = -25
38
+
39
+ # configuring receiver #
40
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Receiver with RSSI Threshold of {rssi_threshold}", "BOLD")
41
+ test = cert_config.brg_configure(test=test, module=dut.sensors,
42
+ fields=[BRG_SENSOR0, BRG_RSSI_THRESHOLD],
43
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR, rssi_threshold])[0]
44
+ if test.rc == TEST_FAILED:
45
+ test.add_reason(f"BRG {dut.id_str}: didn't receive signal indicator receiver configuration!")
46
+ return test
47
+ # configuring tester as a transmitter #
48
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Transmitter", "BOLD")
49
+ test = cert_config.brg_configure(test=test, module=tester.energy2400, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
50
+ values=[cycle, rep], target=TESTER)[0]
51
+ if test.rc == TEST_FAILED:
52
+ test.add_reason(f"BRG {tester.id_str}: didn't receive signal indicator transmitter configuration!")
53
+ return test
54
+ utPrint(f"BRG {tester.id_str} configured to be transmitter - cycle = {cycle} repetition = {rep}", "BOLD")
55
+ # phase analysis #
56
+ cert_mqtt.mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, "rssi_threshold")
57
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=dut, tx_brg=tester)
58
+ for p in rec_sig_ind_pkts:
59
+ print(f"rssi value: {p[UNIFIED_SENSOR_PKT].pkt.rssi}")
60
+ rssi_threshold_viloation_pkts = [p for p in rec_sig_ind_pkts if p[UNIFIED_SENSOR_PKT].pkt.rssi >= -1 * rssi_threshold]
61
+ if rssi_threshold_viloation_pkts:
62
+ test.rc = TEST_FAILED
63
+ test.add_reason(f"rssi_threshold phase failed - BRG {dut.id_str} echoed"
64
+ f" {len(rssi_threshold_viloation_pkts)} signal indicator packets\n with RSSI weaker than {rssi_threshold}")
65
+ return test
66
+
67
+
68
+ def test_rx(test):
69
+
70
+ dut = cert_config.get_brg_by_target(test, DUT)
71
+ tester = cert_config.get_brg_by_target(test, TESTER)
72
+ cycle, rep = 8, 4
73
+
74
+ utPrint(f"TESTER BRG with cycle = {cycle}, repetition = {rep}\n", "BLUE")
75
+ # configuring receiver #
76
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Receiver", "BOLD")
77
+ test = cert_config.brg_configure(test=test, module=dut.sensors, fields=[BRG_SENSOR0],
78
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR], target=DUT)[0]
79
+ if test.rc == TEST_FAILED:
80
+ test.add_reason(f"BRG {dut.id_str}: didn't receive signal indicator receiver configuration!")
81
+ return test
82
+ # configuring transmitter #
83
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Transmitter", "BOLD")
84
+ test = cert_config.brg_configure(test=test, module=tester.energy2400,
85
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
86
+ values=[cycle, rep], target=TESTER)[0]
87
+ if test.rc == TEST_FAILED:
88
+ test.add_reason(f"BRG {tester.id_str}: didn't receive signal indicator transmitter configuration!")
89
+ return test
90
+ utPrint(f"TESTER {tester.id_str} configured to be transmitter - cycle={cycle}, repetition={rep}", "BOLD")
91
+
92
+ # phase analysis #
93
+ cert_mqtt.mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, f"rx_{cycle}_{rep}")
94
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=dut, tx_brg=tester)
95
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg=tester, rx_brg=dut, cycles=NUM_OF_SCANNING_CYCLE, received_pkts=rec_sig_ind_pkts):
96
+ test.rc = TEST_FAILED
97
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tx_brg=tester, rx_brg=dut, cycles=NUM_OF_SCANNING_CYCLE)
98
+ test.add_reason(f"rx phase failed - BRG {dut.id_str} received wrong number of "
99
+ f"signal indicator packets\nreceived {len(rec_sig_ind_pkts)} packets, "
100
+ f"expected {expected_signal_ind_pkts} packets")
101
+ print(rec_sig_ind_pkts) # TODO: logging print(debug)
102
+ print([[p[TIMESTAMP], p[UNIFIED_SENSOR_PKT].pkt.signal_indicator_payload.rx_antenna] for p in rec_sig_ind_pkts])
103
+
104
+ test = cert_common.rx_tx_antenna_check(test, rec_sig_ind_pkts, tester, dut, NUM_OF_SCANNING_CYCLE)
105
+ test = cert_common.output_power_check(test, rec_sig_ind_pkts, tester)
106
+ test = cert_common.rssi_check(test, rec_sig_ind_pkts)
107
+
108
+ return test
109
+
110
+
111
+ def test_tx_eu_pattern(test):
112
+
113
+ dut = cert_config.get_brg_by_target(test, DUT)
114
+ tester = cert_config.get_brg_by_target(test, TESTER)
115
+ cycle, rep = 8, 4
116
+
117
+ utPrint(f"TESTER BRG - cycle = {cycle}, repetition = {rep}, Using EU pattern\n", "BLUE")
118
+ # configuring EU Pattern #
119
+ utPrint(f"Configuring DUT BRG {dut.id_str} to EU pattern", "BOLD")
120
+ test = cert_config.brg_configure(test=test, module=dut.datapath,
121
+ fields=[BRG_PATTERN],
122
+ values=[ag.DATAPATH_PATTERN_EU_PATTERN], target=DUT)[0]
123
+ if test.rc == TEST_FAILED:
124
+ test.add_reason(f"DUT BRG {dut.id_str}: didn't receive signal indicator receiver configuration!")
125
+ return test
126
+ # configuring transmitter #
127
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Transmitter", "BOLD")
128
+ test = cert_config.brg_configure(test=test, module=dut.energy2400,
129
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
130
+ values=[cycle, rep], target=DUT)[0]
131
+ if test.rc == TEST_FAILED:
132
+ test.add_reason(f"DUT BRG {dut.id_str}: didn't receive signal indicator transmitter configuration!")
133
+ return test
134
+ utPrint(f"DUT BRG {dut.id_str} configured to be transmitter - cycle = {cycle},repetition = {rep}", "BOLD")
135
+ # configuring receiver #
136
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Receiver", "BOLD")
137
+ test = cert_config.brg_configure(test=test, module=tester.sensors, fields=[BRG_SENSOR0],
138
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR], target=TESTER)[0]
139
+ if test.rc == TEST_FAILED:
140
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive signal indicator receiver configuration!")
141
+ return test
142
+ # configuring receiver to rx channel 37 #
143
+ utPrint(f"Configuring TESTER BRG {tester.id_str} to scan channel 37", "BOLD")
144
+ test = cert_config.brg_configure(test=test, module=tester.datapath, fields=[BRG_RX_CHANNEL],
145
+ values=[ag.RX_CHANNEL_37], target=TESTER)[0]
146
+ if test.rc == TEST_FAILED:
147
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive rx channel 37 configuration!")
148
+ return test
149
+
150
+ # phase analysis #
151
+ cert_mqtt.mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME,
152
+ f"tx_eu_pattern_{cycle}_{rep}")
153
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=tester, tx_brg=dut)
154
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg=dut, rx_brg=tester, cycles=NUM_OF_SCANNING_CYCLE, received_pkts=rec_sig_ind_pkts):
155
+ test.rc = TEST_FAILED
156
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tester, dut, NUM_OF_SCANNING_CYCLE)
157
+ test.add_reason(f"tx_eu_pattern phase failed - BRG {dut.id_str} received wrong number of "
158
+ f"signal indicator packets\nreceived {len(rec_sig_ind_pkts)} packets, "
159
+ f"expected {expected_signal_ind_pkts} packets")
160
+ print(rec_sig_ind_pkts) # TODO: logging print(debug)
161
+ print([[p[TIMESTAMP], p[UNIFIED_SENSOR_PKT].pkt.signal_indicator_payload.rx_antenna] for p in rec_sig_ind_pkts])
162
+
163
+ test = cert_config.config_brg_defaults(test, modules=[tester.datapath], target=TESTER)[0]
164
+ if test.rc == TEST_FAILED:
165
+ test.add_reason("Failed to restore tester to defaults for module Datapath")
166
+
167
+ test = cert_common.rx_tx_antenna_check(test, rec_sig_ind_pkts, dut, tester, NUM_OF_SCANNING_CYCLE)
168
+ test = cert_common.output_power_check(test, rec_sig_ind_pkts, dut)
169
+ test = cert_common.rssi_check(test, rec_sig_ind_pkts)
170
+
171
+ return test
172
+
173
+
174
+ def test_disable_tx(test):
175
+ cycle, rep = ag.BRG_DEFAULT_SIGNAL_INDICATOR_CYCLE, ag.BRG_DEFAULT_SIGNAL_INDICATOR_REP
176
+ tester = cert_config.get_brg_by_target(test, TESTER)
177
+ dut = cert_config.get_brg_by_target(test, DUT)
178
+ utPrint(f"DUT BRG with TX disabled - cycle = {cycle}, repetition = {rep}\n", "BLUE")
179
+ # configuring tester as a receiver #
180
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Receiver", "BOLD")
181
+ test = cert_config.brg_configure(test=test, module=tester.sensors,
182
+ fields=[BRG_SENSOR0],
183
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR],
184
+ target=TESTER)[0]
185
+ if test.rc == TEST_FAILED:
186
+ test.add_reason(f"BRG {tester.id_str}: didn't receive signal indicator receiver configuration!")
187
+ return test
188
+ utPrint(f"TESTER BRG {tester.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
189
+
190
+ # phase analysis #
191
+ cert_mqtt.mqtt_scan_n_create_log_file(test, DEFAULT_SCAN_TIME, "disable_tx")
192
+ expected_signal_ind_pkts = [0]
193
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=tester, tx_brg=dut)
194
+ if len(rec_sig_ind_pkts) not in expected_signal_ind_pkts:
195
+ test.rc = TEST_FAILED
196
+ test.add_reason(f"disable_tx phase failed - DUT BRG {dut.id_str} sent signal indicator packets\n"
197
+ f"received {len(rec_sig_ind_pkts)} packets, "
198
+ f"expected {expected_signal_ind_pkts} packets")
199
+
200
+ return test
201
+
202
+
203
+ def test_disable_rx(test):
204
+ # DUT BRG without rx. just waiting for packets to be sent from the transmitter and verify
205
+ # The receiver does not receive any signal indicator packets.
206
+ cycle, rep = 4, 3
207
+ dut = cert_config.get_brg_by_target(test, DUT)
208
+ tester = cert_config.get_brg_by_target(test, TESTER)
209
+ utPrint("DUT BRG with RX disabled\n", "BLUE")
210
+ # configuring transmitter #
211
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Transmitter", "BOLD")
212
+ test = cert_config.brg_configure(test=test, module=tester.energy2400,
213
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
214
+ values=[cycle, rep], target=TESTER)[0]
215
+ if test.rc == TEST_FAILED:
216
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive signal indicator transmitter configuration!")
217
+ return test
218
+
219
+ # phase analysis #
220
+ cert_mqtt.mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME, "disable_rx")
221
+ expected_signal_ind_pkts = [0]
222
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=dut, tx_brg=tester)
223
+ if len(rec_sig_ind_pkts) not in expected_signal_ind_pkts:
224
+ test.rc = TEST_FAILED
225
+ test.add_reason(f"disable_rx phase failed - DUT {dut.id_str} received signal indicator packets\n"
226
+ f"received {len(rec_sig_ind_pkts)} packets, expected 0 packets")
227
+
228
+ return test
229
+
230
+
231
+ def test_rx_tx(test):
232
+ tx_cycle, tx_rep = 5, 4
233
+ rx_cycle, rx_rep = 5, 4
234
+ dut = cert_config.get_brg_by_target(test, DUT)
235
+ tester = cert_config.get_brg_by_target(test, TESTER)
236
+ utPrint("Both TESTER and DUT are transmitters and receivers\n", "BLUE")
237
+ # configuring dut brg as receiver
238
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Receiver", "BOLD")
239
+ test = cert_config.brg_configure(test=test, module=dut.sensors, fields=[BRG_SENSOR0],
240
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR])[0]
241
+ if test.rc == TEST_FAILED and test.exit_on_param_failure:
242
+ test.add_reason(f"BRG {dut.id_str}: didn't receive signal indicator receiver configuration!")
243
+ return test
244
+ utPrint(f"BRG {dut.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
245
+ # configuring dut brg as transmitter
246
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Transmitter", "BOLD")
247
+ test = cert_config.brg_configure(test=test, module=dut.energy2400, fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
248
+ values=[tx_cycle, tx_rep])[0]
249
+ if test.rc == TEST_FAILED and test.exit_on_param_failure:
250
+ test.add_reason(f"BRG {dut.id_str}: didn't receive signal indicator transmitter configuration!")
251
+ return test
252
+ utPrint(f"BRG {dut.id_str} configured to be transmitter - cycle={tx_cycle}, repetition={tx_rep}", "BOLD")
253
+
254
+ # configuring tester brg as receiver
255
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Receiver", "BOLD")
256
+ test = cert_config.brg_configure(test=test, module=tester.sensors,
257
+ fields=[BRG_SENSOR0],
258
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR],
259
+ target=TESTER)[0]
260
+ if test.rc == TEST_FAILED and test.exit_on_param_failure:
261
+ test.add_reason(f"BRG {tester.id_str}: didn't receive signal indicator receiver configuration!")
262
+ return test
263
+ utPrint(f"BRG {tester.id_str} successfully configured as Signal Indicator Receiver\n", "BOLD")
264
+
265
+ # configuring tester brg as transmitter (already configured as rx)
266
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Transmitter", "BOLD")
267
+ test = cert_config.brg_configure(test=test, module=tester.energy2400,
268
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
269
+ values=[rx_cycle, rx_rep],
270
+ target=TESTER)[0]
271
+ if test.rc == TEST_FAILED and test.exit_on_param_failure:
272
+ test.add_reason(f"BRG {tester.id_str}: didn't receive signal indicator transmitter configuration!")
273
+ return test
274
+ utPrint(f"BRG {tester.id_str} configured to be transmitter - cycle={rx_cycle}, repetition={rx_rep}")
275
+
276
+ # phase analysis #
277
+ cert_mqtt.mqtt_scan_n_create_log_file(test, NUM_OF_SCANNING_CYCLE * max(tx_cycle, rx_cycle) + SCAN_DELAY_TIME, "rx_tx")
278
+
279
+ # Analyzing dut performance as receiver
280
+ utPrint(f"Analyzing DUT {dut.id_str} performance as a Receiver\n", "BOLD")
281
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=dut, tx_brg=tester)
282
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg=tester, rx_brg=dut, cycles=NUM_OF_SCANNING_CYCLE, received_pkts=rec_sig_ind_pkts):
283
+ test.rc = TEST_FAILED
284
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(dut, tester, NUM_OF_SCANNING_CYCLE)
285
+ test.add_reason(f"rx_tx phase failed - BRG {dut.id_str} received wrong number of "
286
+ f"signal indicator packets\nreceived {len(rec_sig_ind_pkts)} packets, "
287
+ f"expected {expected_signal_ind_pkts} packets")
288
+ print(rec_sig_ind_pkts) # TODO: logging print(debug)
289
+
290
+ # Analyzing tester performance as receiver
291
+ utPrint(f"Analyzing DUT {tester.id_str} performance as a Transmitter\n", "BOLD")
292
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=tester, tx_brg=dut)
293
+ if cert_common.sig_ind_pkts_fail_analysis(tx_brg=dut, rx_brg=tester, cycles=NUM_OF_SCANNING_CYCLE, received_pkts=rec_sig_ind_pkts):
294
+ test.rc = TEST_FAILED
295
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(dut, tester, NUM_OF_SCANNING_CYCLE)
296
+ test.add_reason(f"rx_tx phase failed - BRG {tester.id_str} received wrong number of "
297
+ f"signal indicator packets\n received {len(rec_sig_ind_pkts)} packets, "
298
+ f"expected {expected_signal_ind_pkts} packets")
299
+ print(rec_sig_ind_pkts) # TODO: logging print(debug)
300
+ # NOTE: We skipped the antenna and output power checks for this phase
301
+ return test
302
+
303
+
304
+ SIGNAL_INDICATOR_TEST_MAP = {"rssi_threshold": test_rssi_threshold, "rx": test_rx,
305
+ "tx_eu_pattern": test_tx_eu_pattern,
306
+ "disable_tx": test_disable_tx, "rx_tx": test_rx_tx,
307
+ "disable_rx": test_disable_rx}
308
+
309
+
310
+ def run(test):
311
+ # Test prolog
312
+ test = cert_common.test_prolog(test)
313
+ brg_dut = cert_config.get_brg_by_target(test, DUT)
314
+ brg_tester = cert_config.get_brg_by_target(test, TESTER)
315
+
316
+ for param in test.params:
317
+ phase_run_print(param.name)
318
+ test = SIGNAL_INDICATOR_TEST_MAP[param.value](test)
319
+ cert_mqtt.generate_log_file(test, param.name)
320
+ field_functionality_pass_fail_print(test, param.name)
321
+ test.set_phase_rc(param.name, test.rc)
322
+ test.add_phase_reason(param.name, test.reason)
323
+ if test.rc == TEST_FAILED:
324
+ if test.exit_on_param_failure:
325
+ break # break the whole for loop and keep the test as failed
326
+ else:
327
+ test.reset_result() # reset result and continue to next param
328
+ continue
329
+
330
+ # Reset to defaults after every phase (don't fail the phase on that)
331
+ test = cert_config.config_brg_defaults(test, modules=[brg_dut.energy2400, brg_dut.sensors], target=DUT)[0]
332
+ if test.rc == TEST_FAILED:
333
+ test.add_reason("Failed to restore brg0 to defaults")
334
+ else:
335
+ test = cert_config.config_brg_defaults(test,
336
+ modules=[brg_tester.energy2400, brg_tester.sensors],
337
+ target=TESTER)[0]
338
+ if test.rc == TEST_FAILED:
339
+ test.add_reason("Failed to restore brg1 to defaults")
340
+ if test.rc == TEST_FAILED:
341
+ test.set_phase_rc(param.name, test.rc)
342
+ test.add_phase_reason(param.name, test.reason)
343
+ if test.exit_on_param_failure:
344
+ break
345
+ else:
346
+ test.reset_result()
347
+
348
+ return cert_common.test_epilog(test, revert_brgs=True,
349
+ modules=[brg_dut.energy2400, brg_dut.sensors],
350
+ brg1_modules=[brg_tester.energy2400, brg_tester.sensors])
@@ -11,6 +11,6 @@
11
11
  "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
14
+ "dataSimOnlyTest": 0,
15
15
  "allSupportedValues": [15, 20, 40, 0]
16
16
  }
@@ -1,8 +1,9 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
6
7
 
7
8
 
8
9
  def run(test):
@@ -16,7 +17,7 @@ def run(test):
16
17
  for param in test.params:
17
18
  param_name = f"{param.name}"
18
19
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=sub1g_module)[0]
19
- generate_log_file(test, param_name)
20
+ cert_mqtt.generate_log_file(test, param_name)
20
21
  field_functionality_pass_fail_print(test, fields, value=param_name)
21
22
  test.set_phase_rc(param.name, test.rc)
22
23
  test.add_phase_reason(param.name, test.reason)
@@ -11,7 +11,7 @@
11
11
  "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
14
+ "dataSimOnlyTest": 0,
15
15
  "allSupportedValues": ["SUB1G_ENERGY_PATTERN_NO_ENERGIZING", "SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000",
16
16
  "SUB1G_ENERGY_PATTERN_FCC_HOPPING", "SUB1G_ENERGY_PATTERN_JAPAN_1W",
17
17
  "SUB1G_ENERGY_PATTERN_JAPAN_350MW", "SUB1G_ENERGY_PATTERN_KOREA",
@@ -1,8 +1,9 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
6
7
 
7
8
 
8
9
  def run(test):
@@ -15,7 +16,7 @@ def run(test):
15
16
  return cert_common.test_epilog(test)
16
17
  for param in test.params:
17
18
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=sub1g_module)[0]
18
- generate_log_file(test, param.name)
19
+ cert_mqtt.generate_log_file(test, param.name)
19
20
  field_functionality_pass_fail_print(test, fields, value=param.name)
20
21
  test.set_phase_rc(param.name, test.rc)
21
22
  test.add_phase_reason(param.name, test.reason)
@@ -13,6 +13,6 @@
13
13
  "mandatory": 0,
14
14
  "multiBridgeTest": 0,
15
15
  "gwOnlyTest": 0,
16
- "internalBridge": 1,
16
+ "dataSimOnlyTest": 0,
17
17
  "allSupportedValues": []
18
18
  }
@@ -1,8 +1,8 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_mqtt as cert_mqtt
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_common as cert_common
5
+ import certificate.cert_mqtt as cert_mqtt
6
6
 
7
7
  # Test MACROS #
8
8
  SEC_TO_MS = 1000
@@ -25,8 +25,8 @@ def get_expected_hb_sleep_msgs_count(pkt):
25
25
  return [periods_ratio, periods_ratio + 1]
26
26
 
27
27
 
28
- def get_hb_sleep_pkts(test, start_ts, end_ts):
29
- mgmt_pkts_found = cert_mqtt.get_brg2gw_mgmt_pkts(test.mqttc, test)
28
+ def get_hb_sleep_pkts(test, start_ts, end_ts, target=DUT):
29
+ mgmt_pkts_found = cert_mqtt.get_brg2gw_mgmt_pkts(test.get_mqttc_by_target(target), test.active_brg)
30
30
  # Screen pkts according to ts
31
31
  mgmt_pkts = [p for p in mgmt_pkts_found if (start_ts <= p[TIMESTAMP] and p[TIMESTAMP] <= end_ts)]
32
32
  # return count of HbSleep pkts
@@ -67,12 +67,12 @@ def run(test):
67
67
 
68
68
  # On duration starts
69
69
  utPrint(f"On duration started - Waiting for {int(wltpkt.pkt.static_on_duration)} seconds!", "WARNING")
70
- cert_common.wait_time_n_print(wltpkt.pkt.static_on_duration)
70
+ wait_time_n_print(wltpkt.pkt.static_on_duration)
71
71
  utPrint(f"On duration expired - Entering sleep state for {int(wltpkt.pkt.static_sleep_duration)} seconds!", "BLUE")
72
72
  # Sleep duration starts
73
73
  sleep_state_start_ts = int(datetime.datetime.now().timestamp() * SEC_TO_MS)
74
- test.mqttc.flush_pkts()
75
- cert_common.wait_time_n_print(wltpkt.pkt.static_sleep_duration)
74
+ test.get_mqttc_by_target(DUT).flush_pkts()
75
+ wait_time_n_print(wltpkt.pkt.static_sleep_duration)
76
76
  sleep_state_end_ts = int(datetime.datetime.now().timestamp() * SEC_TO_MS)
77
77
  utPrint(f"Sleep duration expired - Returning to on state for {int(wltpkt.pkt.static_on_duration)} seconds!", "BLUE")
78
78
 
@@ -9,13 +9,13 @@
9
9
  "rssi_threshold - One external sensor with no scrambling is configured and rssi threshold is set to -25. We expect to receive sensor packets only from the registered sensor & with rssi value between 0 to -25.",
10
10
  "snsr0_no_scrmbl - One external sensor with no scrambling is configured and no rssi threshold is set. We expect to receive unscrambled sensor packets only from the registered sensor, with no rssi limitations.",
11
11
  "snsr1_scrmbl - One external sensor with scrambling is configured with and no rssi threshold is set. We expect to receive scrambled sensor packets only from the registered sensor, with no rssi limitations.",
12
- "snsr0_scrmbl_snsr1_no_scrmbl - Two external sensors are configured - one with scrambling and one without. No rssi threshold is set. We expect to receive sensor packets from both sensors, with the first sensor's data scrambled and the second sensor's data unscrambled.",
13
- "snsr0_scrmbl_snsr1_scrmbl - Two external sensors are configured - both with scrambling. No rssi threshold is set. We expect to receive sensor packets from both sensors, with both sensors' data scrambled.",
12
+ "snsr0_no_scrmbl_snsr1_scrmbl_snsr2_scrmbl - Three external sensors are configured - one without scrambling, second and third with scrambling. No rssi threshold is set. We expect to receive sensor packets from all sensors, with the first sensor's data scrambled and the other sensor's data unscrambled.",
13
+ "snsr0_no_scrmbl_snsr1_scrmbl_snsr2_unified - Three external sensors are configured - one without scrambling, second with scrambling and third is unified sensor. No rssi threshold is set. We expect to receive sensor packets from all sensors, with the first sensor's data unscrambled, the second sensor's data scrambled and the third sensor's data in unified format.",
14
14
  "Test epilog"],
15
15
  "expectedOutcome": "All phases passed successfully!",
16
16
  "mandatory": 0,
17
17
  "multiBridgeTest": 0,
18
18
  "gwOnlyTest": 0,
19
- "internalBridge": 1,
20
- "allSupportedValues": ["tag_data_only", "rssi_threshold", "snsr0_no_scrmbl", "snsr1_scrmbl", "snsr0_scrmbl_snsr1_no_scrmbl", "snsr0_scrmbl_snsr1_scrmbl"]
19
+ "dataSimOnlyTest": 1,
20
+ "allSupportedValues": ["tag_data_only", "rssi_threshold", "snsr2_unified", "snsr0_no_scrmbl", "snsr1_scrmbl", "snsr0_no_scrmbl_snsr1_scrmbl_snsr2_scrmbl", "snsr0_no_scrmbl_snsr1_scrmbl_snsr2_unified"]
21
21
  }