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,16 +1,17 @@
1
1
  {
2
- "name": "Output Power",
2
+ "name": "Rx Channel Hopping",
3
3
  "module": "Datapath",
4
- "purpose": "Test configuration for all supported datapath output power values",
4
+ "purpose": "Test functionality of Rx Channel Hopping configuration",
5
5
  "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Configuration",
6
6
  "initialCondition": "Bridge configured to defaults",
7
7
  "procedure": ["Test prolog",
8
8
  "For each supported value - configure the BRG and verify the value",
9
+ "Scan Packets on channel 37 and channel 10 and check if packets in both channels were received when configured to hopping, and if packet count is the same",
9
10
  "Test epilog and revert to defaults"],
10
11
  "expectedOutcome": "All values configured successfully",
11
12
  "mandatory": 0,
12
13
  "multiBridgeTest": 0,
13
14
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
15
- "allSupportedValues": [-12, -8, -4, 0, 2, 3]
15
+ "dataSimOnlyTest": 0,
16
+ "allSupportedValues": []
16
17
  }
@@ -0,0 +1,77 @@
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
8
+
9
+ SCAN_TIME_PER_CH = 60 # in seconds
10
+
11
+
12
+ def run(test):
13
+
14
+ fields = [BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
15
+
16
+ datapath_module = test.active_brg.datapath
17
+ pacer_interval = 1
18
+
19
+ test = cert_common.test_prolog(test)
20
+ if test.rc == TEST_FAILED:
21
+ return cert_common.test_epilog(test)
22
+
23
+ if not (test.data == DATA_SIMULATION):
24
+ test.rc = TEST_FAILED
25
+ warning_txt = "WARNING: This test should be ran with data simulator!"
26
+ utPrint(warning_txt, "RED")
27
+ test.add_reason(warning_txt)
28
+ return cert_common.test_epilog(test)
29
+
30
+ test = cert_config.brg_configure(test, fields=fields, values=[ag.RX_CHANNEL_HOPPING_37_10, pacer_interval], module=datapath_module)[0]
31
+
32
+ num_of_pixels = 5
33
+ # For bridge with cloud connectivity, each ble5 sent as is and not split to 2 packets
34
+ split_pkt_mult = 1 if test.dut_is_combo() else 2
35
+
36
+ # Simulating tag packets on channel 37
37
+ utPrint("Scanning packets on channel 37", "BLUE")
38
+ pixel_sim_thread_ch_37 = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=1,
39
+ delay=0, pkt_types=[0])
40
+ pixel_sim_thread_ch_37.start()
41
+ df_37 = cert_common.data_scan(test, scan_time=SCAN_TIME_PER_CH, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
42
+ pixel_sim_thread_ch_37.stop()
43
+ time.sleep(5)
44
+
45
+ # Simulating packets on ch 10
46
+ utPrint("Scanning packets on channel 10", "BLUE")
47
+ pixel_sim_thread_ch_10 = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=1,
48
+ delay=0, pkt_types=[2],
49
+ pixels_type=GEN3_EXTENDED)
50
+ pixel_sim_thread_ch_10.start()
51
+ df_10 = cert_common.data_scan(test, scan_time=SCAN_TIME_PER_CH, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
52
+ pixel_sim_thread_ch_10.stop()
53
+
54
+ cert_mqtt.dump_pkts(test, log=test.module_name)
55
+
56
+ # Analyze packet count per channel
57
+ df_37_counts = df_37['tag_id'].value_counts().rename('pkt_count').reset_index().rename(columns={'index': 'tag_id'})
58
+ df_10_counts = df_10['tag_id'].value_counts().rename('pkt_count').reset_index().rename(columns={'index': 'tag_id'})
59
+ print(df_37_counts)
60
+ print(f"Channel 37 avg pkt count: {df_37_counts['pkt_count'].mean()}")
61
+ print(df_10_counts)
62
+ print(f"Channel 10 avg pkt count: {df_10_counts['pkt_count'].mean()}")
63
+
64
+ if not (0.9 * df_10_counts['pkt_count'].mean() <=
65
+ split_pkt_mult * df_37_counts['pkt_count'].mean() <=
66
+ 1.1 * df_10_counts['pkt_count'].mean()):
67
+ print("Packet count on both channels doesn't match!")
68
+ test.rc = TEST_FAILED
69
+ test.add_reason("Packet count on both channels doesn't match!")
70
+ else:
71
+ utPrint("Packet count match!")
72
+
73
+ # param epilog
74
+ cert_mqtt.generate_log_file(test, test.module_name)
75
+ field_functionality_pass_fail_print(test, fields[0], value=test.module_name)
76
+
77
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
@@ -11,6 +11,6 @@
11
11
  "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
15
- "allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "RX_CHANNEL_10_250K", "RX_CHANNEL_10_500K"]
14
+ "dataSimOnlyTest": 0,
15
+ "allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "RX_CHANNEL_10_500K", "RX_CHANNEL_HOPPING_37_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 is_primary_channel(channel):
@@ -32,7 +33,7 @@ def run(test):
32
33
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=datapath_module)[0]
33
34
  # param epilog
