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
@@ -1,9 +1,11 @@
1
1
 
2
- from brg_certificate.cert_prints import *
3
- from brg_certificate.cert_defines import *
4
- from brg_certificate.wlt_types import *
5
- import brg_certificate.cert_common as cert_common
6
- import brg_certificate.cert_config as cert_config
2
+ from certificate.cert_prints import *
3
+ from certificate.cert_defines import *
4
+ from certificate.wlt_types import *
5
+ import certificate.cert_mqtt as cert_mqtt
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
8
+ import certificate.cert_data_sim as cert_data_sim
7
9
 
8
10
  GW_CYCLE_TIME = 0.02 # GW sends BLE packet every 20 nsec
9
11
 
@@ -41,7 +43,7 @@ def run(test):
41
43
  pixel_sim_thread.stop()
42
44
  time.sleep(10)
43
45
 
44
- cert_common.display_data(df, nfpkt=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
46
+ cert_common.display_data(df, tbc=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
45
47
 
46
48
  num_of_tags = len(df[TAG_ID].unique())
47
49
  print(f"Tags from DF: {num_of_tags}")
@@ -56,7 +58,7 @@ def run(test):
56
58
  num_of_tags_HB = mgmt_pkts[0][MGMT_PKT].pkt.tags_ctr
57
59
  print(f"Tags from HB: {num_of_tags_HB}\n ")
58
60
 
59
- cert_common.display_data(df, nfpkt=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
61
+ cert_common.display_data(df, tbc=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
60
62
 
61
63
  # compare the numbers of tags that come from the brg, success in 95% from number of tags (value) or more.
62
64
  if num_of_tags < (param.value * 0.95):
@@ -67,7 +69,7 @@ def run(test):
67
69
  test.add_reason(f"HB counter: {num_of_tags_HB}, expected: {param.name}!")
68
70
  # param epilog
69
71
  time.sleep(10)
70
- generate_log_file(test, param.name)
72
+ cert_mqtt.generate_log_file(test, param.name)
71
73
  field_functionality_pass_fail_print(test, "num_of_tags", value=param.name)
72
74
  test.set_phase_rc(param.name, test.rc)
73
75
  test.add_phase_reason(param.name, test.reason)
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "Output Power",
3
+ "module": "Datapath",
4
+ "purpose": "Test configuration for all supported datapath output power values",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Configuration",
6
+ "initialCondition": "Bridge configured 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"],
10
+ "expectedOutcome": "All values configured successfully",
11
+ "mandatory": 0,
12
+ "multiBridgeTest": 0,
13
+ "gwOnlyTest": 0,
14
+ "dataSimOnlyTest": 0,
15
+ "allSupportedValues": ["OUTPUT_POWER_2_4_MAX", "OUTPUT_POWER_2_4_MAX_MINUS_2", "OUTPUT_POWER_2_4_MAX_MINUS_3",
16
+ "OUTPUT_POWER_2_4_MAX_MINUS_4", "OUTPUT_POWER_2_4_MAX_MINUS_6", "OUTPUT_POWER_2_4_MAX_MINUS_7",
17
+ "OUTPUT_POWER_2_4_MAX_MINUS_8", "OUTPUT_POWER_2_4_MAX_MINUS_10", "OUTPUT_POWER_2_4_MAX_MINUS_11",
18
+ "OUTPUT_POWER_2_4_MAX_MINUS_12", "OUTPUT_POWER_2_4_MAX_MINUS_14", "OUTPUT_POWER_2_4_MAX_MINUS_15",
19
+ "OUTPUT_POWER_2_4_MAX_MINUS_16", "OUTPUT_POWER_2_4_MAX_MINUS_18", "OUTPUT_POWER_2_4_MAX_MINUS_19",
20
+ "OUTPUT_POWER_2_4_MAX_MINUS_20", "OUTPUT_POWER_2_4_MAX_MINUS_22", "OUTPUT_POWER_2_4_MAX_MINUS_23",
21
+ "OUTPUT_POWER_2_4_MAX_MINUS_26"]
22
+ }
@@ -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,8 +16,18 @@ def run(test):
15
16
  return cert_common.test_epilog(test)
16
17
 
17
18
  for param in test.params:
19
+ if not cert_common.output_power_supported(test.active_brg.board_type, param.value):
20
+ # Skip this parameter if its value isn't supported by the board
21
+ test.rc = TEST_SKIPPED
22
+ cert_mqtt.generate_log_file(test, param.name)
23
+ field_functionality_pass_fail_print(test, fields[0], value=param.name)
24
+ test.set_phase_rc(param.name, test.rc)
25
+ test.add_phase_reason(param.name, test.reason)
26
+ test.reset_result() # reset result and continue to next param
27
+ continue
28
+
18
29
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=datapath_module)[0]
19
- generate_log_file(test, param.name)
30
+ cert_mqtt.generate_log_file(test, param.name)
20
31
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
21
32
  test.set_phase_rc(param.name, test.rc)
22
33
  test.add_phase_reason(param.name, test.reason)
@@ -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": [5, 15, 30, 60]
16
16
  }
