wiliot-certificate 4.5.0a2__tar.gz → 4.5.0a3__tar.gz

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 (192) hide show
  1. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/PKG-INFO +4 -9
  2. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/README.md +3 -8
  3. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/pyproject.toml +1 -1
  4. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_common.py +2 -2
  5. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_config.py +3 -3
  6. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/certificate_eth_test_list.txt +3 -2
  7. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/certificate_sanity_test_list.txt +3 -2
  8. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/certificate_test_list.txt +3 -3
  9. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/downlink_test/downlink_test.py +1 -4
  10. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/event_ble5_test/event_ble5_test.py +6 -4
  11. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/event_test/event_test.py +4 -3
  12. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +4 -4
  13. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.py +5 -5
  14. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +5 -5
  15. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.py +10 -8
  16. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +1 -2
  17. wiliot_certificate-4.5.0a3/src/certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.json +19 -0
  18. wiliot_certificate-4.5.0a3/src/certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.py +171 -0
  19. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +4 -9
  20. wiliot_certificate-4.5.0a3/src/common/web/templates/generator.html +210 -0
  21. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/web/web_utils.py +78 -56
  22. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/gui_certificate/server.py +111 -19
  23. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/gui_certificate/templates/cert_run.html +43 -6
  24. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/wiliot_certificate.egg-info/PKG-INFO +4 -9
  25. wiliot_certificate-4.5.0a2/src/certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.json +0 -20
  26. wiliot_certificate-4.5.0a2/src/certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.py +0 -331
  27. wiliot_certificate-4.5.0a2/src/common/web/templates/generator.html +0 -148
  28. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/LICENSE +0 -0
  29. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/setup.cfg +0 -0
  30. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/__init__.py +0 -0
  31. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_cmd_if.html +0 -0
  32. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag.py +0 -0
  33. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/brg2brg_ota.json +0 -0
  34. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/brg2gw_hb.json +0 -0
  35. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +0 -0
  36. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/calibration.json +0 -0
  37. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/custom.json +0 -0
  38. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/datapath.json +0 -0
  39. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/energy2400.json +0 -0
  40. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/energySub1g.json +0 -0
  41. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/externalSensor.json +0 -0
  42. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/interface.json +0 -0
  43. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/powerManagement.json +0 -0
  44. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -0
  45. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/signal_indicator_data.json +0 -0
  46. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +0 -0
  47. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +0 -0
  48. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/ag/wlt_types_ag_jsons/unified_sensor_pkt.json +0 -0
  49. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_data_sim.py +0 -0
  50. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_defines.py +0 -0
  51. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_gw_sim.py +0 -0
  52. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_mqtt.py +0 -0
  53. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_prints.py +0 -0
  54. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_protobuf.py +0 -0
  55. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_results.py +0 -0
  56. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/cert_utils.py +0 -0
  57. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/certificate.py +0 -0
  58. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/certificate_cli.py +0 -0
  59. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/calibration/interval_test/interval_test.json +0 -0
  60. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/calibration/interval_test/interval_test.py +0 -0
  61. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/calibration/output_power_test/output_power_test.json +0 -0
  62. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/calibration/output_power_test/output_power_test.py +0 -0
  63. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/calibration/pattern_test/pattern_test.json +0 -0
  64. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/calibration/pattern_test/pattern_test.py +0 -0
  65. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.json +0 -0
  66. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.py +0 -0
  67. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/acl_test/acl_test.json +0 -0
  68. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/acl_test/acl_test.py +0 -0
  69. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.json +0 -0
  70. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.py +0 -0
  71. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.json +0 -0
  72. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.py +0 -0
  73. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/connection_test/connection_test.json +0 -0
  74. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/connection_test/connection_test.py +0 -0
  75. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/deduplication_test/deduplication_test.json +0 -0
  76. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/deduplication_test/deduplication_test.py +0 -0
  77. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/downlink_test/downlink_test.json +0 -0
  78. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.json +0 -0
  79. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.py +0 -0
  80. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/reboot_test/reboot_test.json +0 -0
  81. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/reboot_test/reboot_test.py +0 -0
  82. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/registration_test/registration_test.json +0 -0
  83. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/registration_test/registration_test.py +0 -0
  84. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/registration_test/registration_test_cli.py +0 -0
  85. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/stress_test/stress_test.json +0 -0
  86. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/stress_test/stress_test.py +0 -0
  87. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.json +0 -0
  88. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.py +0 -0
  89. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/uplink_test/uplink_test.json +0 -0
  90. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/cloud_connectivity/uplink_test/uplink_test.py +0 -0
  91. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/aging_test/aging_test.json +0 -0
  92. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/aging_test/aging_test.py +0 -0
  93. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/event_ble5_test/event_ble5_test.json +0 -0
  94. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/event_test/event_test.json +0 -0
  95. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +0 -0
  96. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +0 -0
  97. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/output_power_test/output_power_test.json +0 -0
  98. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/output_power_test/output_power_test.py +0 -0
  99. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +0 -0
  100. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +0 -0
  101. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +0 -0
  102. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pattern_test/pattern_test.json +0 -0
  103. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pattern_test/pattern_test.py +0 -0
  104. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.json +0 -0
  105. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +0 -0
  106. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.json +0 -0
  107. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +0 -0
  108. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +0 -0
  109. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +0 -0
  110. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +0 -0
  111. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +0 -0
  112. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +0 -0
  113. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.json +0 -0
  114. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.py +0 -0
  115. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_channel_test/rx_channel_test.json +0 -0
  116. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_channel_test/rx_channel_test.py +0 -0
  117. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +0 -0
  118. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +0 -0
  119. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +0 -0
  120. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +0 -0
  121. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +0 -0
  122. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +0 -0
  123. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/stress_test/stress_test.json +0 -0
  124. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/stress_test/stress_test.py +0 -0
  125. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +0 -0
  126. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +0 -0
  127. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_blink_test/action_blink_test.json +0 -0
  128. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_blink_test/action_blink_test.py +0 -0
  129. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.json +0 -0
  130. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.py +0 -0
  131. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.json +0 -0
  132. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.py +0 -0
  133. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.json +0 -0
  134. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.py +0 -0
  135. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.json +0 -0
  136. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.py +0 -0
  137. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.json +0 -0
  138. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.py +0 -0
  139. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.json +0 -0
  140. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.py +0 -0
  141. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.json +0 -0
  142. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.py +0 -0
  143. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +0 -0
  144. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.py +0 -0
  145. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +0 -0
  146. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +0 -0
  147. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/output_power_test/output_power_test.json +0 -0
  148. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/output_power_test/output_power_test.py +0 -0
  149. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/pattern_test/pattern_test.json +0 -0
  150. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/pattern_test/pattern_test.py +0 -0
  151. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +0 -0
  152. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +0 -0
  153. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +0 -0
  154. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +0 -0
  155. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +0 -0
  156. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy_sub1g/pattern_test/pattern_test.json +0 -0
  157. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/energy_sub1g/pattern_test/pattern_test.py +0 -0
  158. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +0 -0
  159. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +0 -0
  160. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +0 -0
  161. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/certificate/wlt_types.py +0 -0
  162. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/202/data.json +0 -0
  163. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/202/logs.json +0 -0
  164. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/202/status.json +0 -0
  165. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/203/data.json +0 -0
  166. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/203/logs.json +0 -0
  167. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/203/status.json +0 -0
  168. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/204/data.json +0 -0
  169. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/204/logs.json +0 -0
  170. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/204/status.json +0 -0
  171. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/205/data.json +0 -0
  172. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/205/logs.json +0 -0
  173. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/205/status.json +0 -0
  174. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/206/data.json +0 -0
  175. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/206/logs.json +0 -0
  176. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/206/status.json +0 -0
  177. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/__init__.py +0 -0
  178. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/api_if/api_validation.py +0 -0
  179. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/web/templates/index.html +0 -0
  180. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/web/templates/menu.html +0 -0
  181. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/web/templates/parser.html +0 -0
  182. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/web/templates/wlt_types.html +0 -0
  183. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/wltPb_pb2.py +0 -0
  184. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/wltPb_pb2.pyi +0 -0
  185. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/common/wlt_logo.png +0 -0
  186. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/gui_certificate/__init__.py +0 -0
  187. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/gui_certificate/gui_certificate_cli.py +0 -0
  188. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/wiliot_certificate.egg-info/SOURCES.txt +0 -0
  189. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/wiliot_certificate.egg-info/dependency_links.txt +0 -0
  190. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/wiliot_certificate.egg-info/entry_points.txt +0 -0
  191. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/wiliot_certificate.egg-info/requires.txt +0 -0
  192. {wiliot_certificate-4.5.0a2 → wiliot_certificate-4.5.0a3}/src/wiliot_certificate.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wiliot_certificate
