wiliot-certificate 1.5.0a1__tar.gz → 1.5.2a1__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 (249) hide show
  1. {wiliot_certificate-1.5.0a1/src/wiliot_certificate.egg-info → wiliot_certificate-1.5.2a1}/PKG-INFO +46 -42
  2. wiliot_certificate-1.5.2a1/README.md +116 -0
  3. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/pyproject.toml +1 -1
  4. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/energous_v0_defines.py +17 -17
  5. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/energous_v1_defines.py +17 -17
  6. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/energous_v2_defines.py +17 -17
  7. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/energous_v3_defines.py +17 -17
  8. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/energous_v4_defines.py +17 -17
  9. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/fanstel_lan_v0_defines.py +17 -17
  10. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/fanstel_lte_v0_defines.py +17 -17
  11. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/fanstel_wifi_v0_defines.py +17 -17
  12. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/minew_lte_v0_defines.py +17 -17
  13. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_cmd_if.html +3 -2
  14. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types.html +0 -1
  15. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag.py +151 -152
  16. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/brg_certificate.py +38 -7
  17. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/brg_certificate_cli.py +19 -3
  18. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_common.py +92 -55
  19. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_config.py +6 -4
  20. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_data_sim.py +47 -7
  21. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_defines.py +20 -6
  22. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_gw_sim.py +10 -6
  23. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_mqtt.py +9 -6
  24. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_prints.py +14 -1
  25. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_protobuf.py +7 -7
  26. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_results.py +131 -84
  27. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/cert_utils.py +13 -7
  28. wiliot_certificate-1.5.2a1/src/brg_certificate/certificate_bcc_sanity_test_list.txt +40 -0
  29. wiliot_certificate-1.5.2a1/src/brg_certificate/certificate_bcc_test_list.txt +50 -0
  30. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/certificate_sanity_test_list.txt +12 -5
  31. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/certificate_test_list.txt +16 -6
  32. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/calibration/interval_test/interval_test.json +4 -3
  33. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/calibration/output_power_test/output_power_test.json +16 -0
  34. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/calibration/pattern_test/pattern_test.json +7 -4
  35. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/calibration/pattern_test/pattern_test.py +25 -26
  36. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/aging_test/aging_test.json +19 -0
  37. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/aging_test/aging_test.py +142 -0
  38. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +18 -0
  39. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +12 -11
  40. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/output_power_test/output_power_test.json +16 -0
  41. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/output_power_test/output_power_test.py +2 -1
  42. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +16 -0
  43. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +6 -3
  44. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +16 -0
  45. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +6 -3
  46. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +16 -0
  47. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +4 -2
  48. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/pattern_test/pattern_test.json +16 -0
  49. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pattern_test/pattern_test.py +2 -1
  50. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +19 -0
  51. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +12 -5
  52. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +19 -0
  53. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +11 -6
  54. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +10 -4
  55. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -7
  56. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +8 -4
  57. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +7 -5
  58. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +7 -4
  59. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +7 -3
  60. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +4 -5
  61. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +107 -73
  62. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +4 -5
  63. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +220 -0
  64. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +22 -0
  65. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +204 -0
  66. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/stress_test/stress_test.json +22 -0
  67. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/stress_test/stress_test.py +204 -0
  68. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +17 -0
  69. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +7 -2
  70. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +17 -0
  71. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +8 -6
  72. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +4 -3
  73. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +2 -38
  74. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +20 -0
  75. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +19 -0
  76. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +17 -0
  77. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +25 -12
  78. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +17 -0
  79. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +48 -3
  80. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/edge_mgmt/stat_test/stat_test.json → wiliot_certificate-1.5.2a1/src/brg_certificate/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +5 -4
  81. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/edge_mgmt/stat_test/stat_test.py → wiliot_certificate-1.5.2a1/src/brg_certificate/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.py +4 -4
  82. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +16 -0
  83. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +2 -1
  84. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/output_power_test/output_power_test.json +16 -0
  85. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy2400/output_power_test/output_power_test.py +2 -1
  86. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/pattern_test/pattern_test.json +16 -0
  87. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy2400/pattern_test/pattern_test.py +2 -1
  88. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +20 -0
  89. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +343 -0
  90. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +20 -0
  91. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +343 -0
  92. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +20 -0
  93. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +141 -0
  94. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +20 -0
  95. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +337 -0
  96. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +16 -0
  97. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +2 -1
  98. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +20 -0
  99. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +2 -1
  100. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +20 -0
  101. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +117 -124
  102. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +16 -0
  103. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +2 -1
  104. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +18 -0
  105. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +84 -0
  106. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +21 -0
  107. wiliot_certificate-1.5.2a1/src/brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +306 -0
  108. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/wltPb_pb2.py +15 -15
  109. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/wltPb_pb2.pyi +8 -2
  110. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/wlt_types.py +2 -1
  111. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/cert_results.py +11 -4
  112. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/gw_certificate.py +0 -2
  113. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/gw_certificate_cli.py +3 -3
  114. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/uart_if.py +1 -1
  115. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/actions.py +7 -1
  116. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/registration.py +2 -1
  117. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/uplink.py +26 -35
  118. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1/src/wiliot_certificate.egg-info}/PKG-INFO +46 -42
  119. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/wiliot_certificate.egg-info/SOURCES.txt +14 -6
  120. wiliot_certificate-1.5.0a1/README.md +0 -113
  121. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/calibration/output_power_test/output_power_test.json +0 -13
  122. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.json +0 -13
  123. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/adaptive_pacer_algo_test/adaptive_pacer_algo_test.py +0 -76
  124. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.json +0 -13
  125. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/output_power_test/output_power_test.json +0 -13
  126. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +0 -13
  127. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +0 -13
  128. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.json +0 -13
  129. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/pattern_test/pattern_test.json +0 -13
  130. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +0 -13
  131. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +0 -13
  132. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +0 -210
  133. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +0 -30
  134. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +0 -203
  135. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/stress_test/stress_test.json +0 -30
  136. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/stress_test/stress_test.py +0 -210
  137. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +0 -13
  138. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +0 -13
  139. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +0 -13
  140. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +0 -13
  141. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +0 -13
  142. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +0 -13
  143. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +0 -13
  144. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/output_power_test/output_power_test.json +0 -13
  145. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/pattern_test/pattern_test.json +0 -13
  146. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +0 -13
  147. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +0 -398
  148. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +0 -13
  149. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +0 -153
  150. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +0 -13
  151. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +0 -264
  152. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +0 -13
  153. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +0 -13
  154. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +0 -13
  155. wiliot_certificate-1.5.0a1/src/brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +0 -13
  156. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/LICENSE +0 -0
  157. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/setup.cfg +0 -0
  158. {wiliot_certificate-1.5.0a1/src/gw_certificate/tests/static → wiliot_certificate-1.5.2a1/src/brg_certificate}/__init__.py +0 -0
  159. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/brg2brg_ota.json +0 -0
  160. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb.json +0 -0
  161. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +0 -0
  162. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/calibration.json +0 -0
  163. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/custom.json +0 -0
  164. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/datapath.json +0 -0
  165. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/energy2400.json +0 -0
  166. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/energySub1g.json +0 -0
  167. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/externalSensor.json +0 -0
  168. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/interface.json +0 -0
  169. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/powerManagement.json +0 -0
  170. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -0
  171. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/signal_indicator_data.json +0 -0
  172. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +0 -0
  173. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +0 -0
  174. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/config/eclipse.json +0 -0
  175. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/config/hivemq.json +0 -0
  176. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/config/mosquitto.json +0 -0
  177. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/config/mosquitto.md +0 -0
  178. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/config/wiliot-dev.json +0 -0
  179. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/restore_brg.py +0 -0
  180. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/calibration/interval_test/interval_test.py +0 -0
  181. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/calibration/output_power_test/output_power_test.py +0 -0
  182. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +0 -0
  183. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.py +0 -0
  184. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/common/wlt_logo.png +0 -0
  185. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if → wiliot_certificate-1.5.2a1/src/gw_certificate}/__init__.py +0 -0
  186. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/ag/ut_defines.py +0 -0
  187. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/ag/wlt_types.py +0 -0
  188. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/ag/wlt_types_ag.py +0 -0
  189. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/ag/wlt_types_data.py +0 -0
  190. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api/extended_api.py +0 -0
  191. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/200/data.json +0 -0
  192. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/205 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/200}/logs.json +0 -0
  193. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/200/status.json +0 -0
  194. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/201/data.json +0 -0
  195. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/204 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/201}/logs.json +0 -0
  196. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/201/status.json +0 -0
  197. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/202/data.json +0 -0
  198. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/203 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/202}/logs.json +0 -0
  199. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/202/status.json +0 -0
  200. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/204 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/203}/data.json +0 -0
  201. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/202 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/203}/logs.json +0 -0
  202. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/203/status.json +0 -0
  203. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/203 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/204}/data.json +0 -0
  204. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/201 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/204}/logs.json +0 -0
  205. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/204/status.json +0 -0
  206. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/205/data.json +0 -0
  207. {wiliot_certificate-1.5.0a1/src/gw_certificate/api_if/200 → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if/205}/logs.json +0 -0
  208. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/205/status.json +0 -0
  209. {wiliot_certificate-1.5.0a1/src/gw_certificate → wiliot_certificate-1.5.2a1/src/gw_certificate/api_if}/__init__.py +0 -0
  210. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/api_validation.py +0 -0
  211. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/api_if/gw_capabilities.py +0 -0
  212. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/common/analysis_data_bricks.py +0 -0
  213. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/common/debug.py +0 -0
  214. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/common/utils.py +0 -0
  215. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/common/utils_defines.py +0 -0
  216. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/common/wltPb_pb2.py +0 -0
  217. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/common/wltPb_pb2.pyi +0 -0
  218. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/4.4.52_app.zip +0 -0
  219. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/4.4.52_sd_bl_app.zip +0 -0
  220. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/ble_simulator.py +0 -0
  221. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/ble_sniffer.py +0 -0
  222. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/if_defines.py +0 -0
  223. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/mqtt.py +0 -0
  224. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/nrfutil-linux +0 -0
  225. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/nrfutil-mac +0 -0
  226. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/nrfutil.exe +0 -0
  227. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/pkt_generator.py +0 -0
  228. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/interface/uart_ports.py +0 -0
  229. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/templates/results.html +0 -0
  230. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/templates/stage.html +0 -0
  231. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/templates/table.html +0 -0
  232. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/templates/test.html +0 -0
  233. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/__init__.py +0 -0
  234. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/bad_crc_to_PER_quantization.csv +0 -0
  235. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/connection.py +0 -0
  236. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/downlink.py +0 -0
  237. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/generic.py +0 -0
  238. {wiliot_certificate-1.5.0a1/src/brg_certificate → wiliot_certificate-1.5.2a1/src/gw_certificate/tests/static}/__init__.py +0 -0
  239. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/static/connection_defines.py +0 -0
  240. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/static/downlink_defines.py +0 -0
  241. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/static/generated_packet_table.py +0 -0
  242. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/static/packet_table.csv +0 -0
  243. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/static/references.py +0 -0
  244. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/static/uplink_defines.py +0 -0
  245. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/gw_certificate/tests/throughput.py +0 -0
  246. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/wiliot_certificate.egg-info/dependency_links.txt +0 -0
  247. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/wiliot_certificate.egg-info/entry_points.txt +0 -0
  248. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/wiliot_certificate.egg-info/requires.txt +0 -0
  249. {wiliot_certificate-1.5.0a1 → wiliot_certificate-1.5.2a1}/src/wiliot_certificate.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: wiliot_certificate