34
35
  ble5_state = not is_primary_channel(param.value)
35
- generate_log_file(test, param.name)
36
+ cert_mqtt.generate_log_file(test, param.name)
36
37
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
37
38
  test.set_phase_rc(param.name, test.rc)
38
39
  test.add_phase_reason(param.name, test.reason)
@@ -5,16 +5,16 @@
5
5
  "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
6
  "initialCondition": "Bridge set to default configuration",
7
7
  "procedure": [
8
- "mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds. Check address values 192, 243, and 128. Verify that the address value is 0 for the first packet.",
9
- "diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure the address value remains 192.",
10
- "min_value - Minimum value: Generate packets with a 0.1-second delay. Verify that the address value is 1.",
11
- "max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify that the address value is 255.",
12
- "diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 second, according the delay changing verify the tolerance address value"
8
+ "mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds. Verify that the correct TBC values are received and that the first packet's TBC is zero.",
9
+ "diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure that the TBC value remains unchanged.",
10
+ "min_value - Minimum value: Generate packets with a 0.1-second delay. Verify the correct TBC value is received.",
11
+ "max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify the correct TBC value is received.",
12
+ "diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 seconds. Verify that the TBC value changes according to the delay, within the expected tolerance."
13
13
  ],
14
- "expectedOutcome": "verify that the address value we received matches the expected value, with a tolerance of up to five percent.",
14
+ "expectedOutcome": "Ensure that the received TBC values match the expected ones, within a tolerance of up to ten percent.",
15
15
  "mandatory": 1,
16
16
  "multiBridgeTest": 0,
17
17
  "gwOnlyTest": 0,
18
- "internalBridge": 1,
18
+ "dataSimOnlyTest": 1,
19
19
  "allSupportedValues": ["mid_values", "diff_pacer", "min_value", "max_value", "diff_rate"]
20
20
  }
@@ -1,31 +1,35 @@
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
7
- import brg_certificate.cert_data_sim as cert_data_sim
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
8
9
  import time
9
10
 
10
11
 
12
+ # input address value and return the TBC value in s
13
+ def address2tbc(address):
14
+ if address == 0:
15
+ return 0
16
+ result = 64 / (256 - address)
17
+ return result
18
+
19
+
11
20
  def cal_scan_time(test, delay, pacer_interval):
12
- # Calculate the scan time to ensure at least 5 packets are captured in data scan
21
+ # Calculate the scan time to ensure enough packets are captured in data scan
13
22
  # define the num of packet that you want to get
14
- num_of_sending_pkt = 2 # actually it will be 3 because the first one always send
23
+ num_of_cycles = 5
15
24
  delay = delay / 1000
16
25
  if delay < pacer_interval:
17
- scan_time = (pacer_interval * num_of_sending_pkt) + 10
18
- elif pacer_interval <= delay:
19
- scan_time = (delay * num_of_sending_pkt) + 10
20
- # verify scan time value
21
- if scan_time < (2 * pacer_interval):
22
- print("scan time is too low in related to pacer interval")
23
- test.rc == TEST_FAILED
24
- test.add_reason("scan time is too low in related to pacer interval value")
26
+ scan_time = (pacer_interval * num_of_cycles) + 10
27
+ else: # pacer_interval <= delay
28
+ scan_time = (delay * num_of_cycles) + 10
25
29
  return test, scan_time
26
30
 
27
31
 
28
- def scan_and_compare(test, pacer_interval, delay, expected_address_value):
32
+ def scan_and_compare(test, pacer_interval, delay, expected_TBC_value):
29
33
 
30
34
  pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=1, duplicates=3, delay=delay, pkt_types=[0], pixels_type=GEN3)
31
35
  pixel_sim_thread.start()
@@ -33,7 +37,7 @@ def scan_and_compare(test, pacer_interval, delay, expected_address_value):
33
37
  df = cert_common.data_scan(test, scan_time=scan_time, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
34
38
  pixel_sim_thread.stop()
35
39
  cert_mqtt.dump_pkts(test, log="rx_rate")
36
- cert_common.display_data(df, tbc=True, nfpkt=True, rssi=True, dir=test.dir)
40
+ cert_common.display_data(df, tbc=True, rssi=True, dir=test.dir)
37
41
  # check if the dataframe is empty or not
38
42
  if len(df) <= 1:
39
43
  print("Df is empty")
@@ -53,19 +57,26 @@ def scan_and_compare(test, pacer_interval, delay, expected_address_value):
53
57
  if mid_index == 0:
54
58
  mid_index = 1
55
59
  print(f"Length of df: {length}, mid index: {mid_index}")
56
- print(f"df:\n {df}")
57
-
60
+ # TODO: Logging print
61
+ # print(f"Df:\n {df}")
62
+ df[TBC] = df[TBC].apply(address2tbc)
63
+ print(f"Df after invert tbc:\n {df}")
58
64
  tag = df.iloc[0][TAG_ID]
59
- # iloc [1:] to skip the first value of tbc_values which could be 0 sometimes.
60
- actual_address_value = round(df.iloc[mid_index:][TBC].mean(), 2) # extract the tbc value from df
61
- print(f"\nactual address value: {actual_address_value}\nexpected address value: {expected_address_value}")
62
- THRESHOLD_ADDRESS_VALUE = 5
63
- # check if the actual address value is in the range of -+5 of the expected address value
64
- if (actual_address_value < (expected_address_value - THRESHOLD_ADDRESS_VALUE) or
65
- actual_address_value > (expected_address_value + THRESHOLD_ADDRESS_VALUE)):
66
- print(f"\nAddress value for tag {tag} is {actual_address_value}, expected value: {expected_address_value}!\n")
65
+
66
+ actual_tbc_value = round(df.iloc[mid_index:][TBC].mean(), 3)
67
+ expected_tbc_value = round(expected_TBC_value, 3)
68
+ threshold = 0.1 * expected_tbc_value
69
+ print(f"Actual TBC value: {actual_tbc_value}")
70
+ print(f"Expected TBC value: {expected_tbc_value} range: [{expected_tbc_value - threshold}, {expected_tbc_value + threshold}]")
71
+
72
+ # Validate the received value is in 10% of the expected value
73
+ if not ((expected_tbc_value - threshold) <= actual_tbc_value <= (expected_tbc_value + threshold)):
67
74
  test.rc = TEST_FAILED
68
- test.add_reason(f"Address value for tag {tag} is {actual_address_value} expected: {expected_address_value}!\n")
75
+ test.add_reason(f"TBC value for tag {tag}: got: {actual_tbc_value}, expected: {expected_tbc_value}!\n")
76
+ if actual_tbc_value < expected_tbc_value:
77
+ print(f" Actual TBC value: {actual_tbc_value} is less than expected TBC value: {expected_tbc_value}!\n")
78
+ if actual_tbc_value > (expected_tbc_value + threshold):
79
+ print(f" TBC value is higher than expected TBC value: {expected_tbc_value}!\n")
69
80
  if test.params == [mid_values] and delay == 1000:
70
81
  # checking 0 value in the first packet.
71
82
  first_row = df.iloc[0][TBC]
@@ -76,20 +87,22 @@ def scan_and_compare(test, pacer_interval, delay, expected_address_value):
76
87
  return test
77
88
 
78
89
 
79
- def mid_values(test, datapath_module):
80
- # mid values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds.
81
- # Check address values 192, 243, and 128. Verify that the address value is 0 for the first packet.
82
- SANITY_DELAY_ADDRESS_VALUES = {1000: 192, 5000: 243, 500: 128}
83
- for delay, expected_address_value in SANITY_DELAY_ADDRESS_VALUES.items():
90
+ def mid_values(test, _):
91
+ # Mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds.
92
+ # Verify that the correct TBC values are received and that the first packet's TBC is zero.
93
+
94
+ SANITY_DELAY_VALUES = [1000, 5000, 500]
95
+ for delay in SANITY_DELAY_VALUES:
84
96
  pacer_interval = 1
85
- test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_address_value=expected_address_value)
86
- time.sleep(2)
97
+ test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=(delay / 1000))
98
+ time.sleep(10)
87
99
  return test