@@ -1,8 +1,10 @@
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
7
+ import certificate.cert_data_sim as cert_data_sim
6
8
 
7
9
 
8
10
  def run(test):
@@ -15,7 +17,7 @@ def run(test):
15
17
  return cert_common.test_epilog(test)
16
18
 
17
19
  for param in test.params:
18
- test = cert_config.brg_configure_ble5(test, fields=fields, values=[param.value, ag.RX_CHANNEL_10_250K, ag.PKT_FILTER_TEMP_PKT],
20
+ test = cert_config.brg_configure_ble5(test, fields=fields, values=[param.value, ag.RX_CHANNEL_10_500K, ag.PKT_FILTER_TEMP_PKT],
19
21
  module=datapath_module)[0]
20
22
  if test.rc == TEST_FAILED:
21
23
  if test.exit_on_param_failure:
@@ -36,9 +38,9 @@ def run(test):
36
38
  pixel_sim_thread.stop()
37
39
  time.sleep(5)
38
40
  cert_mqtt.dump_pkts(test, log=param.name)
39
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
41
+ cert_common.display_data(df, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
40
42
  test = cert_common.pacing_analysis(test, df=df, pacer_interval=param.value, num_of_pixels=num_of_pixels)
41
- generate_log_file(test, param.name)
43
+ cert_mqtt.generate_log_file(test, param.name)
42
44
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
43
45
  test.set_phase_rc(param.name, test.rc)
44
46
  test.add_phase_reason(param.name, test.reason)
@@ -11,6 +11,6 @@
11
11
  "mandatory": 1,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
14
+ "dataSimOnlyTest": 0,
15
15
  "allSupportedValues": [5, 10, 15, 30, 60]
16
16
  }
@@ -1,8 +1,10 @@
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
7
+ import certificate.cert_data_sim as cert_data_sim
6
8
 
7
9
 
8
10
  def run(test):
@@ -38,9 +40,9 @@ def run(test):
38
40
  pixel_sim_thread.stop()
39
41
  time.sleep(5)
40
42
  cert_mqtt.dump_pkts(test, log=param.name)
41
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
43
+ cert_common.display_data(df, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
42
44
  test = cert_common.pacing_analysis(test, df=df, pacer_interval=param.value, num_of_pixels=num_of_pixels)
43
- generate_log_file(test, param.name)
45
+ cert_mqtt.generate_log_file(test, param.name)
44
46
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
45
47
  test.set_phase_rc(param.name, test.rc)
46
48
  test.add_phase_reason(param.name, test.reason)
@@ -11,6 +11,6 @@
11
11
  "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
15
- "allSupportedValues": ["DATAPATH_PATTERN_STANDARD", "DATAPATH_PATTERN_38_38_39", "DATAPATH_PATTERN_EU_PATTERN"]
14
+ "dataSimOnlyTest": 0,
15
+ "allSupportedValues": ["DATAPATH_PATTERN_STANDARD", "DATAPATH_PATTERN_38_38_39", "DATAPATH_PATTERN_EU_PATTERN", "DATAPATH_PATTERN_EXTENDED_ADV", "DATAPATH_PATTERN_EXTENDED_ADV_38_39", "DATAPATH_PATTERN_EXTENDED_ADV_CH_10"]
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):
@@ -14,10 +15,17 @@ def run(test):
14
15
  if test.rc == TEST_FAILED:
15
16
  return cert_common.test_epilog(test)
16
17
 
18
+ # configure tester to listen to ch39 so we can receive 38-38-39 and euro pattern packets
19
+ test = cert_config.brg_configure(test, fields=[BRG_RX_CHANNEL], values=[ag.RX_CHANNEL_39],
20
+ module=test.tester.internal_brg.datapath,
21
+ target=TESTER)[0]
22
+ if test.rc == TEST_FAILED:
23
+ return cert_common.test_epilog(test)
24
+
17
25
  for param in test.params:
18
26
  # Set brg cfg
19
27
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=datapath_module)[0]
20
- generate_log_file(test, param.name)
28
+ cert_mqtt.generate_log_file(test, param.name)
21
29
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
22
30
  test.set_phase_rc(param.name, test.rc)