3
- Version: 1.5.0a1
3
+ Version: 1.5.2a1
4
4
  Summary: A library for certifying Wiliot-compliant boards
5
5
  Author-email: Wiliot <support@wiliot.com>
6
6
  License: MIT License
@@ -50,13 +50,14 @@ Requires-Dist: statsmodels>=0.14.4
50
50
  Requires-Dist: pyserial>=3.5
51
51
  Requires-Dist: reportlab>=4.3.1
52
52
  Requires-Dist: google-api-python-client>=2.162.0
53
+ Dynamic: license-file
53
54
 
54
55
  # wiliot-certificate
55
56
 
56
57
  <!-- Description -->
57
58
  wiliot-certificate is a python library with tools used to test & certify boards and their compatibility with Wiliot's echosystem.
58
59
  This python package includes the following CLI utilities:
59
- - Gateway Certificate (`wlt-gw-certificate`)
60
+ - Gateway Certificate (`wlt-cert-gw`)
60
61
  - Bridge Certificate (`wlt-cert-brg`)
61
62
 
62
63
  ## Installing wiliot-certificate
@@ -78,27 +79,15 @@ Websocket Port: 80
78
79
 
79
80
  More information can be found at https://mqtt.eclipseprojects.io/.
80
81
 
81
- #### Connection Test
82
- Processes status packet sent by the GW to the MQTT Broker and validates it according to API Version.
83
-
84
- #### Uplink Test
85
- Simulates Wiliot MEL and validates that data is uploaded correctly to the cloud.
86
-
87
- #### Downlink Test
88
- Sends advertising actions (txPacket) via MQTT to the GW and validates their advertisements.
89
-
90
- #### Stress Test
91
- Increments time delays between packets to evaluate GW's capability in handling increasing packets per second rates.
92
-
93
82
  #### GW Certificate Release Notes:
94
- 1.4.0:
95
- - Released in a standalone wiliot-certificate package
83
+ Release:
84
+ - Standalone wiliot-certificate package
96
85
  - Python 3.13 support
97
86
  - Gw API version 205 support
98
87
  - Registration test added
99
88
  - Bridge OTA stage added under actions
100
89
  - Aggregation flag supported by StressTest
101
- - -update flag compatibility fix. Upgrades bootloader as well
90
+ - -update flag compatibility fix. Upgrades bootloader if needed
102
91
  - -actions flag to select specific actions to test
103
92
 
104
93
  ```
@@ -134,33 +123,48 @@ Websocket Port: 80
134
123
 
135
124
  More information can be found at https://mqtt.eclipseprojects.io/.
136
125
 
137
- #### XXX Test
138
- TEST EXPLANATION
139
-
140
126
  #### BRG Certificate Release Notes:
141
127
  1.3.0:
142
128
  - FIRST VERSION
143
129
 
144
-
145
130
  ```