3
- Version: 4.5.0a2
3
+ Version: 4.5.0a3
4
4
  Summary: A library for certifying Wiliot-compliant boards
5
5
  Author-email: Wiliot <support@wiliot.com>
6
6
  License-Expression: MIT
@@ -30,7 +30,7 @@ Requires-Dist: reportlab>=4.3.1
30
30
  Requires-Dist: google-api-python-client>=2.162.0
31
31
  Dynamic: license-file
32
32
 
33
- # wiliot-certificate Version 4.5.0
33
+ # wiliot-certificate
34
34
 
35
35
  <!-- Description -->
36
36
  wiliot-certificate is a Python library that provides tools for testing and certifying boards for compatibility with Wiliot’s ecosystem.
@@ -40,18 +40,16 @@ This python package includes the following tools:
40
40
  - Tester Upgrade (`wlt-cert-tester-upgrade`)
41
41
  - Registration Certificate (`wlt-cert-reg`)
42
42
 
43
- # Version:
44
- wiliot-certificate versions 4.5.0 are compatible with firmware version >=4.5.0 (API VERSION: 13)
43
+ # Versioning:
44
+ wiliot-certificate versions 4.5.x are compatible with firmware version >=4.5.0 (API VERSION: 13)
45
45
 
46
46
  ## Installing wiliot-certificate
47
- Install wiliot-certificate:
48
47
  ````commandline
49
48
  pip install wiliot-certificate
50
49
  ````
51
50
 
52
51
  ## Using wiliot-certificate
53
52
  ### Certification
54
- In terminal, run:
55
53
  ````commandline
56
54
  wlt-cert
57
55
  ````
@@ -63,7 +61,6 @@ Once set up it opens a terminal and tests your device.
63
61
 
64
62
 
65
63
  ### Certificate CLI
66
- In terminal, run:
67
64
  ````commandline
68
65
  wlt-cert-cli -h
69
66
  ````