23
31
  test.add_phase_reason(param.name, test.reason)
@@ -25,4 +33,8 @@ def run(test):
25
33
  if test.exit_on_param_failure:
26
34
  break # break the whole for loop and keep the test as failed
27
35
  test.reset_result() # reset result and continue to next param
36
+
37
+ # configure tester to listen to default channel again
38
+ test = cert_config.brg_configure(test, module=test.tester.internal_brg.datapath, target=TESTER)[0]
39
+
28
40
  return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "Packet Filter BLE5 Channel 21",
3
+ "module": "Datapath",
4
+ "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters using BLE_5.0 channel 20",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
+ "initialCondition": "Bridge & data simulator configured to defaults",
7
+ "procedure": ["Test prolog",
8
+ "Packet filter & secondary BLE5 rx channel configuration",
9
+ "Generate pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Repeat for all given packet filter values",
12
+ "Test epilog and revert to defaults"],
13
+ "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
14
+ "mandatory": 0,
15
+ "multiBridgeTest": 0,
16
+ "gwOnlyTest": 0,
17
+ "dataSimOnlyTest": 0,
18
+ "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
19
+ }
@@ -0,0 +1,61 @@
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.ag.wlt_types_ag 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
+ import certificate.cert_data_sim as cert_data_sim
8
+
9
+ PKT_FILTER_TEST_PACER_INTERVAL = 10
10
+
11
+
12
+ def run(test):
13
+
14
+ fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
15
+ datapath_module = eval(f'ModuleDatapathV{test.active_brg.api_version}')
16
+
17
+ test = cert_common.test_prolog(test)
18
+ if test.rc == TEST_FAILED:
19
+ return cert_common.test_epilog(test)
20
+
21
+ for param in test.params:
22
+ test = cert_config.brg_configure_ble5(test, fields=fields,
23
+ values=[param.value, RX_CHANNEL_21, PKT_FILTER_TEST_PACER_INTERVAL],
24
+ module=datapath_module)[0]
25
+ test.set_phase_rc(param.name, test.rc)
26
+ test.add_phase_reason(param.name, test.reason)
27
+ if test.rc == TEST_FAILED:
28
+ if test.exit_on_param_failure:
29
+ break # break the whole for loop and keep the test as failed
30
+ else:
31
+ test.reset_result() # reset result and continue to next param
32
+ continue
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
34
+ num_of_pixels = 0
35
+ if test.data == DATA_SIMULATION:
36
+ # start generating pkts and send them using data simulator
37
+ num_of_pixels = 5
38
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2,
39
+ delay=0, pkt_types=[2], pixels_type=GEN3_EXTENDED,
40
+ channel=SECONDARY_RX_CHANNEL_21)
41
+ pixel_sim_thread.start()
42
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
43
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 6, per_pkt_type=True,
44
+ pkt_filter_cfg=param.value, flush_pkts=True)
45
+ if test.data == DATA_SIMULATION:
46
+ # stop generating pkts with data simulator and wait a few seconds for full flush
47
+ pixel_sim_thread.stop()
48
+ time.sleep(5)
49
+ cert_common.display_data(df, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
50
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
51
+ num_of_pixels=num_of_pixels, is_ble5_test=True)
52
+ cert_mqtt.generate_log_file(test, param.name)
53
+ field_functionality_pass_fail_print(test, fields[0], value=param.name)
54
+ test.set_phase_rc(param.name, test.rc)
55
+ test.add_phase_reason(param.name, test.reason)
56
+ if test.rc == TEST_FAILED:
57
+ if test.exit_on_param_failure:
58
+ break # break the whole for loop and keep the test as failed
59
+ test.reset_result() # reset result and continue to next param
60
+
61
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
@@ -14,6 +14,6 @@
14
14
  "mandatory": 0,