146
- usage: wlt-cert-brg [-h] [-h] [-b BRG] [-b1 BRG1] --gw GW [--data {tags,sim}] [--port PORT] [--clean] [--tl TL] [--run RUN] [--drun DRUN] [--exit_on_test_failure] [--exit_on_param_failure] [--analyze_interference]
147
-
148
- Gateway Certificate - CLI Tool to test Wiliot BRGs
149
-
150
- required arguments:
151
- --gw, -g GW Gateway ID
152
- --port, -p PORT COM Port
153
- --brg, -b BRG Bridge ID
154
-
155
- optional arguments:
156
- --brg1, -b1 BRG1 Second bridge id to run on tests two bridges needed
157
- --data, -d {tags,sim} Choose if data generated from real tags or by simulation
158
- --port, -p PORT Enable UT using UART connection for Gateway Simulation or Data Simulation
159
- --clean Clean all logs
160
- --tl TL Test list file to use
161
- --run RUN String to filter tests to run
162
- --drun DRUN String to filter tests not to run
163
- --exit_on_test_failure Stop running the tests if a test failed
164
- --exit_on_param_failure Sets exit_on_param_failure mode to true in order to prevent tests from continuing iteration over all possibilities in case of failure
165
- --analyze_interference, -ai Analyze interference before tests start (relevant only for Gateway Simulator)
131
+ usage: brg_certificate_cli.py [-h] [--brg BRG] [--brg_cloud_connectivity BRG_CLOUD_CONNECTIVITY] [--brg1 BRG1] --gw GW [--data {tags,sim}] [--port PORT] [--clean] [--tl TL] [--run RUN]
132
+ [--drun DRUN] [--exit_on_test_failure] [--exit_on_param_failure] [--analyze_interference]
133
+
134
+ Bridge Certificate CLI
135
+
136
+ options:
137
+ -h, --help show this help message and exit
138
+ --brg, -b BRG Bridge id to run on the tests
139
+ --brg_cloud_connectivity, -bcc BRG_CLOUD_CONNECTIVITY
140
+ Bridge with cloud connectivity id to run on the tests
141
+ --brg1, -b1 BRG1 Second bridge id to run on tests two bridges needed
142
+ --gw, -g GW GW id to run on the test, SIM prefix is used for Gateway simulation
143
+ --data, -d {tags,sim}
144
+ Choose if data generated from real tags or by simulation
145
+ --port, -p PORT Enable UT using UART connection for Gateway Simulation or Data Simulation
146
+ --clean Clean all logs
147
+ --tl TL Test list file to use
148
+ --run RUN String to filter tests to run
149
+ --drun DRUN String to filter tests not to run
150
+ --exit_on_test_failure
151
+ Stop running the tests if a test failed
152
+ --exit_on_param_failure
153
+ Sets exit_on_param_failure mode to true in order to prevent tests from continuing iteration over all possibilities in case of failure
154
+ --analyze_interference, -ai
155
+ Analyze interference before tests start (relevant only for Gateway Simulator)
156
+
157
+ run examples:
158
+ Run command example with COM PORT connection:
159
+ wlt-cert-brg --gw SIM --brg <XXXXXXXXXXXX> --port <COM_PORT>
160
+ Run command example with remote GW connection:
161
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX>
162
+ Run command example for running datapath module tests only:
163
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --run datapath
164
+ Run command example with sanity test list:
165
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt
166
+ Run command example with COM PORT connection for bridge with cloud connectivity:
167
+ wlt-cert-brg --gw SIM --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt --port <COM_PORT>
168
+ Run command example with remote GW connection for bridge with cloud connectivity:
169
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt
166
170
  ```
@@ -0,0 +1,116 @@
1
+ # wiliot-certificate
2
+
3
+ <!-- Description -->
4
+ wiliot-certificate is a python library with tools used to test & certify boards and their compatibility with Wiliot's echosystem.
5
+ This python package includes the following CLI utilities:
6
+ - Gateway Certificate (`wlt-cert-gw`)
7
+ - Bridge Certificate (`wlt-cert-brg`)
8
+
9
+ ## Installing wiliot-certificate
10
+ ````commandline
11
+ pip install wiliot-certificate
12
+ ````
13
+
14
+ ## Using wiliot-certificate
15
+ ### Gateway Certificate
16
+ Test Wiliot GWs capabilities.
17
+ The GW Certificate includes different test that run sequentially to test each capability reported by the GW.
18
+ To run the GW Certificate the GW needs to use a public MQTT Broker (Eclipse):
19
+
20
+ Host: mqtt.eclipseprojects.io
21
+ TLS TCP Port: 8883
22
+ TLS Websocket Port: 443
23
+ TCP Port: 1883
24
+ Websocket Port: 80
25
+
26
+ More information can be found at https://mqtt.eclipseprojects.io/.
27
+
28
+ #### GW Certificate Release Notes:
29
+ Release:
30
+ - Standalone wiliot-certificate package
31
+ - Python 3.13 support
32
+ - Gw API version 205 support
33
+ - Registration test added
34
+ - Bridge OTA stage added under actions
35
+ - Aggregation flag supported by StressTest
36
+ - -update flag compatibility fix. Upgrades bootloader if needed
37
+ - -actions flag to select specific actions to test
38
+
39
+ ```
40
+ usage: wlt-gw-certificate [-h] -owner OWNER -gw GW [-suffix SUFFIX] [-tests {connection,uplink,downlink,stress}]
41
+
42
+ Gateway Certificate - CLI Tool to test Wiliot GWs
43
+
44
+ required arguments:
45
+ -gw GW Gateway ID
46
+
47
+ optional arguments:
48
+ -owner OWNER Owner ID (Required for non-registration tests)
49
+ -tests Pick specific tests to run
50
+ -actions Pick specific actions to test during the ActionsTest
51
+ -update Update the firmware of the test board
52
+ -pps Pick specific PPS rate for the stress test
53
+ -agg Time the uplink stages should wait before processing packets
54
+ -suffix Allow for different suffixes after the GW ID in MQTT topics
55
+ -env Wiliot envrionment for Registration and bridgeOTA tests
56
+ -h, --help show this help message and exit
57
+ ```
58
+
59
+ ### Bridge Certificate
60
+ Test Wiliot BRGs capabilities.
61
+ The BRG Certificate includes different tests that run sequentially to test each capability reported by the BRG.
62
+ The BRG Certificate tool uses a public MQTT Broker (Eclipse):
63
+
64
+ Host: mqtt.eclipseprojects.io
65
+ TLS TCP Port: 8883
66
+ TLS Websocket Port: 443
67
+ TCP Port: 1883
68
+ Websocket Port: 80
69
+
70
+ More information can be found at https://mqtt.eclipseprojects.io/.
71
+
72
+ #### BRG Certificate Release Notes:
73
+ 1.3.0:
74
+ - FIRST VERSION
75
+
76
+ ```
77
+ usage: brg_certificate_cli.py [-h] [--brg BRG] [--brg_cloud_connectivity BRG_CLOUD_CONNECTIVITY] [--brg1 BRG1] --gw GW [--data {tags,sim}] [--port PORT] [--clean] [--tl TL] [--run RUN]
78
+ [--drun DRUN] [--exit_on_test_failure] [--exit_on_param_failure] [--analyze_interference]
79
+
80
+ Bridge Certificate CLI
81
+
82
+ options:
83
+ -h, --help show this help message and exit
84
+ --brg, -b BRG Bridge id to run on the tests
85
+ --brg_cloud_connectivity, -bcc BRG_CLOUD_CONNECTIVITY
86
+ Bridge with cloud connectivity id to run on the tests
87
+ --brg1, -b1 BRG1 Second bridge id to run on tests two bridges needed
88
+ --gw, -g GW GW id to run on the test, SIM prefix is used for Gateway simulation
89
+ --data, -d {tags,sim}
90
+ Choose if data generated from real tags or by simulation
91
+ --port, -p PORT Enable UT using UART connection for Gateway Simulation or Data Simulation
92
+ --clean Clean all logs
93
+ --tl TL Test list file to use
94
+ --run RUN String to filter tests to run
95
+ --drun DRUN String to filter tests not to run
96
+ --exit_on_test_failure
97
+ Stop running the tests if a test failed
98
+ --exit_on_param_failure
99
+ Sets exit_on_param_failure mode to true in order to prevent tests from continuing iteration over all possibilities in case of failure
100
+ --analyze_interference, -ai
101
+ Analyze interference before tests start (relevant only for Gateway Simulator)
102
+
103
+ run examples:
104
+ Run command example with COM PORT connection:
105
+ wlt-cert-brg --gw SIM --brg <XXXXXXXXXXXX> --port <COM_PORT>
106
+ Run command example with remote GW connection:
107
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX>
108
+ Run command example for running datapath module tests only:
109
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --run datapath
110
+ Run command example with sanity test list:
111
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt
112
+ Run command example with COM PORT connection for bridge with cloud connectivity:
113
+ wlt-cert-brg --gw SIM --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt --port <COM_PORT>
114
+ Run command example with remote GW connection for bridge with cloud connectivity:
115
+ wlt-cert-brg --gw <YYYYYYYYYYYY> --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt
116
+ ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "wiliot_certificate"
7
- version = "1.5.0a1"
7
+ version = "1.5.2a1"
8
8
  authors = [
9
9
  { name="Wiliot", email="support@wiliot.com" }
10
10
  ]
@@ -3,7 +3,7 @@
3
3
  import bitstruct
4
4
  import binascii
5
5
  import tabulate