88
100
 
89
101
 
90
102
  def diff_pacer(test, datapath_module):
91
- # diff pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure the address value remains 192.
92
- SANITY_ADDRESS_VALUE = 192
103
+ # Diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60.
104
+ # Ensure that the TBC value remains unchanged.
105
+
93
106
  PACER_INTERVAL_LIST = [30, 60]
94
107
  delay = 1000 # 1 sec
95
108
  for pacer_interval in PACER_INTERVAL_LIST:
@@ -97,41 +110,46 @@ def diff_pacer(test, datapath_module):
97
110
  if test.rc == TEST_FAILED:
98
111
  test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
99
112
  return test
100
- test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_address_value=SANITY_ADDRESS_VALUE)
101
- time.sleep(2)
113
+ test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=(delay / 1000))
114
+ time.sleep(10)
102
115
  return test
103
116
 
104
117
 
105
118
  def min_value(test, datapath_module):
106
- # min_value - Minimum value: Generate packets with a 0.1-second delay. Verify that the address value is 1.
107
- MIN_ADDRESS_VALUE = 1
119
+ # Min_value - Minimum value: Generate packets with a 0.1-second delay.
120
+ # Verify the correct TBC value is received.
121
+ # NOTE: The min TBC value is 0.25 seconds.
122
+ MIN_ADDRESS_VALUE = 0.25
108
123
  pacer_interval = 1
109
124
  test = cert_config.brg_configure(test, fields=[BRG_PACER_INTERVAL], values=[pacer_interval], module=datapath_module)[0]
110
125
  if test.rc == TEST_FAILED:
111
126
  test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
112
127
  return test
113
128
  delay = 100
114
- test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_address_value=MIN_ADDRESS_VALUE)
115
- time.sleep(2)
129
+ test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=MIN_ADDRESS_VALUE)
130
+ time.sleep(10)
116
131
  return test
117
132
 
118
133
 
119
134
  def max_value(test, datapath_module):
120
- # max value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify that the address value is 255.
121
- MAX_ADDRESS_VALUE = 255
135
+ # Max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80.
136
+ # Verify the correct TBC value is received.
137
+ # NOTE: The max TBC value is 64 seconds.
138
+ MAX_TBC_VALUE = 64
122
139
  pacer_interval = 80
123
140
  test = cert_config.brg_configure(test, fields=[BRG_PACER_INTERVAL], values=[pacer_interval], module=datapath_module)[0]
124
141
  if test.rc == TEST_FAILED:
125
142
  test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
126
143
  return test
127
144
  delay = 70000