15
15
  "multiBridgeTest": 0,
16
16
  "gwOnlyTest": 0,
17
- "internalBridge": 1,
17
+ "dataSimOnlyTest": 0,
18
18
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
19
19
  }
@@ -1,8 +1,10 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.ag.wlt_types_ag 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.ag.wlt_types_ag import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
10
 
@@ -18,7 +20,7 @@ def run(test):
18
20
 
19
21
  for param in test.params:
20
22
  test = cert_config.brg_configure_ble5(test, fields=fields,
21
- values=[param.value, RX_CHANNEL_10_250K, PKT_FILTER_TEST_PACER_INTERVAL],
23
+ values=[param.value, RX_CHANNEL_10_500K, PKT_FILTER_TEST_PACER_INTERVAL],
22
24
  module=datapath_module)[0]
23
25
  test.set_phase_rc(param.name, test.rc)
24
26
  test.add_phase_reason(param.name, test.reason)
@@ -28,8 +30,7 @@ def run(test):
28
30
  else:
29
31
  test.reset_result() # reset result and continue to next param
30
32
  continue
31
- print("waiting 5 seconds for datapath to clear")
32
- print_update_wait(5)
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
33
34
  num_of_pixels = 0
34
35
  if test.data == DATA_SIMULATION:
35
36
  # start generating pkts and send them using data simulator
@@ -44,10 +45,10 @@ def run(test):
44
45
  # stop generating pkts with data simulator and wait a few seconds for full flush
45
46
  pixel_sim_thread.stop()
46
47
  time.sleep(5)
47
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
48
+ cert_common.display_data(df, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
48
49
  test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
49
50
  num_of_pixels=num_of_pixels, is_ble5_test=True)
50
- generate_log_file(test, param.name)
51
+ cert_mqtt.generate_log_file(test, param.name)
51
52
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
52
53
  test.set_phase_rc(param.name, test.rc)