6
- from brg_certificate.ag.wlt_types_ag import API_VERSION_V0, API_VERSION_V1, API_VERSION_V2, API_VERSION_V5, API_VERSION_V6, API_VERSION_V7, API_VERSION_V8, API_VERSION_V9, API_VERSION_V10, API_VERSION_V11, API_VERSION_V12, API_VERSION_LATEST, MODULE_EMPTY, MODULE_GLOBAL, MODULE_IF, MODULE_DATAPATH, MODULE_ENERGY_2400, MODULE_ENERGY_SUB1G, MODULE_CALIBRATION, MODULE_PWR_MGMT, MODULE_EXT_SENSORS, MODULE_CUSTOM, SUB1G_ENERGY_PATTERN_NO_ENERGIZING, SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000, SUB1G_ENERGY_PATTERN_FCC_HOPPING, SUB1G_ENERGY_PATTERN_JAPAN_1W, SUB1G_ENERGY_PATTERN_JAPAN_350MW, SUB1G_ENERGY_PATTERN_KOREA, SUB1G_ENERGY_PATTERN_SINGLE_TONE_916300, SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500, SUB1G_ENERGY_PATTERN_AUSTRALIA, SUB1G_ENERGY_PATTERN_ISRAEL, SUB1G_ENERGY_PATTERN_NZ_HOPPING, SUB1G_ENERGY_PATTERN_LAST, CHANNEL_FREQ_37, CHANNEL_FREQ_38, CHANNEL_FREQ_39, CHANNEL_37, CHANNEL_38, CHANNEL_39, OUTPUT_POWER_2_4_NEG_12, OUTPUT_POWER_2_4_NEG_8, OUTPUT_POWER_2_4_NEG_4, OUTPUT_POWER_2_4_POS_0, OUTPUT_POWER_2_4_POS_2, OUTPUT_POWER_2_4_POS_3, OUTPUT_POWER_2_4_POS_4, OUTPUT_POWER_2_4_POS_5, OUTPUT_POWER_2_4_POS_6, OUTPUT_POWER_2_4_POS_7, OUTPUT_POWER_2_4_POS_8, RX_CHANNEL_37, RX_CHANNEL_38, RX_CHANNEL_39, RX_CHANNEL_10_250K, RX_CHANNEL_10_500K, RX_CHANNEL_V11_37, RX_CHANNEL_V11_38, RX_CHANNEL_V11_39, RX_CHANNEL_V11_4_1MBPS, RX_CHANNEL_V11_10_1MBPS, RX_CHANNEL_V11_4_2MBPS, RX_CHANNEL_V11_10_2MBPS, SECONDARY_RX_CHANNEL_10, SUB1G_OUTPUT_POWER_11, SUB1G_OUTPUT_POWER_14, SUB1G_OUTPUT_POWER_17, SUB1G_OUTPUT_POWER_19, SUB1G_OUTPUT_POWER_20, SUB1G_OUTPUT_POWER_23, SUB1G_OUTPUT_POWER_25, SUB1G_OUTPUT_POWER_26, SUB1G_OUTPUT_POWER_27, SUB1G_OUTPUT_POWER_29, SUB1G_OUTPUT_POWER_32, SUB1G_OUTPUT_POWER_PROFILE_14, SUB1G_OUTPUT_POWER_PROFILE_17, SUB1G_OUTPUT_POWER_PROFILE_20, SUB1G_OUTPUT_POWER_PROFILE_23, SUB1G_OUTPUT_POWER_PROFILE_26, SUB1G_OUTPUT_POWER_PROFILE_29, SUB1G_OUTPUT_POWER_PROFILE_32, SIGNAL_INDICATOR_REP_1, SIGNAL_INDICATOR_REP_2, SIGNAL_INDICATOR_REP_3, SIGNAL_INDICATOR_REP_4, SIGNAL_INDICATOR_SUB1G_REP_1, SIGNAL_INDICATOR_SUB1G_REP_2, SIGNAL_INDICATOR_SUB1G_REP_3, SIGNAL_INDICATOR_SUB1G_REP_4, SIGNAL_INDICATOR_REP_PROFILE_1, SIGNAL_INDICATOR_REP_PROFILE_2, SIGNAL_INDICATOR_REP_PROFILE_3, SIGNAL_INDICATOR_REP_PROFILE_4, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_1, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_2, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_3, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_4, BRG_DEFAULT_CALIBRATION_INTERVAL, BRG_DEFAULT_CALIBRATION_OUTPUT_POWER, BRG_DEFAULT_CALIBRATION_PATTERN, BRG_DEFAULT_DATAPATH_PATTERN, BRG_DEFAULT_PKT_FILTER, BRG_DEFAULT_RX_CHANNEL_OR_FREQ, BRG_DEFAULT_DATAPATH_OUTPUT_POWER, BRG_DEFAULT_TX_REPETITION, BRG_DEFAULT_PACER_INTERVAL, BRG_DEFAULT_RSSI_THRESHOLD, BRG_DEFAULT_RX_CHANNEL, BRG_DEFAULT_ENERGY_PATTERN_2_4, BRG_DEFAULT_ENERGY_DUTY_CYCLE_2_4, BRG_DEFAULT_OUTPUT_POWER_2_4, BRG_DEFAULT_SIGNAL_INDICATOR_REP, BRG_DEFAULT_SIGNAL_INDICATOR_REP_PROFILE, BRG_DEFAULT_SIGNAL_INDICATOR_CYCLE, BRG_DEFAULT_SUB1G_DUTY_CYCLE, BRG_DEFAULT_OUTPUT_POWER_SUB1G, BRG_DEFAULT_OUTPUT_POWER_SUB1G_PROFILE, BRG_DEFAULT_SUB1G_ENERGY_PATTERN, BRG_DEFAULT_SIGNAL_INDICATOR_SUB1G_REP, BRG_DEFAULT_SIGNAL_INDICATOR_SUB1G_REP_PROFILE, BRG_DEFAULT_SIGNAL_INDICATOR_SUB1G_CYCLE, BRG_DEFAULT_EXTERNAL_SENSOR_CFG, BRG_DEFAULT_TX_PERIOD, BRG_DEFAULT_TRANSMIT_TIME_SUB1G, BRG_DEFAULT_SUB1G_FREQ, BRG_DEFAULT_SUB1G_FREQ_PROFILE, BRG_DEFAULT_ENERGY_PATTERN_IDX_OLD, BRG_DEFAULT_RXTX_PERIOD, BRG_DEFAULT_PKT_TYPES_MASK, BRG_MGMT_MSG_TYPE_CFG_INFO, BRG_MGMT_MSG_TYPE_OTA_UPDATE, BRG_MGMT_MSG_TYPE_HB, BRG_MGMT_MSG_TYPE_REBOOT, BRG_MGMT_MSG_TYPE_LED_BLINK, BRG_MGMT_MSG_TYPE_CFG_SET, BRG_MGMT_MSG_TYPE_ACTION, BRG_MGMT_MSG_TYPE_BRG2BRG, BRG_MGMT_MSG_TYPE_HB_SLEEP, PWR_MGMT_DEFAULTS_LEDS_ON, PWR_MGMT_DEFAULTS_KEEP_ALIVE_PERIOD, PWR_MGMT_DEFAULTS_KEEP_ALIVE_SCAN, PWR_MGMT_DEFAULTS_ON_DURATION, PWR_MGMT_DEFAULTS_SLEEP_DURATION, LIS2DW12_DEFAULTS_PACKET_VERSION, LIS2DW12_DEFAULTS_STATE_THRESHOLD, LIS2DW12_DEFAULTS_WAKE_UP_DURATION, LIS2DW12_DEFAULTS_SLEEP_DURATION
6
+ from brg_certificate.ag.wlt_types_ag import API_VERSION_V0, API_VERSION_V1, API_VERSION_V2, API_VERSION_V5, API_VERSION_V6, API_VERSION_V7, API_VERSION_V8, API_VERSION_V9, API_VERSION_V10, API_VERSION_V11, API_VERSION_V12, API_VERSION_LATEST, MODULE_EMPTY, MODULE_GLOBAL, MODULE_IF, MODULE_DATAPATH, MODULE_ENERGY_2400, MODULE_ENERGY_SUB1G, MODULE_CALIBRATION, MODULE_PWR_MGMT, MODULE_EXT_SENSORS, MODULE_CUSTOM, SUB1G_ENERGY_PATTERN_NO_ENERGIZING, SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000, SUB1G_ENERGY_PATTERN_FCC_HOPPING, SUB1G_ENERGY_PATTERN_JAPAN_1W, SUB1G_ENERGY_PATTERN_JAPAN_350MW, SUB1G_ENERGY_PATTERN_KOREA, SUB1G_ENERGY_PATTERN_SINGLE_TONE_916300, SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500, SUB1G_ENERGY_PATTERN_AUSTRALIA, SUB1G_ENERGY_PATTERN_ISRAEL, SUB1G_ENERGY_PATTERN_NZ_HOPPING, SUB1G_ENERGY_PATTERN_LAST, CHANNEL_FREQ_37, CHANNEL_FREQ_38, CHANNEL_FREQ_39, CHANNEL_37, CHANNEL_38, CHANNEL_39, OUTPUT_POWER_2_4_NEG_12, OUTPUT_POWER_2_4_NEG_8, OUTPUT_POWER_2_4_NEG_4, OUTPUT_POWER_2_4_POS_0, OUTPUT_POWER_2_4_POS_2, OUTPUT_POWER_2_4_POS_3, OUTPUT_POWER_2_4_POS_4, OUTPUT_POWER_2_4_POS_5, OUTPUT_POWER_2_4_POS_6, OUTPUT_POWER_2_4_POS_7, OUTPUT_POWER_2_4_POS_8, RX_CHANNEL_37, RX_CHANNEL_38, RX_CHANNEL_39, RX_CHANNEL_10_250K, RX_CHANNEL_10_500K, RX_CHANNEL_V11_37, RX_CHANNEL_V11_38, RX_CHANNEL_V11_39, RX_CHANNEL_V11_4_1MBPS, RX_CHANNEL_V11_10_1MBPS, RX_CHANNEL_V11_4_2MBPS, RX_CHANNEL_V11_10_2MBPS, SECONDARY_RX_CHANNEL_10, SUB1G_OUTPUT_POWER_11, SUB1G_OUTPUT_POWER_14, SUB1G_OUTPUT_POWER_17, SUB1G_OUTPUT_POWER_19, SUB1G_OUTPUT_POWER_20, SUB1G_OUTPUT_POWER_23, SUB1G_OUTPUT_POWER_25, SUB1G_OUTPUT_POWER_26, SUB1G_OUTPUT_POWER_27, SUB1G_OUTPUT_POWER_29, SUB1G_OUTPUT_POWER_32, SUB1G_OUTPUT_POWER_PROFILE_14, SUB1G_OUTPUT_POWER_PROFILE_17, SUB1G_OUTPUT_POWER_PROFILE_20, SUB1G_OUTPUT_POWER_PROFILE_23, SUB1G_OUTPUT_POWER_PROFILE_26, SUB1G_OUTPUT_POWER_PROFILE_29, SUB1G_OUTPUT_POWER_PROFILE_32, SIGNAL_INDICATOR_REP_1, SIGNAL_INDICATOR_REP_2, SIGNAL_INDICATOR_REP_3, SIGNAL_INDICATOR_REP_4, SIGNAL_INDICATOR_SUB1G_REP_1, SIGNAL_INDICATOR_SUB1G_REP_2, SIGNAL_INDICATOR_SUB1G_REP_3, SIGNAL_INDICATOR_SUB1G_REP_4, SIGNAL_INDICATOR_REP_PROFILE_1, SIGNAL_INDICATOR_REP_PROFILE_2, SIGNAL_INDICATOR_REP_PROFILE_3, SIGNAL_INDICATOR_REP_PROFILE_4, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_1, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_2, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_3, SIGNAL_INDICATOR_SUB1G_REP_PROFILE_4, BRG_DEFAULT_CALIBRATION_INTERVAL, BRG_DEFAULT_CALIBRATION_OUTPUT_POWER, BRG_DEFAULT_CALIBRATION_PATTERN, BRG_DEFAULT_DATAPATH_PATTERN, BRG_DEFAULT_PKT_FILTER, BRG_DEFAULT_RX_CHANNEL_OR_FREQ, BRG_DEFAULT_DATAPATH_OUTPUT_POWER, BRG_DEFAULT_TX_REPETITION, BRG_DEFAULT_PACER_INTERVAL, BRG_DEFAULT_RSSI_THRESHOLD, BRG_DEFAULT_RX_CHANNEL, BRG_DEFAULT_ENERGY_PATTERN_2_4, BRG_DEFAULT_ENERGY_DUTY_CYCLE_2_4, BRG_DEFAULT_OUTPUT_POWER_2_4, BRG_DEFAULT_SIGNAL_INDICATOR_REP, BRG_DEFAULT_SIGNAL_INDICATOR_REP_PROFILE, BRG_DEFAULT_SIGNAL_INDICATOR_CYCLE, BRG_DEFAULT_SUB1G_DUTY_CYCLE, BRG_DEFAULT_OUTPUT_POWER_SUB1G, BRG_DEFAULT_OUTPUT_POWER_SUB1G_PROFILE, BRG_DEFAULT_SUB1G_ENERGY_PATTERN, BRG_DEFAULT_SIGNAL_INDICATOR_SUB1G_REP, BRG_DEFAULT_SIGNAL_INDICATOR_SUB1G_REP_PROFILE, BRG_DEFAULT_SIGNAL_INDICATOR_SUB1G_CYCLE, BRG_DEFAULT_EXTERNAL_SENSOR_CFG, BRG_DEFAULT_TX_PERIOD, BRG_DEFAULT_TRANSMIT_TIME_SUB1G, BRG_DEFAULT_SUB1G_FREQ, BRG_DEFAULT_SUB1G_FREQ_PROFILE, BRG_DEFAULT_ENERGY_PATTERN_IDX_OLD, BRG_DEFAULT_RXTX_PERIOD, BRG_DEFAULT_PKT_TYPES_MASK, BRG_MGMT_MSG_TYPE_CFG_INFO, BRG_MGMT_MSG_TYPE_OTA_UPDATE, BRG_MGMT_MSG_TYPE_HB, BRG_MGMT_MSG_TYPE_REBOOT, BRG_MGMT_MSG_TYPE_CFG_SET, BRG_MGMT_MSG_TYPE_ACTION, BRG_MGMT_MSG_TYPE_BRG2BRG, BRG_MGMT_MSG_TYPE_HB_SLEEP, PWR_MGMT_DEFAULTS_LEDS_ON, PWR_MGMT_DEFAULTS_KEEP_ALIVE_PERIOD, PWR_MGMT_DEFAULTS_KEEP_ALIVE_SCAN, PWR_MGMT_DEFAULTS_ON_DURATION, PWR_MGMT_DEFAULTS_SLEEP_DURATION, LIS2DW12_DEFAULTS_PACKET_VERSION, LIS2DW12_DEFAULTS_STATE_THRESHOLD, LIS2DW12_DEFAULTS_WAKE_UP_DURATION, LIS2DW12_DEFAULTS_SLEEP_DURATION
7
7
 