@@ -71,7 +68,6 @@ CLI version of the certificate. Use -h for details on the different arguments.
71
68
 
72
69
 
73
70
  ### Tester Upgrade
74
- In terminal, run:
75
71
  ````commandline
76
72
  wlt-cert-tester-upgrade
77
73
  ````
@@ -79,7 +75,6 @@ Upgrades the firmware of the tester device to the version required for certifica
79
75
 
80
76
 
81
77
  ### Registration Certificate
82
- In terminal, run:
83
78
  ````commandline
84
79
  wlt-cert-reg
85
80
  ````
@@ -1,4 +1,4 @@
1
- # wiliot-certificate Version 4.5.0
1
+ # wiliot-certificate
2
2
 
3
3
  <!-- Description -->
4
4
  wiliot-certificate is a Python library that provides tools for testing and certifying boards for compatibility with Wiliot’s ecosystem.
@@ -8,18 +8,16 @@ This python package includes the following tools:
8
8
  - Tester Upgrade (`wlt-cert-tester-upgrade`)
9
9
  - Registration Certificate (`wlt-cert-reg`)
10
10
 
11
- # Version:
12
- wiliot-certificate versions 4.5.0 are compatible with firmware version >=4.5.0 (API VERSION: 13)
11
+ # Versioning:
12
+ wiliot-certificate versions 4.5.x are compatible with firmware version >=4.5.0 (API VERSION: 13)
13
13
 
14
14
  ## Installing wiliot-certificate
15
- Install wiliot-certificate:
16
15
  ````commandline
17
16
  pip install wiliot-certificate
18
17
  ````
19
18
 
20
19
  ## Using wiliot-certificate
21
20
  ### Certification
22
- In terminal, run:
23
21
  ````commandline
24
22
  wlt-cert
25
23
  ````
@@ -31,7 +29,6 @@ Once set up it opens a terminal and tests your device.
31
29
 
32
30
 
33
31
  ### Certificate CLI
34
- In terminal, run:
35
32
  ````commandline
36
33
  wlt-cert-cli -h
37
34
  ````
@@ -39,7 +36,6 @@ CLI version of the certificate. Use -h for details on the different arguments.
39
36
 
40
37
 
41
38
  ### Tester Upgrade
42
- In terminal, run:
43
39
  ````commandline
44
40
  wlt-cert-tester-upgrade
45
41
  ````
@@ -47,7 +43,6 @@ Upgrades the firmware of the tester device to the version required for certifica
47
43
 
48
44
 
49
45
  ### Registration Certificate
50
- In terminal, run:
51
46
  ````commandline
52
47
  wlt-cert-reg
53
48
  ````
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "wiliot_certificate"
7
- version = "4.5.0a2"
7
+ version = "4.5.0a3"
8
8
  authors = [
9
9
  { name="Wiliot", email="support@wiliot.com" }
10
10
  ]