128
- test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_address_value=MAX_ADDRESS_VALUE)
129
- time.sleep(2)
145
+ test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=MAX_TBC_VALUE)
146
+ time.sleep(10)
130
147
  return test
131
148
 
132
149
 
133
150
  def diff_rate(test, datapath_module):
134
- # diff rate - a filter: Generate packets with delay 1 and change to 5, according the delay change test the tolerance address value
151
+ # Diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 seconds.
152
+ # Verify that the TBC value changes according to the delay, within the expected tolerance.
135
153
  pacer_interval = 1
136
154
  delay_duration = [[500, 5], [3000, 3]]
137
155
  first_delay = delay_duration[0][0]
@@ -148,41 +166,63 @@ def diff_rate(test, datapath_module):
148
166
  print(f"sleep for {time_sleep} sec\n")
149
167
  time.sleep(time_sleep)
150
168
  pixel_sim_thread.delay = second_delay
151
- scan_time = sum(duration for _, duration in delay_duration) + 20
169
+ scan_time = sum(duration for _, duration in delay_duration) + 40
152
170
  df = cert_common.data_scan(test, scan_time=scan_time, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
153
171
  pixel_sim_thread.stop()
154
172
  df = df[[TAG_ID, TBC]]
155
- lenght = len(df)
156
-
173
+ # TODO: logging print
174
+ # print(f"df:\n {df}")
175
+ df[TBC] = df[TBC].apply(address2tbc)
157
176
  if len(df) <= 1:
158
177
  test.add_reason("Df is empty")
159
178
  test.rc = TEST_FAILED
160
179
  return test
161
180
  else:
162
181
  print(f"Df:\n {df}")
163
- # NOTE: all next rows are specific for the values: delay 0.5 and 3, and in relation address values 128 and 235
164
- # check if the last tbc value is as we expected for delay 3 sec we need to get 235 according to LUT table
182
+ # NOTE: all next rows are specific for the values: delay 0.5 and 3 sec.
183
+ # check if the last tbc value is as we expected for delay 3 sec we need to get 235 according to LUT table
165
184
  # we define tolerance of +-10 units for address value
166
-
185
+ expected_second_tbc_value = second_delay / 1000
186
+ print(f"expected second tbc value: {expected_second_tbc_value}")
167
187
  # Most important check, verify it converges to the correct value
168
- if df.iloc[-1][TBC] not in range(232, 237):
188
+ average_of_last_5_tbc_value = round(df.iloc[-5:][TBC].mean(), 3)
189
+ print(f"last tbc value: {average_of_last_5_tbc_value}")
190
+ THRESHOLD_MIN = 0.95
191
+ # NOTE: assume that there is time difference between SIM and GW
192
+ if test.tester.is_simulated():
193
+ THRESHOLD_MAX = 1.1
194
+ else:
195
+ THRESHOLD_MAX = 1.15
196
+ min_expected_tbc_value = round(expected_second_tbc_value * THRESHOLD_MIN, 3)
197
+ max_expected_tbc_value = round(expected_second_tbc_value * THRESHOLD_MAX, 3)
198
+
199
+ print(f"TBC value: {average_of_last_5_tbc_value}")
200
+ print(f"expected value [{min_expected_tbc_value},{max_expected_tbc_value}] according to delay:{second_delay / 1000} sec")
201
+ if not (min_expected_tbc_value <= average_of_last_5_tbc_value <= max_expected_tbc_value):
169
202
  test.rc = TEST_FAILED
170
- test.add_reason(f"TBC value: {df.iloc[-1][TBC]}, expected value [232,236]")
171
- print(f"TBC value: {df.iloc[-1][TBC]}, expected value [232,236] according to delay:{second_delay / 1000} sec")
203
+ test.add_reason(f"TBC value: {average_of_last_5_tbc_value}, expected value {expected_second_tbc_value}")
172
204
  return test
173
- # for loop that skip the first row and check if somewhere there is the expected gap 130 to 200
174
- result = False
175
- for i in range(0, lenght - 1):
176
- prev = df.iloc[i][TBC]
177
- current = df.iloc[i + 1][TBC]
178
- if prev in range(120, 140) and current in range(190, 210):
179
- print(f"Found the gap between {prev} and {current}")
180
- print(f"row {i}: {df.iloc[i][TBC]}")
181
- print(f"row {i + 1}: {df.iloc[i + 1][TBC]}")
182
- result = True
183
- if not result:
184
- test.rc = TEST_FAILED
185
- test.add_reason("Didn't find the correct gap according to alpha filter calculation")
205
+
206
+ # # TODO: we skip that part until we decide if there is a need to check the gap between the first and second tbc values
207
+ # # for loop that skip the first row and check if somewhere there is the expected gap 0.5 to 3 sec
208
+ # result = False
209
+ # expected_first_tbc_value = first_delay / 1000
210
+ # print(f"expected first tbc value: {expected_first_tbc_value}")
211
+ # expected_first_gap_tbc_value = round(address_2_tbc(200), 3)
212
+ # print(f"expected second tbc value: {expected_first_gap_tbc_value}")
213
+ # for i in range(0, length - 1):
214
+ # prev = round(df.iloc[i][TBC],3)
215
+ # current = round(df.iloc[i + 1][TBC],3)
216
+ # print(f"prev: {prev}, current: {current}")
217
+ # if expected_first_tbc_value*0.9 <= prev <= expected_first_tbc_value*1.1:
218
+ # if expected_first_gap_tbc_value*0.9 <= current <= expected_first_gap_tbc_value*1.1:
219
+ # print(f"Found the gap between {prev} and {current}")
220
+ # print(f"row {i}: {df.iloc[i][TBC]}")
221
+ # print(f"row {i + 1}: {df.iloc[i + 1][TBC]}")
222
+ # result = True
223
+ # if not result:
224
+ # test.rc = TEST_FAILED
225
+ # test.add_reason("Didn't find the correct gap according to alpha filter calculation")
186
226
  return test
187
227
 
188
228
 
@@ -208,7 +248,7 @@ def run(test):
208
248
  for param in test.params:
209
249
  functionality_run_print(param.name)
210
250
  test = RX_RATE_TEST_MAP[param.value](test, datapath_module)
211
- generate_log_file(test, param.name)
251
+ cert_mqtt.generate_log_file(test, param.name)
212
252
  field_functionality_pass_fail_print(test, param.name)
213
253
  test.set_phase_rc(param.name, test.rc)
214
254
  test.add_phase_reason(param.name, test.reason)
@@ -5,16 +5,16 @@
5
5
  "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
6
  "initialCondition": "Bridge set to default configuration",
7
7
  "procedure": [
8
- "mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds. Check address values 192, 243, and 128. Verify that the address value is 0 for the first packet.",
9
- "diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure the address value remains 192.",
10
- "min_value - Minimum value: Generate packets with a 0.1-second delay. Verify that the address value is 1.",
11
- "max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify that the address value is 255.",
12
- "diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 second, according the delay changing verify the tolerance address value"
8
+ "mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds. Verify that the correct TBC values are received and that the first packet's TBC is zero.",
9
+ "diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure that the TBC value remains unchanged.",
10
+ "min_value - Minimum value: Generate packets with a 0.1-second delay. Verify the correct TBC value is received.",
11
+ "max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify the correct TBC value is received.",
12
+ "diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 seconds. Verify that the TBC value changes according to the delay, within the expected tolerance."
13
13
  ],
14
- "expectedOutcome": "verify that the address value we received matches the expected value, with a tolerance of up to five percent.",
14
+ "expectedOutcome": "Ensure that the received TBC values match the expected ones, within a tolerance of up to ten percent.",
15
15
  "mandatory": 1,
16
16
  "multiBridgeTest": 0,
17
17
  "gwOnlyTest": 0,
18
- "internalBridge": 1,
18
+ "dataSimOnlyTest": 1,
19
19
  "allSupportedValues": ["mid_values", "diff_pacer", "min_value", "max_value", "diff_rate"]
20
20
  }