8
8
  # Board Overwritten defines
9
9
  BRG_DEFAULT_CALIBRATION_OUTPUT_POWER = OUTPUT_POWER_2_4_POS_3
@@ -36,7 +36,7 @@ class ModuleIfV12():
36
36
  self.set(raw)
37
37
 
38
38
  def __repr__(self) -> str:
39
- return "\n==> Packet module_if_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['board_type', f"0x{self.board_type:X} ({self.board_type})"],['bl_version', f"0x{self.bl_version:X} ({self.bl_version})"],['major_ver', f"0x{self.major_ver:X} ({self.major_ver})"],['minor_ver', f"0x{self.minor_ver:X} ({self.minor_ver})"],['patch_ver', f"0x{self.patch_ver:X} ({self.patch_ver})"],['sup_cap_glob', f"0x{self.sup_cap_glob:X} ({self.sup_cap_glob})"],['sup_cap_datapath', f"0x{self.sup_cap_datapath:X} ({self.sup_cap_datapath})"],['sup_cap_energy2400', f"0x{self.sup_cap_energy2400:X} ({self.sup_cap_energy2400})"],['sup_cap_energy_sub1g', f"0x{self.sup_cap_energy_sub1g:X} ({self.sup_cap_energy_sub1g})"],['sup_cap_calibration', f"0x{self.sup_cap_calibration:X} ({self.sup_cap_calibration})"],['sup_cap_pwr_mgmt', f"0x{self.sup_cap_pwr_mgmt:X} ({self.sup_cap_pwr_mgmt})"],['sup_cap_sensors', f"0x{self.sup_cap_sensors:X} ({self.sup_cap_sensors})"],['sup_cap_custom', f"0x{self.sup_cap_custom:X} ({self.sup_cap_custom})"],['cfg_hash', f"0x{self.cfg_hash:X} ({self.cfg_hash})"]], tablefmt="texttable")
39
+ return "\n==> Packet module_if_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['board_type', f"0x{self.board_type:X}", self.board_type],['bl_version', f"0x{self.bl_version:X}", self.bl_version],['major_ver', f"0x{self.major_ver:X}", self.major_ver],['minor_ver', f"0x{self.minor_ver:X}", self.minor_ver],['patch_ver', f"0x{self.patch_ver:X}", self.patch_ver],['sup_cap_glob', f"0x{self.sup_cap_glob:X}", self.sup_cap_glob],['sup_cap_datapath', f"0x{self.sup_cap_datapath:X}", self.sup_cap_datapath],['sup_cap_energy2400', f"0x{self.sup_cap_energy2400:X}", self.sup_cap_energy2400],['sup_cap_energy_sub1g', f"0x{self.sup_cap_energy_sub1g:X}", self.sup_cap_energy_sub1g],['sup_cap_calibration', f"0x{self.sup_cap_calibration:X}", self.sup_cap_calibration],['sup_cap_pwr_mgmt', f"0x{self.sup_cap_pwr_mgmt:X}", self.sup_cap_pwr_mgmt],['sup_cap_sensors', f"0x{self.sup_cap_sensors:X}", self.sup_cap_sensors],['sup_cap_custom', f"0x{self.sup_cap_custom:X}", self.sup_cap_custom],['cfg_hash', f"0x{self.cfg_hash:X}", self.cfg_hash]], tablefmt="texttable")
40
40
 