@@ -606,8 +606,8 @@ def run_event_test_phase(test, phase, datapath_module, values, scan_time, event_
606
606
  scan_time_multiplier = (1 / 3)
607
607
  fields += [BRG_RSSI_MOVEMENT_THRESHOLD]
608
608
 
609
- test = (cert_config.brg_configure_ble5(test, fields=fields, values=values, module=datapath_module)[0] if ble5_test
610
- else cert_config.brg_configure(test, fields=fields, values=values, module=datapath_module)[0])
609
+ ble5 = ble5_test and test.dut_is_bridge() # ble5 only for bridge dut (with combo we don't need to wait)
610
+ test = cert_config.brg_configure(test, fields=fields, values=values, module=datapath_module, ble5=ble5)[0]
611
611
  test.set_phase_rc(phase, test.rc)
612
612
  test.add_phase_reason(phase, test.reason)
613
613
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
@@ -313,14 +313,14 @@ def brg_configure_ble5(test, cfg_pkt=None, module=None, fields=None, values=None
313
313
  if wait is False:
314
314
  return test, DONE
315
315
  while not pkts_found:
316
- if ((datetime.datetime.now() - start_time).seconds > ((ag.BLE5_PARAM_PRIMARY_CHANNEL_SCAN_CYCLE/1000)+1)):
316
+ if ((datetime.datetime.now() - start_time).seconds > BLE5_MAX_DURATION_SEC):
317
317
  if num_of_tries < 3:
318
318
  num_of_tries += 1
319
319
  start_time = datetime.datetime.now()
320
320
  gw_downlink(test=test, raw_tx_data=cfg_pkt.dump(), max_duration=BLE5_MAX_DURATION_MS, max_retries=BLE5_MAX_RETRIES, target=target)
321
- print(f"Brg configure - BLE5 mode : No pkts found after {(ag.BLE5_PARAM_PRIMARY_CHANNEL_SCAN_CYCLE/1000)+1} seconds, in try number {num_of_tries}")
321
+ print(f"Brg configure - BLE5 mode : No pkts found after {BLE5_MAX_DURATION_SEC} seconds, in try number {num_of_tries}")
322
322
  else:
323
- test.add_reason(f"Brg configure - BLE5 mode : No pkts found after {BLE5_MAX_DURATION_MS} seconds, in 3 tries")
323
+ test.add_reason(f"Brg configure - BLE5 mode : No pkts found after {BLE5_MAX_DURATION_SEC} seconds, in 3 tries")
324
324
  test.rc = TEST_FAILED
325
325
  time.sleep(1)
326
326
  mqttc.flush_pkts()
@@ -22,6 +22,7 @@ energy2400/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_
22
22
  energy2400/duty_cycle_test 1 25 50 75
23
23
  energy2400/signal_indicator_test rssi_threshold rx tx_eu_pattern disable_rx disable_tx rx_tx
24
24
  energy2400/signal_indicator_ble5_test rssi_threshold rx tx disable_rx disable_tx rx_tx
25
+ energy2400/signal_indicator_ext_adv_test ext_adv_rx37 ext_adv_rx10
25
26
 
26
27
  # ------------- energy_sub1g -------------
27
28
  energy_sub1g/pattern_test SUB1G_ENERGY_PATTERN_NO_ENERGIZING SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000 SUB1G_ENERGY_PATTERN_FCC_HOPPING SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500 SUB1G_ENERGY_PATTERN_NZ_HOPPING
@@ -67,8 +68,8 @@ cloud_connectivity/uplink_test mgmt_pkt pixels_pkt sensor_pkt
67
68
  cloud_connectivity/downlink_test
68
69
  cloud_connectivity/uplink_ext_adv_test
69
70
  cloud_connectivity/reboot_test
70
- cloud_connectivity/stress_test 20 40 60 80 100 120 140 160 180 200 222 250 285 333
71
- cloud_connectivity/ext_adv_stress_test 20 40 60 80 100 120 140 160 180 200
71
+ cloud_connectivity/stress_test
72
+ cloud_connectivity/ext_adv_stress_test
72
73
  cloud_connectivity/channel_scan_behaviour_test
73
74
  cloud_connectivity/acl_test deny allow
74
75
  cloud_connectivity/acl_ext_adv_test deny allow
@@ -22,6 +22,7 @@ energy2400/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_
22
22
  energy2400/duty_cycle_test 1 50 75
23
23
  energy2400/signal_indicator_test rx_tx
24
24
  energy2400/signal_indicator_ble5_test rx_tx
25
+ energy2400/signal_indicator_ext_adv_test ext_adv_rx37
25
26
 
26
27
  # ------------- energy_sub1g -------------
27
28
  energy_sub1g/pattern_test SUB1G_ENERGY_PATTERN_NO_ENERGIZING SUB1G_ENERGY_PATTERN_FCC_HOPPING SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500 SUB1G_ENERGY_PATTERN_NZ_HOPPING
@@ -59,7 +60,7 @@ cloud_connectivity/uplink_test mgmt_pkt pixels_pkt
59
60
  cloud_connectivity/downlink_test
60
61
  cloud_connectivity/uplink_ext_adv_test
61
62
  cloud_connectivity/reboot_test
62
- cloud_connectivity/stress_test 100 222
63
- cloud_connectivity/ext_adv_stress_test 20 100
63
+ cloud_connectivity/stress_test
64
+ cloud_connectivity/ext_adv_stress_test
64
65
  cloud_connectivity/acl_test deny
65
66
  cloud_connectivity/acl_ext_adv_test allow
@@ -22,7 +22,7 @@ energy2400/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_
22
22
  energy2400/duty_cycle_test 1 25 50 75
23
23
  energy2400/signal_indicator_test rssi_threshold rx tx_eu_pattern disable_rx disable_tx rx_tx
24
24
  energy2400/signal_indicator_ble5_test rssi_threshold rx tx disable_rx disable_tx rx_tx
25
- #energy2400/signal_indicator_ext_adv_test rssi_threshold brg0_tx_brg1_rx brg0_rxtx_brg1_rxtx
25
+ energy2400/signal_indicator_ext_adv_test ext_adv_rx37 ext_adv_rx10
26
26
 
27
27
  # ------------- energy_sub1g -------------
28
28
  energy_sub1g/pattern_test SUB1G_ENERGY_PATTERN_NO_ENERGIZING SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000 SUB1G_ENERGY_PATTERN_FCC_HOPPING SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500 SUB1G_ENERGY_PATTERN_NZ_HOPPING
@@ -67,8 +67,8 @@ cloud_connectivity/uplink_test mgmt_pkt pixels_pkt sensor_pkt geolocation
67
67
  cloud_connectivity/downlink_test
68
68
  cloud_connectivity/uplink_ext_adv_test
69
69
  cloud_connectivity/reboot_test
70
- cloud_connectivity/stress_test 20 40 60 80 100 120 140 160 180 200 222 250 285 333
71
- cloud_connectivity/ext_adv_stress_test 20 40 60 80 100 120 140 160 180 200
70
+ cloud_connectivity/stress_test
71
+ cloud_connectivity/ext_adv_stress_test
72
72
  cloud_connectivity/channel_scan_behaviour_test
73
73
  cloud_connectivity/acl_test deny allow
74
74
  cloud_connectivity/acl_ext_adv_test deny allow
@@ -121,10 +121,7 @@ def report_and_results(test, sniffed_pkts):
121
121
  test.reason = 'No packets collected.'
122
122
  return
123
123
 
124
- if test.active_brg.board_type == ag.BOARD_TYPE_FANSTEL_WIFI_V0:
125
- x_value = ('tx_max_retries', 'TX Max Retries')
126
- else:
127
- x_value = ('tx_max_duration', 'TX Max Duration')
124
+ x_value = ('tx_max_duration', 'TX Max Duration')
128
125
 
129
126
  # Create scatter with OLS trendline per channel
130
127
  fig = px.scatter(
@@ -63,10 +63,11 @@ def run(test):
63
63
  test = cert_common.test_prolog(test)
64
64
  if test.rc == TEST_FAILED:
65
65
  return cert_common.test_epilog(test)
66
+ dut = cert_config.get_brg_by_target(test, DUT)
66
67
 
67
68
  for param in test.params:
68
69
  phase_run_print(param.name)
69
- test = EVENT_TEST_MAP[param.value](test, param.name, test.active_brg.datapath)
70
+ test = EVENT_TEST_MAP[param.value](test, param.name, dut.datapath)
70
71
  cert_mqtt.generate_log_file(test, param.name)
71
72
  field_functionality_pass_fail_print(test, param.name)
72
73
  test.set_phase_rc(param.name, test.rc)
@@ -79,10 +80,11 @@ def run(test):
79
80
  continue
80
81
 
81
82
  # Reset to defaults after every phase (don't fail the phase on that)
82
- test = cert_config.config_brg_defaults(test, modules=[test.active_brg.datapath], ble5=True)[0]
83
- print_update_wait(2 * BLE5_MAX_DURATION_SEC)
83
+ test = cert_config.config_brg_defaults(test, modules=[dut.datapath], ble5=test.dut_is_bridge())[0]
84
84
  if test.rc == TEST_FAILED:
85
85
  test.add_reason("Failed to restore brg to defaults")
86
+ if test.dut_is_bridge():
87
+ wait_time_n_print(BLE5_MAX_DURATION_SEC)
86
88
 
87
89
  if test.rc == TEST_FAILED:
88
90
  test.set_phase_rc(param.name, test.rc)
@@ -92,4 +94,4 @@ def run(test):
92
94
  else:
93
95
  test.reset_result()
94
96
 
95
- return cert_common.test_epilog(test, revert_brgs=True, modules=[test.active_brg.datapath], ble5=True)
97
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -54,10 +54,11 @@ def run(test):
54
54
  test = cert_common.test_prolog(test)
55
55
  if test.rc == TEST_FAILED:
56
56
  return cert_common.test_epilog(test)
57
+ dut = cert_config.get_brg_by_target(test, DUT)
57
58
 
58
59
  for param in test.params:
59
60
  phase_run_print(param.name)
60
- test = EVENT_TEST_MAP[param.value](test, param.name, test.active_brg.datapath)
61
+ test = EVENT_TEST_MAP[param.value](test, param.name, dut.datapath)
61
62
  cert_mqtt.generate_log_file(test, param.name)
62
63
  field_functionality_pass_fail_print(test, param.name)
63
64
  test.set_phase_rc(param.name, test.rc)
@@ -70,7 +71,7 @@ def run(test):
70
71
  continue
71
72
 
72
73
  # Reset to defaults after every phase (don't fail the phase on that)
73
- test = cert_config.config_brg_defaults(test, modules=[test.active_brg.datapath])[0]
74
+ test = cert_config.config_brg_defaults(test, modules=[dut.datapath])[0]
74
75
  if test.rc == TEST_FAILED:
75
76
  test.add_reason("Failed to restore brg to defaults")
76
77
 
@@ -82,4 +83,4 @@ def run(test):
82
83
  else:
83
84
  test.reset_result()
84
85
 
85
- return cert_common.test_epilog(test, revert_brgs=True, modules=[test.active_brg.datapath])
86
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[dut.datapath])
@@ -10,15 +10,15 @@ import certificate.cert_data_sim as cert_data_sim
10
10
  def run(test):
11
11
 
12
12
  fields = [BRG_PACER_INTERVAL, BRG_RX_CHANNEL, BRG_PKT_FILTER]
13
- datapath_module = test.active_brg.datapath
13
+ dut = cert_config.get_brg_by_target(test, DUT)
14
14
 
15
15
  test = cert_common.test_prolog(test)
16
16
  if test.rc == TEST_FAILED:
17
17
  return cert_common.test_epilog(test)
18
18
 
19
19
  for param in test.params:
20
- test = cert_config.brg_configure_ble5(test, fields=fields, values=[param.value, ag.RX_CHANNEL_10_500K, ag.PKT_FILTER_TEMP_PKT],
21
- module=datapath_module)[0]
20
+ test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.RX_CHANNEL_10_500K, ag.PKT_FILTER_TEMP_PKT],
21
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
22
22
  if test.rc == TEST_FAILED:
23
23
  if test.exit_on_param_failure:
24
24
  break # break the whole for loop and keep the test as failed
@@ -49,4 +49,4 @@ def run(test):
49
49
  break # break the whole for loop and keep the test as failed
50
50
  test.reset_result() # reset result and continue to next param
51
51
 
52
- return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
52
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -12,16 +12,16 @@ PKT_FILTER_TEST_PACER_INTERVAL = 10
12
12
  def run(test):
13
13
 
14
14
  fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
15
- datapath_module = eval(f'ModuleDatapathV{test.active_brg.api_version}')
15
+ dut = cert_config.get_brg_by_target(test, DUT)
16
16
 
17
17
  test = cert_common.test_prolog(test)
18
18
  if test.rc == TEST_FAILED:
19
19
  return cert_common.test_epilog(test)
20
20
 
21
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]
22
+ test = cert_config.brg_configure(test, fields=fields,
23
+ values=[param.value, RX_CHANNEL_21, PKT_FILTER_TEST_PACER_INTERVAL],
24
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
25
25
  test.set_phase_rc(param.name, test.rc)
26
26
  test.add_phase_reason(param.name, test.reason)
27
27
  if test.rc == TEST_FAILED:
@@ -58,4 +58,4 @@ def run(test):
58
58
  break # break the whole for loop and keep the test as failed
59
59
  test.reset_result() # reset result and continue to next param
60
60
 
61
- return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
61
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -12,16 +12,16 @@ PKT_FILTER_TEST_PACER_INTERVAL = 10
12
12
  def run(test):
13
13
 
14
14
  fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
15
- datapath_module = eval(f'ModuleDatapathV{test.active_brg.api_version}')
15
+ dut = cert_config.get_brg_by_target(test, DUT)
16
16
 
17
17
  test = cert_common.test_prolog(test)
18
18
  if test.rc == TEST_FAILED:
19
19
  return cert_common.test_epilog(test)
20
20
 
21
21
  for param in test.params:
22
- test = cert_config.brg_configure_ble5(test, fields=fields,
23
- values=[param.value, RX_CHANNEL_10_500K, PKT_FILTER_TEST_PACER_INTERVAL],
24
- module=datapath_module)[0]
22
+ test = cert_config.brg_configure(test, fields=fields,
23
+ values=[param.value, RX_CHANNEL_10_500K, PKT_FILTER_TEST_PACER_INTERVAL],
24
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
25
25
  test.set_phase_rc(param.name, test.rc)
26
26
  test.add_phase_reason(param.name, test.reason)
27
27
  if test.rc == TEST_FAILED:
@@ -57,4 +57,4 @@ def run(test):
57
57
  break # break the whole for loop and keep the test as failed
58
58
  test.reset_result() # reset result and continue to next param
59
59
 
60
- return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
60
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -12,15 +12,16 @@ PKT_FILTER_TEST_PACER_INTERVAL = 4
12
12
  def run(test):
13
13
 
14
14
  fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL, BRG_PATTERN]
15
- datapath_module = eval(f'ModuleDatapathV{test.active_brg.api_version}')
15
+ dut = cert_config.get_brg_by_target(test, DUT)
16
16
 
17
17
  test = cert_common.test_prolog(test)
18
18
  if test.rc == TEST_FAILED:
19
19
  return cert_common.test_epilog(test)
20
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]
21
+ test = cert_config.brg_configure(test, fields=fields,
22
+ values=[PKT_FILTER_TEMP_AND_ADVANCED_PKTS, RX_CHANNEL_10_500K,
23
+ PKT_FILTER_TEST_PACER_INTERVAL, DATAPATH_PATTERN_EXTENDED_ADV],
24
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
24
25
  if test.rc == TEST_FAILED:
25
26
  return cert_common.test_epilog(test)
26
27
 
@@ -41,9 +42,10 @@ def run(test):
41
42
 
42
43
  # Configure the BRG to DATAPATH_PATTERN_EXTENDED_ADV_CH_10 if the GW listens to channel 10
43
44
  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]
