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,189 +0,0 @@
1
- import ast
2
- import logging
3
- import pandas as pd
4
- import time
5
- import datetime
6
- import threading
7
- import binascii
8
-
9
- from gw_certificate.interface.uart_if import UARTInterface
10
- from gw_certificate.common.debug import debug_print
11
- from gw_certificate.interface.if_defines import *
12
-
13
- class SnifferPkt():
14
- def __init__(self, raw_output, time_received, rx_channel):
15
- self.adva = raw_output[:12]
16
- self.packet = raw_output[12:74]
17
- try:
18
- self.rssi = int.from_bytes(binascii.unhexlify(raw_output[74:]), 'big') * -1
19
- except ValueError:
20
- self.rssi = 99
21
- self.time_received = time_received
22
- self.rx_channel = rx_channel
23
-
24
- def __repr__(self):
25
- return f'CH{self.rx_channel}|{self.adva}{self.packet} RSSI:{self.rssi} {self.time_received}'
26
-
27
- def to_dict(self):
28
- return {'adva': self.adva, 'packet': self.packet, 'rssi': self.rssi, 'time_received': self.time_received, 'rx_channel': self.rx_channel}
29
-
30
- class SnifferPkts():
31
- def __init__(self, pkts=[]):
32
- self.pkts = pkts
33
-
34
- def __add__(self, other):
35
- return SnifferPkts(self.pkts + other.pkts)
36
-
37
- def __len__(self):
38
- return len(self.pkts)
39
-
40
- def __repr__(self):
41
- return self.pkts
42
-
43
- def process_pkt(self, raw_output, time_received, rx_channel, print_pkt=False, adva_filter=None):
44
- pkt = SnifferPkt(raw_output, time_received, rx_channel)
45
- if adva_filter:
46
- if pkt.adva != adva_filter:
47
- return None
48
- self.pkts.append(pkt)
49
- if print_pkt:
50
- print(pkt)
51
- return pkt
52
-
53
- def filter_pkts(self, raw_packet=None, adva=None, time_range:tuple=None):
54
- result = []
55
- for pkt in self.pkts:
56
- if (raw_packet is not None) and (pkt.packet == raw_packet) or \
57
- (adva is not None) and (pkt.adva == adva) or \
58
- (time_range is not None) and (time_range[0] < pkt.time_received < time_range[1]):
59
- result.append(pkt)
60
- return SnifferPkts(result)
61
-
62
- def flush_pkts(self):
63
- self.pkts = []
64
-
65
- def to_list(self):
66
- return [p.to_dict() for p in self.pkts]
67
-
68
- def to_pandas(self):
69
- return pd.DataFrame().from_dict(self.to_list())
70
-
71
- def cur_time():
72
- return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
73
-
74
-
75
- class BLESniffer():
76
- def __init__(self, uart:UARTInterface, print_pkt=False, logger_filepath=None, adva_filter=None):
77
- self.uart = uart
78
- self.listener_thread = None
79
- self.sniffer_pkts = SnifferPkts()
80
- self.listening = False
81
- self.listener_lock = threading.Lock()
82
- self.print = print_pkt
83
- self.rx_channel = 0
84
- self.adva_filter = None
85
- if adva_filter is not None:
86
- adva_filter = adva_filter.upper()
87
- assert isinstance(adva_filter, str)\
88
- and len(adva_filter) == 12\
89
- and all(c in '0123456789ABCDEF' for c in adva_filter), "Input must be a 12-character hexadecimal string"
90
- self.adva_filter = adva_filter
91
- # Configure Logger
92
- logger = logging.getLogger('ble_sniffer')
93
- logger.setLevel(logging.DEBUG)
94
- if logger_filepath is not None:
95
- # create file handler
96
- fh = logging.FileHandler(logger_filepath)
97
- fh.setLevel(logging.DEBUG)
98
- formatter = logging.Formatter('%(message)s')
99
- fh.setFormatter(formatter)
100
- logger.addHandler(fh)
101
- logger.propagate = False # Do not send logs to 'root' logger
102
- debug_print(f'BLE Sniffer Logger initialized at {logger_filepath}')
103
- self.logger = logger
104
-
105
- def packet_listener(self):
106
- while self.listening:
107
- line = self.uart.read_line()
108
- if line is not None and len(line) == 76:
109
- with self.listener_lock:
110
- pkt = self.sniffer_pkts.process_pkt(line, datetime.datetime.now(), self.rx_channel, self.print, self.adva_filter)
111
- if pkt:
112
- self.logger.info(pkt)
113
-
114
- # Change sniffing modes
115
- def start_sniffer(self, rx_channel):
116
- self.logger.debug(f'{cur_time()} | Starting Sniffer on CH{rx_channel}')
117
- self.uart.set_sniffer(rx_channel)
118
- self.rx_channel = rx_channel
119
- self.listener_thread = threading.Thread(target=self.packet_listener)
120
- self.listening = True
121
- self.listener_thread.start()
122
-
123
- def stop_sniffer(self):
124
- self.logger.debug(f'{cur_time()} | Stopping Sniffer')
125
- self.flush_pkts()
126
- self.listening = False
127
- if self.listener_thread is not None:
128
- self.listener_thread.join()
129
- self.listener_thread = None
130
- self.uart.cancel_sniffer()
131
- self.rx_channel = 0
132
-
133
- def reset_sniffer(self, rx_channel):
134
- self.logger.debug(f'{cur_time()} | Reseting Sniffer')
135
- self.stop_sniffer()
136
- self.start_sniffer(rx_channel)
137
- self.flush_pkts()
138
-
139
- # Data Handling
140
- def get_all_pkts(self):
141
- return self.sniffer_pkts
142
-
143
- def get_filtered_packets(self, raw_packet=None, adva=None, time_range:tuple=None):
144
- return self.sniffer_pkts.filter_pkts(raw_packet, adva, time_range)
145
-
146
- def flush_pkts(self):
147
- self.logger.debug(f'{cur_time()} | Flushing packets')
148
- self.sniffer_pkts.flush_pkts()
149
-
150
- def to_pandas(self):
151
- return self.sniffer_pkts.to_pandas()
152
-
153
- # Packet Counters
154
- def get_pkts_cntrs(self, channel, lookout_time=DEFAULT_LOOKOUT_TIME):
155
- self.logger.debug(f'{cur_time()} | Getting pkt counters for CH{channel}')
156
- if self.rx_channel != channel:
157
- self.uart.set_rx(channel)
158
- self.rx_channel = channel
159
-
160
- lookout_time = lookout_time
161
- pkt_cntrs = None
162
- self.uart.flush()
163
- self.uart.write_ble_command(GET_LOGGER_COUNTERS)
164
- start_time = time.time()
165
- current_time = start_time
166
- while current_time - start_time < lookout_time:
167
- line = self.uart.read_line()
168
- if line is not None and "'bad_crc'" in line:
169
- start_of_cntr_index = line.find('{')
170
- pkt_cntrs = line[start_of_cntr_index:]
171
- debug_print(f"pkt_cntrs: {pkt_cntrs}")
172
- return ast.literal_eval(pkt_cntrs)
173
- current_time = time.time()
174
- debug_print(f"No counter received within the time limit of {lookout_time} seconds")
175
- return pkt_cntrs
176
-
177
- class BLESnifferContext():
178
- def __init__(self, ble_sniffer:BLESniffer, rx_channel):
179
- self.ble_sniffer = ble_sniffer
180
- self.rx_channel = rx_channel
181
-
182
- def __enter__(self):
183
- self.ble_sniffer.flush_pkts()
184
- self.ble_sniffer.start_sniffer(self.rx_channel)
185
- return self.ble_sniffer
186
-
187
- def __exit__(self, exc_type, exc_value, traceback):
188
- if self.ble_sniffer:
189
- self.ble_sniffer.stop_sniffer()
@@ -1,90 +0,0 @@
1
- import sys
2
- import serial
3
- import time
4
- import argparse
5
- import subprocess
6
- import serial.tools.list_ports
7
- import datetime
8
- import tkinter as tk
9
- from tkinter import filedialog
10
- SEP = "#"*100
11
-
12
- NRFUTIL_MAP = {"linux": "nrfutil-linux", "linux2": "nrfutil-linux", "darwin": "nrfutil-mac", "win32": ".\\nrfutil.exe"}
13
-
14
- def read_from_ble(ble_ser):
15
- ble_ser_bytes = ble_ser.readline()
16
- input = ble_ser_bytes.decode("utf-8", "ignore").strip()
17
- if input:
18
- print(input)
19
- return input
20
-
21
- class Command:
22
- def __init__(self, cmd, expected, delay=0):
23
- self.cmd = cmd
24
- self.cmd_exec = b'\r\n!'+bytes(cmd, encoding='utf-8')+b'\r\n'
25
- self.expected = expected
26
- self.delay = delay
27
- def exec_cmd(self, ble_ser):
28
- print("==>> !{}".format(self.cmd))
29
- ble_ser.write(self.cmd_exec)
30
- start_time = datetime.datetime.now()
31
- while (datetime.datetime.now() - start_time).seconds < 2:
32
- if self.expected in read_from_ble(ble_ser):
33
- print("success!\n{}".format(SEP))
34
- return 0
35
- print("failure!\n{}".format(SEP))
36
- return 1
37
-
38
- GW_COMMANDS = [
39
- Command(cmd="version", expected="WILIOT_GW_BLE_CHIP_SW_VER"),
40
- Command(cmd="move_to_bootloader", expected='')
41
- ]
42
-
43
- def run_cmd(cmd):
44
- print("Running: " + cmd)
45
- p = subprocess.Popen(cmd, shell=True)
46
- p.wait()
47
- if p.returncode:
48
- print(f"\nFailed running : {cmd}\n")
49
- sys.exit(-1)
50
- else:
51
- print(f"\nSuccess running : {cmd}\n")
52
-
53
- def main():
54
-
55
- ports = serial.tools.list_ports.comports()
56
- print(SEP + "\nAvailable ports:")
57
- for port, desc, hwid in sorted(ports):
58
- print("{}: {} [{}]".format(port, desc, hwid))
59
- print(SEP + "\n")
60
-
61
- parser = argparse.ArgumentParser(description='Used to load gw image')
62
- parser.add_argument('--p', type=str, help='COM for the ble - meaning loading gw zip file from UART')
63
- args = parser.parse_args()
64
-
65
-
66
- if args.p:
67
- ble_ser = serial.Serial(port=args.p, baudrate=921600, timeout=0.1)
68
- ble_ser.flushInput()
69
-
70
- failures = 0
71
-
72
- for cmd in GW_COMMANDS:
73
- failures += cmd.exec_cmd(ble_ser)
74
- time.sleep(cmd.delay)
75
- if failures == 0:
76
- ble_ser.close()
77
- time.sleep(2)
78
- print("Please pick a file! (<X.Y.Z>_app.zip)")
79
- root = tk.Tk()
80
- root.withdraw()
81
- file_path = filedialog.askopenfilename()
82
- print(file_path)
83
- cmd = f'{NRFUTIL_MAP[sys.platform]} dfu serial --package "{file_path}" -p {args.p} -fc 0 -b 115200 -t 10'
84
- run_cmd(cmd)
85
- else:
86
- print("ERROR: failed to run UART commands!")
87
-
88
-
89
- if __name__ == "__main__":
90
- main()
@@ -1,36 +0,0 @@
1
- RX_CHANNELS = [37, 38, 39]
2
- RX_CHANNELS_SNIFFING_KIT = list(range(40))
3
- SET_SNIFFER = '!set_logger_mode 2'
4
- CANCEL_SNIFFER = '!set_logger_mode 0'
5
- GET_LOGGER_COUNTERS = '!get_logger_counters'
6
- GATEWAY_APP = '!gateway_app'
7
- STOP_ADVERTISING = '!stop_advertising'
8
- CANCEL = '!cancel'
9
- RESET_GW = '!reset'
10
- VERSION = '!version'
11
- SEND_ALL_ADV_CHANNELS = 0
12
- SERIAL_TIMEOUT = 0.1
13
- SEP = "#"*100
14
- LENGTH = '1E'
15
- GAP_TYPE = '16'
16
- DEFAULT_ADVA = 'FFFFFFFFFFFF'
17
- DEFAULT_DUPLICATES = 3
18
- GW_APP_VERSION_HEADER = 'WILIOT_GW_BLE_CHIP_SW_VER'
19
- GW_MAC_ADDRESS_HEADER = 'WILIOT_GW_BLE_CHIP_MAC_ADDRESS'
20
- LOCATION = 'location'
21
- DEFAULT_OUTPUT_POWER = 8
22
- DEFAULT_DELAY = 20
23
- BRIDGES = [i for i in range(3)]
24
- MAX_NFPKT = 65535
25
- MAX_RSSI = 255
26
- ADVA_LENGTH = 12
27
- GAP_LENGTH = 4
28
- SERVICE_UUID_LENGTH = 4
29
- GROUP_ID_LENGTH = 6
30
- UPLINK_DUPLICATIONS = [i for i in range(3, 7)]
31
- UPLINK_TIME_DELAYS = [20, 130, 255]
32
- UNIFIED_DUPLICATIONS = [i for i in range(3, 7)]
33
- UNIFIED_TIME_DELAYS = [20, 130, 255]
34
- DEFAULT_LOOKOUT_TIME = 2
35
-
36
- ADVA_PAYLOAD = 'adva_payload'