41
41
  def __eq__(self, other):
42
42
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -115,7 +115,7 @@ class ModuleIfV11():
115
115
  self.set(raw)
116
116
 
117
117
  def __repr__(self) -> str:
118
- return "\n==> Packet module_if_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['board_type', f"0x{self.board_type:X} ({self.board_type})"],['bl_version', f"0x{self.bl_version:X} ({self.bl_version})"],['major_ver', f"0x{self.major_ver:X} ({self.major_ver})"],['minor_ver', f"0x{self.minor_ver:X} ({self.minor_ver})"],['patch_ver', f"0x{self.patch_ver:X} ({self.patch_ver})"],['sup_cap_glob', f"0x{self.sup_cap_glob:X} ({self.sup_cap_glob})"],['sup_cap_datapath', f"0x{self.sup_cap_datapath:X} ({self.sup_cap_datapath})"],['sup_cap_energy2400', f"0x{self.sup_cap_energy2400:X} ({self.sup_cap_energy2400})"],['sup_cap_energy_sub1g', f"0x{self.sup_cap_energy_sub1g:X} ({self.sup_cap_energy_sub1g})"],['sup_cap_calibration', f"0x{self.sup_cap_calibration:X} ({self.sup_cap_calibration})"],['sup_cap_pwr_mgmt', f"0x{self.sup_cap_pwr_mgmt:X} ({self.sup_cap_pwr_mgmt})"],['sup_cap_sensors', f"0x{self.sup_cap_sensors:X} ({self.sup_cap_sensors})"],['sup_cap_custom', f"0x{self.sup_cap_custom:X} ({self.sup_cap_custom})"],['cfg_hash', f"0x{self.cfg_hash:X} ({self.cfg_hash})"]], tablefmt="texttable")
118
+ return "\n==> Packet module_if_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['board_type', f"0x{self.board_type:X}", self.board_type],['bl_version', f"0x{self.bl_version:X}", self.bl_version],['major_ver', f"0x{self.major_ver:X}", self.major_ver],['minor_ver', f"0x{self.minor_ver:X}", self.minor_ver],['patch_ver', f"0x{self.patch_ver:X}", self.patch_ver],['sup_cap_glob', f"0x{self.sup_cap_glob:X}", self.sup_cap_glob],['sup_cap_datapath', f"0x{self.sup_cap_datapath:X}", self.sup_cap_datapath],['sup_cap_energy2400', f"0x{self.sup_cap_energy2400:X}", self.sup_cap_energy2400],['sup_cap_energy_sub1g', f"0x{self.sup_cap_energy_sub1g:X}", self.sup_cap_energy_sub1g],['sup_cap_calibration', f"0x{self.sup_cap_calibration:X}", self.sup_cap_calibration],['sup_cap_pwr_mgmt', f"0x{self.sup_cap_pwr_mgmt:X}", self.sup_cap_pwr_mgmt],['sup_cap_sensors', f"0x{self.sup_cap_sensors:X}", self.sup_cap_sensors],['sup_cap_custom', f"0x{self.sup_cap_custom:X}", self.sup_cap_custom],['cfg_hash', f"0x{self.cfg_hash:X}", self.cfg_hash]], tablefmt="texttable")
119
119
 
120
120
  def __eq__(self, other):
121
121
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -184,7 +184,7 @@ class ModuleCalibrationV12():
184
184
  self.set(raw)
185
185
 
186
186
  def __repr__(self) -> str:
187
- return "\n==> Packet module_calibration_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['interval', f"0x{self.interval:X} ({self.interval})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"]], tablefmt="texttable")
187
+ return "\n==> Packet module_calibration_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['interval', f"0x{self.interval:X}", self.interval],['output_power', f"0x{self.output_power:X}", self.output_power],['pattern', f"0x{self.pattern:X}", self.pattern]], tablefmt="texttable")
188
188
 
189
189
  def __eq__(self, other):
190
190
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -232,7 +232,7 @@ class ModuleCalibrationV11():
232
232
  self.set(raw)
233
233
 
234
234
  def __repr__(self) -> str:
235
- return "\n==> Packet module_calibration_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['interval', f"0x{self.interval:X} ({self.interval})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"]], tablefmt="texttable")
235
+ return "\n==> Packet module_calibration_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['interval', f"0x{self.interval:X}", self.interval],['output_power', f"0x{self.output_power:X}", self.output_power],['pattern', f"0x{self.pattern:X}", self.pattern]], tablefmt="texttable")
236
236
 
237
237
  def __eq__(self, other):
238
238
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -283,7 +283,7 @@ class ModuleDatapathV12():
283
283
  self.set(raw)
284
284
 
285
285
  def __repr__(self) -> str:
286
- return "\n==> Packet module_datapath_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['rssi_threshold', f"0x{self.rssi_threshold:X} ({self.rssi_threshold})"],['pacer_interval', f"0x{self.pacer_interval:X} ({self.pacer_interval})"],['pkt_filter', f"0x{self.pkt_filter:X} ({self.pkt_filter})"],['tx_repetition', f"0x{self.tx_repetition:X} ({self.tx_repetition})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"],['rx_channel', f"0x{self.rx_channel:X} ({self.rx_channel})"]], tablefmt="texttable")
286
+ return "\n==> Packet module_datapath_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['rssi_threshold', f"0x{self.rssi_threshold:X}", self.rssi_threshold],['pacer_interval', f"0x{self.pacer_interval:X}", self.pacer_interval],['pkt_filter', f"0x{self.pkt_filter:X}", self.pkt_filter],['tx_repetition', f"0x{self.tx_repetition:X}", self.tx_repetition],['output_power', f"0x{self.output_power:X}", self.output_power],['pattern', f"0x{self.pattern:X}", self.pattern],['rx_channel', f"0x{self.rx_channel:X}", self.rx_channel]], tablefmt="texttable")
287
287
 