45
+ test = cert_config.brg_configure(test, fields=fields,
46
+ values=[PKT_FILTER_TEMP_AND_ADVANCED_PKTS, RX_CHANNEL_10_500K,
47
+ PKT_FILTER_TEST_PACER_INTERVAL, DATAPATH_PATTERN_EXTENDED_ADV_CH_10],
48
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
47
49
  if test.rc == TEST_FAILED:
48
50
  if test.exit_on_param_failure:
49
51
  break # break the whole for loop and keep the test as failed
@@ -80,4 +82,4 @@ def run(test):
80
82
  # Revert tester's rx channel
81
83
  test = cert_config.brg_configure(test, module=test.tester.internal_brg.datapath, target=TESTER)[0]
82
84
 
83
- return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module], ble5=True)
85
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -28,7 +28,6 @@ import certificate.cert_config as cert_config
28
28
  NUM_OF_SCANNING_CYCLE = 5
29
29
  DEFAULT_SCAN_TIME = 30
30
30
  SCAN_DELAY_TIME = 3
31
- BLE5_MAX_DURATION_SEC = ag.BLE5_PARAM_PRIMARY_CHANNEL_SCAN_CYCLE // 1000 + 1
32
31
 
33
32
 
34
33
  def test_rssi_threshold(test):