53
54
  test.add_phase_reason(param.name, test.reason)
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "Packet Filter BLE5 Using Bridge to Gateway Extended Advertising",
3
+ "module": "Datapath",
4
+ "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters using BLE_5.0, while the bridge is transmitting in extended advertising",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
+ "initialCondition": "Bridge & data simulator configured to defaults",
7
+ "procedure": ["Test prolog",
8
+ "Packet filter & secondary BLE5 rx channel configuration & pattern configuration to bridge to gateway extended advertising",
9
+ "Generate pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Test epilog and revert to defaults"],
12
+ "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
13
+ "mandatory": 0,
14
+ "multiBridgeTest": 0,
15
+ "gwOnlyTest": 0,
16
+ "dataSimOnlyTest": 0,
17
+ "allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "RX_CHANNEL_10_500K"]
18
+ }
@@ -0,0 +1,83 @@
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.ag.wlt_types_ag import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
8
+
9
+ PKT_FILTER_TEST_PACER_INTERVAL = 4
10
+
11
+
12
+ def run(test):
13
+
14
+ fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL, BRG_PATTERN]
15
+ datapath_module = eval(f'ModuleDatapathV{test.active_brg.api_version}')
16
+
17
+ test = cert_common.test_prolog(test)
18
+ if test.rc == TEST_FAILED:
19
+ return cert_common.test_epilog(test)
20
+
21
+ test = cert_config.brg_configure_ble5(test, fields=fields, values=[PKT_FILTER_TEMP_AND_ADVANCED_PKTS,
22
+ RX_CHANNEL_10_500K, PKT_FILTER_TEST_PACER_INTERVAL,
23
+ DATAPATH_PATTERN_EXTENDED_ADV], module=datapath_module)[0]
24
+ if test.rc == TEST_FAILED:
25
+ return cert_common.test_epilog(test)
26
+
27
+ for param in test.params:
28
+ # Configure tester's rx channel
29
+ test = cert_config.brg_configure(test, fields=[BRG_RX_CHANNEL],
30
+ values=[param.value],
31
+ module=test.tester.internal_brg.datapath,
32
+ target=TESTER)[0]
33
+ test.set_phase_rc(param.name, test.rc)
34
+ test.add_phase_reason(param.name, test.reason)
35
+ if test.rc == TEST_FAILED:
36
+ if test.exit_on_param_failure:
37
+ break # break the whole for loop and keep the test as failed
38
+ else:
39
+ test.reset_result() # reset result and continue to next param
40
+ continue
41
+
42
+ # Configure the BRG to DATAPATH_PATTERN_EXTENDED_ADV_CH_10 if the GW listens to channel 10
43
+ if param.value == RX_CHANNEL_10_500K:
44
+ test = cert_config.brg_configure_ble5(test, fields=fields, values=[PKT_FILTER_TEMP_AND_ADVANCED_PKTS,
45
+ RX_CHANNEL_10_500K, PKT_FILTER_TEST_PACER_INTERVAL,
46
+ DATAPATH_PATTERN_EXTENDED_ADV_CH_10], module=datapath_module)[0]
47
+ if test.rc == TEST_FAILED:
48
+ if test.exit_on_param_failure:
49
+ break # break the whole for loop and keep the test as failed
50
+ test.reset_result() # reset result and continue to next param
51
+
52
+ wait_time_n_print(5, txt="Waiting datapath to clear")
53
+ num_of_pixels = 0
54
+ if test.data == DATA_SIMULATION:
55
+ # start generating pkts and send them using data simulator
56
+ num_of_pixels = 50
57
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2,
58
+ delay=0, pkt_types=[2], pixels_type=GEN3_EXTENDED)
59
+ pixel_sim_thread.start()
60
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
61
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 8, per_pkt_type=True,
62
+ pkt_filter_cfg=PKT_FILTER_TEMP_AND_ADVANCED_PKTS, flush_pkts=True)
63
+ if test.data == DATA_SIMULATION:
64
+ # stop generating pkts with data simulator and wait a few seconds for full flush
65
+ pixel_sim_thread.stop()
66
+ time.sleep(5)
67
+ cert_common.display_data(df, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
68
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df,
69
+ pkt_filter_cfg=PKT_FILTER_TEMP_AND_ADVANCED_PKTS,
70
+ num_of_pixels=num_of_pixels, is_ble5_test=True, ext_adv_brg2gw=True)
71
+ cert_mqtt.generate_log_file(test, param.name)
72
+ field_functionality_pass_fail_print(test, fields[0], value=param.name)
73
+ test.set_phase_rc(param.name, test.rc)
74
+ test.add_phase_reason(param.name, test.reason)
75
+ if test.rc == TEST_FAILED:
76
+ if test.exit_on_param_failure:
77
+ break # break the whole for loop and keep the test as failed
78
+ test.reset_result() # reset result and continue to next param
79
+
80
+ # Revert tester's rx channel
81
+ test = cert_config.brg_configure(test, module=test.tester.internal_brg.datapath, target=TESTER)[0]
82
+
83
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module], ble5=True)
@@ -14,6 +14,6 @@
14
14
  "mandatory": 0,
15
15
  "multiBridgeTest": 0,
16
16
  "gwOnlyTest": 0,
17
- "internalBridge": 1,
17
+ "dataSimOnlyTest": 0,
18
18
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS"]
19
19
  }