288
288
  def __eq__(self, other):
289
289
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -344,7 +344,7 @@ class ModuleDatapathV11():
344
344
  self.set(raw)
345
345
 
346
346
  def __repr__(self) -> str:
347
- return "\n==> Packet module_datapath_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['adaptive_pacer', f"0x{self.adaptive_pacer:X} ({self.adaptive_pacer})"],['unified_echo_pkt', f"0x{self.unified_echo_pkt:X} ({self.unified_echo_pkt})"],['pacer_interval', f"0x{self.pacer_interval:X} ({self.pacer_interval})"],['pkt_filter', f"0x{self.pkt_filter:X} ({self.pkt_filter})"],['tx_repetition', f"0x{self.tx_repetition:X} ({self.tx_repetition})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"],['rx_channel', f"0x{self.rx_channel:X} ({self.rx_channel})"]], tablefmt="texttable")
347
+ return "\n==> Packet module_datapath_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['adaptive_pacer', f"0x{self.adaptive_pacer:X}", self.adaptive_pacer],['unified_echo_pkt', f"0x{self.unified_echo_pkt:X}", self.unified_echo_pkt],['pacer_interval', f"0x{self.pacer_interval:X}", self.pacer_interval],['pkt_filter', f"0x{self.pkt_filter:X}", self.pkt_filter],['tx_repetition', f"0x{self.tx_repetition:X}", self.tx_repetition],['output_power', f"0x{self.output_power:X}", self.output_power],['pattern', f"0x{self.pattern:X}", self.pattern],['rx_channel', f"0x{self.rx_channel:X}", self.rx_channel]], tablefmt="texttable")
348
348
 
349
349
  def __eq__(self, other):
350
350
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -406,7 +406,7 @@ class ModuleEnergy2400V12():
406
406
  self.set(raw)
407
407
 
408
408
  def __repr__(self) -> str:
409
- return "\n==> Packet module_energy_2400_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['duty_cycle', f"0x{self.duty_cycle:X} ({self.duty_cycle})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X} ({self.signal_indicator_cycle})"],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X} ({self.signal_indicator_rep})"]], tablefmt="texttable")
409
+ return "\n==> Packet module_energy_2400_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['duty_cycle', f"0x{self.duty_cycle:X}", self.duty_cycle],['pattern', f"0x{self.pattern:X}", self.pattern],['output_power', f"0x{self.output_power:X}", self.output_power],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X}", self.signal_indicator_cycle],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X}", self.signal_indicator_rep]], tablefmt="texttable")
410
410
 
411
411
  def __eq__(self, other):
412
412
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -460,7 +460,7 @@ class ModuleEnergy2400V11():
460
460
  self.set(raw)
461
461
 
462
462
  def __repr__(self) -> str:
463
- return "\n==> Packet module_energy_2400_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['duty_cycle', f"0x{self.duty_cycle:X} ({self.duty_cycle})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X} ({self.signal_indicator_cycle})"],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X} ({self.signal_indicator_rep})"]], tablefmt="texttable")
463
+ return "\n==> Packet module_energy_2400_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['duty_cycle', f"0x{self.duty_cycle:X}", self.duty_cycle],['pattern', f"0x{self.pattern:X}", self.pattern],['output_power', f"0x{self.output_power:X}", self.output_power],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X}", self.signal_indicator_cycle],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X}", self.signal_indicator_rep]], tablefmt="texttable")
464
464
 
465
465
  def __eq__(self, other):
466
466
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -513,7 +513,7 @@ class ModuleEnergySub1GV12():
513
513
  self.set(raw)
514
514
 
515
515
  def __repr__(self) -> str:
516
- return "\n==> Packet module_energy_sub1g_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['pattern', f"0x{self.pattern:X} ({self.pattern})"],['duty_cycle', f"0x{self.duty_cycle:X} ({self.duty_cycle})"],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X} ({self.signal_indicator_cycle})"],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X} ({self.signal_indicator_rep})"]], tablefmt="texttable")
516
+ return "\n==> Packet module_energy_sub1g_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['pattern', f"0x{self.pattern:X}", self.pattern],['duty_cycle', f"0x{self.duty_cycle:X}", self.duty_cycle],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X}", self.signal_indicator_cycle],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X}", self.signal_indicator_rep]], tablefmt="texttable")
517
517
 
518
518
  def __eq__(self, other):
519
519
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -568,7 +568,7 @@ class ModuleEnergySub1GV11():
568
568
  self.set(raw)
569
569
 
570
570
  def __repr__(self) -> str:
571
- return "\n==> Packet module_energy_sub1g_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['output_power', f"0x{self.output_power:X} ({self.output_power})"],['sub1g_energy_pattern', f"0x{self.sub1g_energy_pattern:X} ({self.sub1g_energy_pattern})"],['cycle', f"0x{self.cycle:X} ({self.cycle})"],['duty_cycle', f"0x{self.duty_cycle:X} ({self.duty_cycle})"],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X} ({self.signal_indicator_cycle})"],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X} ({self.signal_indicator_rep})"]], tablefmt="texttable")
571
+ return "\n==> Packet module_energy_sub1g_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['output_power', f"0x{self.output_power:X}", self.output_power],['sub1g_energy_pattern', f"0x{self.sub1g_energy_pattern:X}", self.sub1g_energy_pattern],['cycle', f"0x{self.cycle:X}", self.cycle],['duty_cycle', f"0x{self.duty_cycle:X}", self.duty_cycle],['signal_indicator_cycle', f"0x{self.signal_indicator_cycle:X}", self.signal_indicator_cycle],['signal_indicator_rep', f"0x{self.signal_indicator_rep:X}", self.signal_indicator_rep]], tablefmt="texttable")
572
572
 
573
573
  def __eq__(self, other):
574
574
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -627,7 +627,7 @@ class ModulePwrMgmtV12():
627
627
  self.set(raw)
628
628
 
629
629
  def __repr__(self) -> str:
630
- return "\n==> Packet module_pwr_mgmt_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['static_leds_on', f"0x{self.static_leds_on:X} ({self.static_leds_on})"],['static_keep_alive_period', f"0x{self.static_keep_alive_period:X} ({self.static_keep_alive_period})"],['static_keep_alive_scan', f"0x{self.static_keep_alive_scan:X} ({self.static_keep_alive_scan})"],['static_on_duration', f"0x{self.static_on_duration:X} ({self.static_on_duration})"],['static_sleep_duration', f"0x{self.static_sleep_duration:X} ({self.static_sleep_duration})"],['dynamic_leds_on', f"0x{self.dynamic_leds_on:X} ({self.dynamic_leds_on})"],['dynamic_keep_alive_period', f"0x{self.dynamic_keep_alive_period:X} ({self.dynamic_keep_alive_period})"],['dynamic_keep_alive_scan', f"0x{self.dynamic_keep_alive_scan:X} ({self.dynamic_keep_alive_scan})"],['dynamic_on_duration', f"0x{self.dynamic_on_duration:X} ({self.dynamic_on_duration})"],['dynamic_sleep_duration', f"0x{self.dynamic_sleep_duration:X} ({self.dynamic_sleep_duration})"]], tablefmt="texttable")
630
+ return "\n==> Packet module_pwr_mgmt_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['static_leds_on', f"0x{self.static_leds_on:X}", self.static_leds_on],['static_keep_alive_period', f"0x{self.static_keep_alive_period:X}", self.static_keep_alive_period],['static_keep_alive_scan', f"0x{self.static_keep_alive_scan:X}", self.static_keep_alive_scan],['static_on_duration', f"0x{self.static_on_duration:X}", self.static_on_duration],['static_sleep_duration', f"0x{self.static_sleep_duration:X}", self.static_sleep_duration],['dynamic_leds_on', f"0x{self.dynamic_leds_on:X}", self.dynamic_leds_on],['dynamic_keep_alive_period', f"0x{self.dynamic_keep_alive_period:X}", self.dynamic_keep_alive_period],['dynamic_keep_alive_scan', f"0x{self.dynamic_keep_alive_scan:X}", self.dynamic_keep_alive_scan],['dynamic_on_duration', f"0x{self.dynamic_on_duration:X}", self.dynamic_on_duration],['dynamic_sleep_duration', f"0x{self.dynamic_sleep_duration:X}", self.dynamic_sleep_duration]], tablefmt="texttable")
631
631
 