@@ -366,7 +365,7 @@ def run(test):
366
365
  else:
367
366
  test.reset_result()
368
367
 
369
- # Revert DUT to defaults here and not in epilog
368
+ # Revert DUT and TESTER to defaults here and not in epilog
370
369
  test = cert_config.config_brg_defaults(test, modules=[dut.datapath], ble5=test.dut_is_bridge(), wait=test.dut_is_combo())[0]
371
370
  if test.rc == TEST_FAILED:
372
371
  test.add_reason("Failed to revert brg0 datapath to defaults")
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "Signal Indicator Extended Advertising",
3
+ "module": "Energizer 2.4GHz",
4
+ "purpose": "Verify Signal Indicator functionality when using bridge with extended advertising pattern",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Bridge-to-Bridge-Signal-Indicator",
6
+ "initialCondition": "Bridge configured to defaults",
7
+ "procedure": [
8
+ "Test prolog - Initialize test environment and configure bridges to defaults",
9
+ "ext_adv_rx37 - Configure DUT as Transmitter with extended advertising pattern and RX channel 37, and TESTER as Receiver and Analyze received signal indicator packets count, RX/TX antenna, output power, and RSSI values",
10
+ "ext_adv_rx10 - Configure DUT as Transmitter with extended advertising pattern and RX channel 10, and TESTER as Receiver and Analyze received signal indicator packets count, RX/TX antenna, output power, and RSSI values",
11
+ "Test epilog - Finalize test results and log outcomes"
12
+ ],
13
+ "expectedOutcome": "All phases passed successfully!",
14
+ "mandatory": 0,
15
+ "multiBridgeTest": 1,
16
+ "gwOnlyTest": 0,
17
+ "dataSimOnlyTest": 0,
18
+ "allSupportedValues": ["ext_adv_rx37", "ext_adv_rx10"]
19
+ }
@@ -0,0 +1,171 @@
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 MACROS #
9
+ NUM_OF_SCANNING_CYCLE = 5
10
+ SCAN_DELAY_TIME = 3
11
+
12
+
13
+ def test_ext_adv_rx37(test):
14
+
15
+ dut = cert_config.get_brg_by_target(test, DUT)
16
+ tester = cert_config.get_brg_by_target(test, TESTER)
17
+ cycle, rep = 8, 4
18
+
19
+ # Configuring DUT #
20
+ # configuring transmitter #
21
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Transmitter (cycle={cycle}, repetition={rep})", "BLUE")
22
+ test = cert_config.brg_configure(test=test, module=dut.energy2400,
23
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
24
+ values=[cycle, rep])[0]
25
+ if test.rc == TEST_FAILED:
26
+ test.add_reason(f"DUT BRG {dut.id_str}: didn't receive signal indicator transmitter configuration!")
27
+ return test
28
+ # configuring extended advertising and rx channel #
29
+ utPrint(f"Configuring DUT BRG {dut.id_str} with extended advertising and rx channel 37", "BLUE")
30
+ test = cert_config.brg_configure(test=test, module=dut.datapath,
31
+ fields=[BRG_RX_CHANNEL, BRG_PATTERN],
32
+ values=[ag.RX_CHANNEL_37, ag.DATAPATH_PATTERN_EXTENDED_ADV])[0]
33
+ if test.rc == TEST_FAILED:
34
+ test.add_reason(f"DUT BRG {dut.id_str}: didn't receive extended advertising and rx channel configuration!")
35
+ return test
36
+
37
+ # configuring TESTER #
38
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Receiver", "BLUE")
39
+ test = cert_config.brg_configure(test=test, module=tester.sensors, fields=[BRG_SENSOR0],
40
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR], target=TESTER)[0]
41
+ if test.rc == TEST_FAILED:
42
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive signal indicator receiver configuration!")
43
+ return test
44
+ utPrint(f"Configuring TESTER BRG {tester.id_str} with rx channel 37", "BLUE")
45
+ test = cert_config.brg_configure(test=test, module=tester.datapath, fields=[BRG_RX_CHANNEL],
46
+ values=[ag.RX_CHANNEL_37], target=TESTER)[0]
47
+ if test.rc == TEST_FAILED:
48
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive rx channel configuration!")
49
+ return test
50
+
51
+ # phase analysis #
52
+ cert_mqtt.mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME,
53
+ f"tx_{cycle}_{rep}")
54
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=tester, tx_brg=dut)
55
+ 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):
56
+ test.rc = TEST_FAILED
57
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tester, dut, NUM_OF_SCANNING_CYCLE)
58
+ test.add_reason(f"tx phase failed - BRG {dut.id_str} received wrong number of "
59
+ f"signal indicator packets\nreceived {len(rec_sig_ind_pkts)} packets, "
60
+ f"expected {expected_signal_ind_pkts} packets")
61
+ print(rec_sig_ind_pkts) # TODO: logging print(debug)
62
+ print([[p[TIMESTAMP], p[UNIFIED_SENSOR_PKT].pkt.signal_indicator_payload.rx_antenna] for p in rec_sig_ind_pkts])
63
+ return test
64
+
65
+ test = cert_common.rx_tx_antenna_check(test, rec_sig_ind_pkts, dut, tester, NUM_OF_SCANNING_CYCLE)
66
+ test = cert_common.output_power_check(test, rec_sig_ind_pkts, dut)
67
+ test = cert_common.rssi_check(test, rec_sig_ind_pkts)
68
+
69
+ return test
70
+
71
+
72
+ def test_ext_adv_rx10(test):
73
+
74
+ dut = cert_config.get_brg_by_target(test, DUT)
75
+ tester = cert_config.get_brg_by_target(test, TESTER)
76
+ cycle, rep = 8, 4
77
+
78
+ # Configuring DUT #
79
+ # configuring transmitter #
80
+ utPrint(f"Configuring DUT BRG {dut.id_str} as Signal Indicator Transmitter (cycle={cycle}, repetition={rep})", "BLUE")
81
+ test = cert_config.brg_configure(test=test, module=dut.energy2400,
82
+ fields=[BRG_SIGNAL_INDICATOR_CYCLE, BRG_SIGNAL_INDICATOR_REP],
83
+ values=[cycle, rep])[0]
84
+ if test.rc == TEST_FAILED:
85
+ test.add_reason(f"DUT BRG {dut.id_str}: didn't receive signal indicator transmitter configuration!")
86
+ return test
87
+ # configuring extended advertising and rx channel #
88
+ utPrint(f"Configuring DUT BRG {dut.id_str} with extended advertising and rx channel 10", "BLUE")
89
+ test = cert_config.brg_configure(test=test, module=dut.datapath,
90
+ fields=[BRG_RX_CHANNEL, BRG_PATTERN],
91
+ values=[ag.RX_CHANNEL_10_500K, ag.DATAPATH_PATTERN_EXTENDED_ADV],
92
+ ble5=test.dut_is_bridge(), wait=test.dut_is_combo())[0]
93
+ if test.rc == TEST_FAILED:
94
+ test.add_reason(f"DUT BRG {dut.id_str}: didn't receive extended advertising and rx channel configuration!")
95
+ return test
96
+ if test.dut_is_bridge():
97
+ wait_time_n_print(BLE5_MAX_DURATION_SEC) # BLE5 configuration can take up to BLE5_MAX_DURATION_SEC
98
+
99
+ # configuring TESTER #
100
+ utPrint(f"Configuring TESTER BRG {tester.id_str} as Signal Indicator Receiver", "BLUE")
101
+ test = cert_config.brg_configure(test=test, module=tester.sensors, fields=[BRG_SENSOR0],
102
+ values=[ag.EXTERNAL_SENSORS_SIGNAL_INDICATOR], target=TESTER)[0]
103
+ if test.rc == TEST_FAILED:
104
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive signal indicator receiver configuration!")
105
+ return test
106
+ utPrint(f"Configuring TESTER BRG {tester.id_str} with rx channel 10", "BLUE")
107
+ test = cert_config.brg_configure(test=test, module=tester.datapath, fields=[BRG_RX_CHANNEL],
108
+ values=[ag.RX_CHANNEL_10_500K], target=TESTER)[0]
109
+ if test.rc == TEST_FAILED:
110
+ test.add_reason(f"TESTER BRG {tester.id_str}: didn't receive rx channel configuration!")
111
+ return test
112
+
113
+ # phase analysis #
114
+ cert_mqtt.mqtt_scan_n_create_log_file(test, (NUM_OF_SCANNING_CYCLE * cycle) + SCAN_DELAY_TIME,
115
+ f"tx_{cycle}_{rep}")
116
+ rec_sig_ind_pkts = cert_common.get_all_sig_ind_pkts(test=test, rx_brg=tester, tx_brg=dut)
117
+ 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):
118
+ test.rc = TEST_FAILED
119
+ expected_signal_ind_pkts = cert_common.exp_sig_ind_pkts2(tester, dut, NUM_OF_SCANNING_CYCLE)
120
+ test.add_reason(f"tx phase failed - BRG {dut.id_str} received wrong number of "
121
+ f"signal indicator packets\nreceived {len(rec_sig_ind_pkts)} packets, "
122
+ f"expected {expected_signal_ind_pkts} packets")
123
+ print(rec_sig_ind_pkts) # TODO: logging print(debug)
124
+ print([[p[TIMESTAMP], p[UNIFIED_SENSOR_PKT].pkt.signal_indicator_payload.rx_antenna] for p in rec_sig_ind_pkts])
125
+ return test
126
+
127
+ test = cert_common.rx_tx_antenna_check(test, rec_sig_ind_pkts, dut, tester, NUM_OF_SCANNING_CYCLE)
128
+ test = cert_common.output_power_check(test, rec_sig_ind_pkts, dut)
129
+ test = cert_common.rssi_check(test, rec_sig_ind_pkts)
130
+
131
+ return test
132
+
133
+
134
+ SIGNAL_INDICATOR_TEST_MAP = {"ext_adv_rx37": test_ext_adv_rx37, "ext_adv_rx10": test_ext_adv_rx10}
135
+
136
+
137
+ def run(test):
138
+ # Test prolog
139
+ test = cert_common.test_prolog(test)
140
+
141
+ # Configure to rx channel and extended advertising pattern
142
+ dut = cert_config.get_brg_by_target(test, DUT)
143
+ tester = cert_config.get_brg_by_target(test, TESTER)
144
+
145
+ for param in test.params:
146
+ phase_run_print(param.name)
147
+ test = SIGNAL_INDICATOR_TEST_MAP[param.value](test)
148
+ cert_mqtt.generate_log_file(test, param.name)
149
+ field_functionality_pass_fail_print(test, param.name)
150
+ test.set_phase_rc(param.name, test.rc)
151
+ test.add_phase_reason(param.name, test.reason)
152
+
153
+ if test.rc == TEST_FAILED:
154
+ test.set_phase_rc(param.name, test.rc)
155
+ test.add_phase_reason(param.name, test.reason)
156
+ if test.exit_on_param_failure:
157
+ break
158
+ else:
159
+ test.reset_result()
160
+
161
+ # Revert DUT and TESTER to defaults here and not in epilog
162
+ test = cert_config.config_brg_defaults(test, modules=[dut.datapath, dut.energy2400],
163
+ ble5=test.dut_is_bridge(), wait=test.dut_is_combo())[0]
164
+ if test.rc == TEST_FAILED:
165
+ test.add_reason("Failed to revert dut to defaults")
166
+ else:
167
+ test = cert_config.config_brg_defaults(test, modules=[tester.datapath, tester.sensors], target=TESTER)[0]
168
+ if test.rc == TEST_FAILED:
169
+ test.add_reason("Failed to revert tester to defaults")
170
+
171
+ return cert_common.test_epilog(test, revert_brgs=False)