@@ -1,8 +1,10 @@
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_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
10
 
@@ -28,8 +30,7 @@ def run(test):
28
30
  else:
29
31
  test.reset_result() # reset result and continue to next param
30
32
  continue
31
- print("waiting 5 seconds for datapath to clear")
32
- print_update_wait(5)
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
33
34
 
34
35
  num_of_pixels = 0
35
36
  if test.data == DATA_SIMULATION:
@@ -45,10 +46,10 @@ def run(test):
45
46
  # stop generating pkts with data simulator and wait a few seconds for full flush
46
47
  pixel_sim_thread.stop()
47
48
  time.sleep(5)
48
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"pkt_filter_gen3_{param.name}_", dir=test.dir)
49
+ cert_common.display_data(df, tbc=True, name_prefix=f"pkt_filter_gen3_{param.name}_", dir=test.dir)
49
50
  test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
50
51
  num_of_pixels=num_of_pixels)
51
- generate_log_file(test, param.name)
52
+ cert_mqtt.generate_log_file(test, param.name)
52
53
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
53
54
  test.set_phase_rc(param.name, test.rc)
54
55
  test.add_phase_reason(param.name, test.reason)
@@ -14,6 +14,6 @@
14
14
  "mandatory": 0,
15
15
  "multiBridgeTest": 0,
16
16
  "gwOnlyTest": 0,
17
- "internalBridge": 1,
17
+ "dataSimOnlyTest": 0,
18
18
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
19
19
  }
@@ -1,8 +1,10 @@
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_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
10
 
@@ -28,8 +30,7 @@ def run(test):
28
30
  else:
29
31
  test.reset_result() # reset result and continue to next param
30
32
  continue
31
- print("waiting 5 seconds for datapath to clear")
32
- print_update_wait(5)
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
33
34
 
34
35
  num_of_pixels = 0
35
36
  if test.data == DATA_SIMULATION:
@@ -45,10 +46,10 @@ def run(test):
45
46
  # stop generating pkts with data simulator and wait a few seconds for full flush
46
47
  pixel_sim_thread.stop()
47
48
  time.sleep(5)
48
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"pkt_filter_{param.name}_", dir=test.dir)
49
+ cert_common.display_data(df, tbc=True, name_prefix=f"pkt_filter_{param.name}_", dir=test.dir)
49
50
  test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df,
50
51
  pkt_filter_cfg=param.value, num_of_pixels=num_of_pixels)
51
- generate_log_file(test, param.name)
52
+ cert_mqtt.generate_log_file(test, param.name)
52
53
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
53
54
  test.set_phase_rc(param.name, test.rc)
54
55
  test.add_phase_reason(param.name, test.reason)
@@ -12,6 +12,6 @@
12
12
  "mandatory": 0,
13
13
  "multiBridgeTest": 0,
14
14
  "gwOnlyTest": 0,
15
- "internalBridge": 1,
15
+ "dataSimOnlyTest": 0,
16
16
  "allSupportedValues": ["-80", "-65", "-10"]
17
17
  }
@@ -1,8 +1,10 @@
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_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
 
8
10
  def rssi_threshold_analysis(test, df, threshold):
@@ -48,8 +50,7 @@ def run(test):
48
50
  else:
49
51
  test.reset_result() # reset result and continue to next param
50
52
  continue
51
- print("waiting 5 seconds for datapath to clear")
52
- print_update_wait(5)
53
+ wait_time_n_print(5, txt="Waiting datapath to clear")
53
54
 
54
55
  if test.data == DATA_SIMULATION:
55
56
  # start generating pkts and send them using data simulator
@@ -64,7 +65,7 @@ def run(test):
64
65
  test = rssi_threshold_analysis(test, df, param.value)
65
66
 
66
67
  # param epilog
67
- generate_log_file(test, param.name)
68
+ cert_mqtt.generate_log_file(test, param.name)
68
69
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
69
70
  test.set_phase_rc(param.name, test.rc)
70
71
  test.add_phase_reason(param.name, test.reason)