632
632
  def __eq__(self, other):
633
633
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -694,7 +694,7 @@ class ModulePwrMgmtV11():
694
694
  self.set(raw)
695
695
 
696
696
  def __repr__(self) -> str:
697
- return "\n==> Packet module_pwr_mgmt_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['static_leds_on', f"0x{self.static_leds_on:X} ({self.static_leds_on})"],['static_keep_alive_period', f"0x{self.static_keep_alive_period:X} ({self.static_keep_alive_period})"],['static_keep_alive_scan', f"0x{self.static_keep_alive_scan:X} ({self.static_keep_alive_scan})"],['static_on_duration', f"0x{self.static_on_duration:X} ({self.static_on_duration})"],['static_sleep_duration', f"0x{self.static_sleep_duration:X} ({self.static_sleep_duration})"],['dynamic_leds_on', f"0x{self.dynamic_leds_on:X} ({self.dynamic_leds_on})"],['dynamic_keep_alive_period', f"0x{self.dynamic_keep_alive_period:X} ({self.dynamic_keep_alive_period})"],['dynamic_keep_alive_scan', f"0x{self.dynamic_keep_alive_scan:X} ({self.dynamic_keep_alive_scan})"],['dynamic_on_duration', f"0x{self.dynamic_on_duration:X} ({self.dynamic_on_duration})"],['dynamic_sleep_duration', f"0x{self.dynamic_sleep_duration:X} ({self.dynamic_sleep_duration})"]], tablefmt="texttable")
697
+ return "\n==> Packet module_pwr_mgmt_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['static_leds_on', f"0x{self.static_leds_on:X}", self.static_leds_on],['static_keep_alive_period', f"0x{self.static_keep_alive_period:X}", self.static_keep_alive_period],['static_keep_alive_scan', f"0x{self.static_keep_alive_scan:X}", self.static_keep_alive_scan],['static_on_duration', f"0x{self.static_on_duration:X}", self.static_on_duration],['static_sleep_duration', f"0x{self.static_sleep_duration:X}", self.static_sleep_duration],['dynamic_leds_on', f"0x{self.dynamic_leds_on:X}", self.dynamic_leds_on],['dynamic_keep_alive_period', f"0x{self.dynamic_keep_alive_period:X}", self.dynamic_keep_alive_period],['dynamic_keep_alive_scan', f"0x{self.dynamic_keep_alive_scan:X}", self.dynamic_keep_alive_scan],['dynamic_on_duration', f"0x{self.dynamic_on_duration:X}", self.dynamic_on_duration],['dynamic_sleep_duration', f"0x{self.dynamic_sleep_duration:X}", self.dynamic_sleep_duration]], tablefmt="texttable")
698
698
 
699
699
  def __eq__(self, other):
700
700
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -755,7 +755,7 @@ class ModuleExtSensorsV12():
755
755
  self.set(raw)
756
756
 
757
757
  def __repr__(self) -> str:
758
- return "\n==> Packet module_ext_sensors_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['sensor0', f"0x{self.sensor0:X} ({self.sensor0})"],['sensor1', f"0x{self.sensor1:X} ({self.sensor1})"],['rssi_threshold', f"0x{self.rssi_threshold:X} ({self.rssi_threshold})"],['sub1g_rssi_threshold', f"0x{self.sub1g_rssi_threshold:X} ({self.sub1g_rssi_threshold})"]], tablefmt="texttable")
758
+ return "\n==> Packet module_ext_sensors_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['sensor0', f"0x{self.sensor0:X}", self.sensor0],['sensor1', f"0x{self.sensor1:X}", self.sensor1],['rssi_threshold', f"0x{self.rssi_threshold:X}", self.rssi_threshold],['sub1g_rssi_threshold', f"0x{self.sub1g_rssi_threshold:X}", self.sub1g_rssi_threshold]], tablefmt="texttable")
759
759
 
760
760
  def __eq__(self, other):
761
761
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -802,7 +802,7 @@ class ModuleExtSensorsV11():
802
802
  self.set(raw)
803
803
 
804
804
  def __repr__(self) -> str:
805
- return "\n==> Packet module_ext_sensors_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['sensor0', f"0x{self.sensor0:X} ({self.sensor0})"],['sensor1', f"0x{self.sensor1:X} ({self.sensor1})"]], tablefmt="texttable")
805
+ return "\n==> Packet module_ext_sensors_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['sensor0', f"0x{self.sensor0:X}", self.sensor0],['sensor1', f"0x{self.sensor1:X}", self.sensor1]], tablefmt="texttable")
806
806
 
807
807
  def __eq__(self, other):
808
808
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -846,7 +846,7 @@ class ModuleCustomV12():
846
846
  self.set(raw)
847
847
 
848
848
  def __repr__(self) -> str:
849
- return "\n==> Packet module_custom_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['motion_sensitivity_threshold', f"0x{self.motion_sensitivity_threshold:X} ({self.motion_sensitivity_threshold})"],['s2d_transition_time', f"0x{self.s2d_transition_time:X} ({self.s2d_transition_time})"],['d2s_transition_time', f"0x{self.d2s_transition_time:X} ({self.d2s_transition_time})"]], tablefmt="texttable")
849
+ return "\n==> Packet module_custom_v12 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['motion_sensitivity_threshold', f"0x{self.motion_sensitivity_threshold:X}", self.motion_sensitivity_threshold],['s2d_transition_time', f"0x{self.s2d_transition_time:X}", self.s2d_transition_time],['d2s_transition_time', f"0x{self.d2s_transition_time:X}", self.d2s_transition_time]], tablefmt="texttable")
850
850
 
851
851
  def __eq__(self, other):
852
852
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):
@@ -892,7 +892,7 @@ class ModuleCustomV11():
892
892
  self.set(raw)
893
893
 
894
894
  def __repr__(self) -> str:
895
- return "\n==> Packet module_custom_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X} ({self.module_type})"],['msg_type', f"0x{self.msg_type:X} ({self.msg_type})"],['api_version', f"0x{self.api_version:X} ({self.api_version})"],['seq_id', f"0x{self.seq_id:X} ({self.seq_id})"],['brg_mac', f"0x{self.brg_mac:X} ({self.brg_mac})"],['state_threshold', f"0x{self.state_threshold:X} ({self.state_threshold})"],['wake_up_duration', f"0x{self.wake_up_duration:X} ({self.wake_up_duration})"],['sleep_duration', f"0x{self.sleep_duration:X} ({self.sleep_duration})"]], tablefmt="texttable")
895
+ return "\n==> Packet module_custom_v11 <==\n" + tabulate.tabulate([['module_type', f"0x{self.module_type:X}", self.module_type],['msg_type', f"0x{self.msg_type:X}", self.msg_type],['api_version', f"0x{self.api_version:X}", self.api_version],['seq_id', f"0x{self.seq_id:X}", self.seq_id],['brg_mac', f"0x{self.brg_mac:X}", self.brg_mac],['state_threshold', f"0x{self.state_threshold:X}", self.state_threshold],['wake_up_duration', f"0x{self.wake_up_duration:X}", self.wake_up_duration],['sleep_duration', f"0x{self.sleep_duration:X}", self.sleep_duration]], tablefmt="texttable")
896
896
 
897
897
  def __eq__(self, other):
898
898
  if other and set(other.__dict__.keys()) == set(self.__dict__.keys()):