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.
- {brg_certificate → certificate}/ag/wlt_cmd_if.html +10 -4
- {brg_certificate → certificate}/ag/wlt_types_ag.py +1878 -519
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2brg_ota.json +69 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2gw_hb.json +109 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +45 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/calibration.json +96 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/custom.json +99 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/datapath.json +241 -13
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/energy2400.json +120 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/energySub1g.json +96 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/externalSensor.json +135 -6
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/interface.json +157 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/powerManagement.json +205 -0
- brg_certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json → certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +27 -11
- certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +175 -0
- certificate/ag/wlt_types_ag_jsons/unified_sensor_pkt.json +65 -0
- certificate/cert_common.py +1459 -0
- certificate/cert_config.py +455 -0
- {brg_certificate → certificate}/cert_data_sim.py +131 -46
- {brg_certificate → certificate}/cert_defines.py +120 -128
- {brg_certificate → certificate}/cert_gw_sim.py +151 -49
- {brg_certificate → certificate}/cert_mqtt.py +164 -59
- {brg_certificate → certificate}/cert_prints.py +34 -33
- {brg_certificate → certificate}/cert_protobuf.py +15 -6
- {brg_certificate → certificate}/cert_results.py +205 -48
- certificate/cert_utils.py +622 -0
- certificate/certificate.py +198 -0
- certificate/certificate_cli.py +79 -0
- certificate/certificate_eth_test_list.txt +74 -0
- certificate/certificate_sanity_test_list.txt +65 -0
- certificate/certificate_test_list.txt +75 -0
- {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.json +2 -2
- {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.py +7 -6
- certificate/tests/calibration/output_power_test/output_power_test.json +22 -0
- certificate/tests/calibration/output_power_test/output_power_test.py +39 -0
- {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.json +1 -1
- {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.py +20 -15
- certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.json +14 -0
- certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.py +140 -0
- certificate/tests/cloud_connectivity/acl_test/acl_test.json +14 -0
- certificate/tests/cloud_connectivity/acl_test/acl_test.py +98 -0
- certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.json +18 -0
- certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.py +39 -0
- certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.json +18 -0
- certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.py +215 -0
- certificate/tests/cloud_connectivity/connection_test/connection_test.json +17 -0
- certificate/tests/cloud_connectivity/connection_test/connection_test.py +74 -0
- certificate/tests/cloud_connectivity/downlink_test/downlink_test.json +20 -0
- certificate/tests/cloud_connectivity/downlink_test/downlink_test.py +204 -0
- certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.json +16 -0
- certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.py +98 -0
- certificate/tests/cloud_connectivity/reboot_test/reboot_test.json +17 -0
- certificate/tests/cloud_connectivity/reboot_test/reboot_test.py +57 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test.json +19 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test.py +384 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test_cli.py +90 -0
- certificate/tests/cloud_connectivity/stress_test/stress_test.json +16 -0
- certificate/tests/cloud_connectivity/stress_test/stress_test.py +97 -0
- certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.json +24 -0
- certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.py +93 -0
- certificate/tests/cloud_connectivity/uplink_test/uplink_test.json +19 -0
- certificate/tests/cloud_connectivity/uplink_test/uplink_test.py +161 -0
- {brg_certificate → certificate}/tests/datapath/aging_test/aging_test.json +1 -1
- certificate/tests/datapath/aging_test/aging_test.py +138 -0
- certificate/tests/datapath/event_ble5_test/event_ble5_test.json +16 -0
- certificate/tests/datapath/event_ble5_test/event_ble5_test.py +95 -0
- certificate/tests/datapath/event_test/event_test.json +16 -0
- certificate/tests/datapath/event_test/event_test.py +85 -0
- {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.py +10 -8
- certificate/tests/datapath/output_power_test/output_power_test.json +22 -0
- {brg_certificate → certificate}/tests/datapath/output_power_test/output_power_test.py +17 -6
- {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +10 -8
- {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.py +9 -7
- {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.json +2 -2
- {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.py +18 -6
- certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.json +19 -0
- certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.py +61 -0
- {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +11 -10
- certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.json +18 -0
- certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.py +83 -0
- {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +10 -9
- {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.py +10 -9
- {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +9 -8
- 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
- certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.py +77 -0
- {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.json +2 -2
- {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.py +7 -6
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +7 -7
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +112 -72
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +7 -7
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +112 -72
- {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.json +3 -3
- {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.py +12 -11
- {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.json +3 -3
- {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.py +12 -11
- {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.json +2 -1
- {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.py +14 -13
- certificate/tests/edge_mgmt/action_blink_test/action_blink_test.json +14 -0
- certificate/tests/edge_mgmt/action_blink_test/action_blink_test.py +24 -0
- certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.json +14 -0
- certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.py +43 -0
- certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.json +14 -0
- certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.py +42 -0
- certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.json +14 -0
- certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.py +44 -0
- certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.json +15 -0
- certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.py +42 -0
- certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.json +14 -0
- certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.py +49 -0
- certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.json +14 -0
- certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.py +102 -0
- certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.json +14 -0
- certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.py +41 -0
- {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +2 -2
- {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.py +22 -11
- {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.json +1 -1
- {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.py +7 -6
- certificate/tests/energy2400/output_power_test/output_power_test.json +22 -0
- {brg_certificate → certificate}/tests/energy2400/output_power_test/output_power_test.py +17 -6
- {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.json +1 -1
- {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.py +7 -6
- certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +25 -0
- certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +378 -0
- 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
- 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
- certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +23 -0
- certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +350 -0
- {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +1 -1
- {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +7 -6
- {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.json +1 -1
- {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.py +7 -6
- {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +1 -1
- {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +10 -10
- {brg_certificate → certificate}/tests/sensors/ext_sensor_test/ext_sensor_test.json +4 -4
- certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +455 -0
- certificate/wlt_types.py +122 -0
- {gw_certificate → common}/api_if/202/status.json +6 -0
- {gw_certificate → common}/api_if/203/status.json +6 -0
- {gw_certificate → common}/api_if/204/status.json +6 -0
- common/api_if/206/data.json +85 -0
- common/api_if/206/status.json +69 -0
- common/api_if/api_validation.py +85 -0
- common/web/templates/generator.html +148 -0
- common/web/templates/index.html +20 -0
- common/web/templates/menu.html +54 -0
- common/web/templates/parser.html +53 -0
- {brg_certificate/ag → common/web/templates}/wlt_types.html +1216 -191
- common/web/web_utils.py +377 -0
- {brg_certificate → common}/wltPb_pb2.py +14 -12
- {gw_certificate/common → common}/wltPb_pb2.pyi +16 -2
- gui_certificate/gui_certificate_cli.py +14 -0
- gui_certificate/server.py +1062 -0
- gui_certificate/templates/cert_run.html +1207 -0
- wiliot_certificate-4.5.0a1.dist-info/METADATA +110 -0
- wiliot_certificate-4.5.0a1.dist-info/RECORD +182 -0
- {wiliot_certificate-4.4.3.dist-info → wiliot_certificate-4.5.0a1.dist-info}/WHEEL +1 -1
- wiliot_certificate-4.5.0a1.dist-info/entry_points.txt +5 -0
- wiliot_certificate-4.5.0a1.dist-info/top_level.txt +3 -0
- brg_certificate/ag/energous_v0_defines.py +0 -925
- brg_certificate/ag/energous_v1_defines.py +0 -931
- brg_certificate/ag/energous_v2_defines.py +0 -925
- brg_certificate/ag/energous_v3_defines.py +0 -925
- brg_certificate/ag/energous_v4_defines.py +0 -925
- brg_certificate/ag/fanstel_lan_v0_defines.py +0 -925
- brg_certificate/ag/fanstel_lte_v0_defines.py +0 -925
- brg_certificate/ag/fanstel_wifi_v0_defines.py +0 -925
- brg_certificate/ag/minew_lte_v0_defines.py +0 -925
- brg_certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +0 -61
- brg_certificate/brg_certificate.py +0 -225
- brg_certificate/brg_certificate_cli.py +0 -63
- brg_certificate/cert_common.py +0 -923
- brg_certificate/cert_config.py +0 -402
- brg_certificate/cert_utils.py +0 -362
- brg_certificate/certificate_bcc_sanity_test_list.txt +0 -40
- brg_certificate/certificate_bcc_test_list.txt +0 -48
- brg_certificate/certificate_sanity_test_list.txt +0 -43
- brg_certificate/certificate_test_list.txt +0 -53
- brg_certificate/config/eclipse.json +0 -10
- brg_certificate/config/hivemq.json +0 -10
- brg_certificate/config/mosquitto.json +0 -10
- brg_certificate/config/mosquitto.md +0 -95
- brg_certificate/config/wiliot-dev.json +0 -10
- brg_certificate/restore_brg.py +0 -61
- brg_certificate/tests/calibration/output_power_test/output_power_test.json +0 -16
- brg_certificate/tests/calibration/output_power_test/output_power_test.py +0 -28
- brg_certificate/tests/datapath/aging_test/aging_test.py +0 -143
- brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +0 -16
- brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +0 -73
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +0 -17
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +0 -118
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +0 -14
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +0 -396
- brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +0 -20
- brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +0 -94
- brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +0 -19
- brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.py +0 -87
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +0 -17
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +0 -223
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +0 -17
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +0 -128
- brg_certificate/tests/energy2400/output_power_test/output_power_test.json +0 -16
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +0 -321
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +0 -141
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +0 -276
- brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +0 -20
- brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +0 -390
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +0 -16
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +0 -28
- brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +0 -305
- brg_certificate/wltPb_pb2.pyi +0 -234
- brg_certificate/wlt_types.py +0 -113
- gw_certificate/ag/ut_defines.py +0 -364
- gw_certificate/ag/wlt_types.py +0 -85
- gw_certificate/ag/wlt_types_ag.py +0 -5310
- gw_certificate/ag/wlt_types_data.py +0 -64
- gw_certificate/api/extended_api.py +0 -23
- gw_certificate/api_if/200/data.json +0 -106
- gw_certificate/api_if/200/status.json +0 -47
- gw_certificate/api_if/201/data.json +0 -98
- gw_certificate/api_if/201/status.json +0 -53
- gw_certificate/api_if/205/logs.json +0 -12
- gw_certificate/api_if/api_validation.py +0 -38
- gw_certificate/api_if/gw_capabilities.py +0 -54
- gw_certificate/cert_results.py +0 -145
- gw_certificate/common/analysis_data_bricks.py +0 -60
- gw_certificate/common/debug.py +0 -42
- gw_certificate/common/serialization_formatter.py +0 -93
- gw_certificate/common/utils.py +0 -8
- gw_certificate/common/utils_defines.py +0 -15
- gw_certificate/common/wltPb_pb2.py +0 -84
- gw_certificate/gw_certificate.py +0 -154
- gw_certificate/gw_certificate_cli.py +0 -87
- gw_certificate/interface/4.4.93_app.zip +0 -0
- gw_certificate/interface/4.4.93_sd_bl_app.zip +0 -0
- gw_certificate/interface/ble_simulator.py +0 -61
- gw_certificate/interface/ble_sniffer.py +0 -189
- gw_certificate/interface/flash_fw.py +0 -90
- gw_certificate/interface/if_defines.py +0 -36
- gw_certificate/interface/mqtt.py +0 -563
- gw_certificate/interface/nrfutil-linux +0 -0
- gw_certificate/interface/nrfutil-mac +0 -0
- gw_certificate/interface/nrfutil.exe +0 -0
- gw_certificate/interface/pkt_generator.py +0 -594
- gw_certificate/interface/uart_if.py +0 -236
- gw_certificate/interface/uart_ports.py +0 -20
- gw_certificate/templates/results.html +0 -241
- gw_certificate/templates/stage.html +0 -22
- gw_certificate/templates/table.html +0 -6
- gw_certificate/templates/test.html +0 -38
- gw_certificate/tests/__init__.py +0 -10
- gw_certificate/tests/actions.py +0 -289
- gw_certificate/tests/bad_crc_to_PER_quantization.csv +0 -51
- gw_certificate/tests/connection.py +0 -188
- gw_certificate/tests/downlink.py +0 -172
- gw_certificate/tests/generic.py +0 -238
- gw_certificate/tests/registration.py +0 -340
- gw_certificate/tests/static/__init__.py +0 -0
- gw_certificate/tests/static/connection_defines.py +0 -9
- gw_certificate/tests/static/downlink_defines.py +0 -9
- gw_certificate/tests/static/generated_packet_table.py +0 -195
- gw_certificate/tests/static/packet_table.csv +0 -10067
- gw_certificate/tests/static/references.py +0 -5
- gw_certificate/tests/static/uplink_defines.py +0 -14
- gw_certificate/tests/throughput.py +0 -240
- gw_certificate/tests/uplink.py +0 -853
- wiliot_certificate-4.4.3.dist-info/METADATA +0 -211
- wiliot_certificate-4.4.3.dist-info/RECORD +0 -210
- wiliot_certificate-4.4.3.dist-info/entry_points.txt +0 -3
- wiliot_certificate-4.4.3.dist-info/top_level.txt +0 -3
- {brg_certificate → certificate}/__init__.py +0 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/signal_indicator_data.json +0 -0
- {gw_certificate → common}/api_if/202/data.json +0 -0
- {gw_certificate/api_if/200 → common/api_if/202}/logs.json +0 -0
- {gw_certificate → common}/api_if/203/data.json +0 -0
- {gw_certificate/api_if/201 → common/api_if/203}/logs.json +0 -0
- {gw_certificate → common}/api_if/204/data.json +0 -0
- {gw_certificate/api_if/202 → common/api_if/204}/logs.json +0 -0
- {gw_certificate → common}/api_if/205/data.json +0 -0
- {gw_certificate/api_if/203 → common/api_if/205}/logs.json +0 -0
- {gw_certificate → common}/api_if/205/status.json +0 -0
- {gw_certificate/api_if/204 → common/api_if/206}/logs.json +0 -0
- {gw_certificate → common/api_if}/__init__.py +0 -0
- {gw_certificate/api_if → gui_certificate}/__init__.py +0 -0
- {wiliot_certificate-4.4.3.dist-info → wiliot_certificate-4.5.0a1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
2
|
+
"name": "Rx Channel Hopping",
|
|
3
3
|
"module": "Datapath",
|
|
4
|
-
"purpose": "Test
|
|
4
|
+
"purpose": "Test functionality of Rx Channel Hopping configuration",
|
|
5
5
|
"documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Configuration",
|
|
6
6
|
"initialCondition": "Bridge configured to defaults",
|
|
7
7
|
"procedure": ["Test prolog",
|
|
8
8
|
"For each supported value - configure the BRG and verify the value",
|
|
9
|
+
"Scan Packets on channel 37 and channel 10 and check if packets in both channels were received when configured to hopping, and if packet count is the same",
|
|
9
10
|
"Test epilog and revert to defaults"],
|
|
10
11
|
"expectedOutcome": "All values configured successfully",
|
|
11
12
|
"mandatory": 0,
|
|
12
13
|
"multiBridgeTest": 0,
|
|
13
14
|
"gwOnlyTest": 0,
|
|
14
|
-
"
|
|
15
|
-
"allSupportedValues": [
|
|
15
|
+
"dataSimOnlyTest": 0,
|
|
16
|
+
"allSupportedValues": []
|
|
16
17
|
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from certificate.cert_prints import *
|
|
2
|
+
from certificate.cert_defines import *
|
|
3
|
+
from certificate.wlt_types import *
|
|
4
|
+
import certificate.cert_mqtt as cert_mqtt
|
|
5
|
+
import certificate.cert_data_sim as cert_data_sim
|
|
6
|
+
import certificate.cert_common as cert_common
|
|
7
|
+
import certificate.cert_config as cert_config
|
|
8
|
+
|
|
9
|
+
SCAN_TIME_PER_CH = 60 # in seconds
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def run(test):
|
|
13
|
+
|
|
14
|
+
fields = [BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
|
|
15
|
+
|
|
16
|
+
datapath_module = test.active_brg.datapath
|
|
17
|
+
pacer_interval = 1
|
|
18
|
+
|
|
19
|
+
test = cert_common.test_prolog(test)
|
|
20
|
+
if test.rc == TEST_FAILED:
|
|
21
|
+
return cert_common.test_epilog(test)
|
|
22
|
+
|
|
23
|
+
if not (test.data == DATA_SIMULATION):
|
|
24
|
+
test.rc = TEST_FAILED
|
|
25
|
+
warning_txt = "WARNING: This test should be ran with data simulator!"
|
|
26
|
+
utPrint(warning_txt, "RED")
|
|
27
|
+
test.add_reason(warning_txt)
|
|
28
|
+
return cert_common.test_epilog(test)
|
|
29
|
+
|
|
30
|
+
test = cert_config.brg_configure(test, fields=fields, values=[ag.RX_CHANNEL_HOPPING_37_10, pacer_interval], module=datapath_module)[0]
|
|
31
|
+
|
|
32
|
+
num_of_pixels = 5
|
|
33
|
+
# For bridge with cloud connectivity, each ble5 sent as is and not split to 2 packets
|
|
34
|
+
split_pkt_mult = 1 if test.dut_is_combo() else 2
|
|
35
|
+
|
|
36
|
+
# Simulating tag packets on channel 37
|
|
37
|
+
utPrint("Scanning packets on channel 37", "BLUE")
|
|
38
|
+
pixel_sim_thread_ch_37 = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=1,
|
|
39
|
+
delay=0, pkt_types=[0])
|
|
40
|
+
pixel_sim_thread_ch_37.start()
|
|
41
|
+
df_37 = cert_common.data_scan(test, scan_time=SCAN_TIME_PER_CH, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
|
|
42
|
+
pixel_sim_thread_ch_37.stop()
|
|
43
|
+
time.sleep(5)
|
|
44
|
+
|
|
45
|
+
# Simulating packets on ch 10
|
|
46
|
+
utPrint("Scanning packets on channel 10", "BLUE")
|
|
47
|
+
pixel_sim_thread_ch_10 = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=1,
|
|
48
|
+
delay=0, pkt_types=[2],
|
|
49
|
+
pixels_type=GEN3_EXTENDED)
|
|
50
|
+
pixel_sim_thread_ch_10.start()
|
|
51
|
+
df_10 = cert_common.data_scan(test, scan_time=SCAN_TIME_PER_CH, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
|
|
52
|
+
pixel_sim_thread_ch_10.stop()
|
|
53
|
+
|
|
54
|
+
cert_mqtt.dump_pkts(test, log=test.module_name)
|
|
55
|
+
|
|
56
|
+
# Analyze packet count per channel
|
|
57
|
+
df_37_counts = df_37['tag_id'].value_counts().rename('pkt_count').reset_index().rename(columns={'index': 'tag_id'})
|
|
58
|
+
df_10_counts = df_10['tag_id'].value_counts().rename('pkt_count').reset_index().rename(columns={'index': 'tag_id'})
|
|
59
|
+
print(df_37_counts)
|
|
60
|
+
print(f"Channel 37 avg pkt count: {df_37_counts['pkt_count'].mean()}")
|
|
61
|
+
print(df_10_counts)
|
|
62
|
+
print(f"Channel 10 avg pkt count: {df_10_counts['pkt_count'].mean()}")
|
|
63
|
+
|
|
64
|
+
if not (0.9 * df_10_counts['pkt_count'].mean() <=
|
|
65
|
+
split_pkt_mult * df_37_counts['pkt_count'].mean() <=
|
|
66
|
+
1.1 * df_10_counts['pkt_count'].mean()):
|
|
67
|
+
print("Packet count on both channels doesn't match!")
|
|
68
|
+
test.rc = TEST_FAILED
|
|
69
|
+
test.add_reason("Packet count on both channels doesn't match!")
|
|
70
|
+
else:
|
|
71
|
+
utPrint("Packet count match!")
|
|
72
|
+
|
|
73
|
+
# param epilog
|
|
74
|
+
cert_mqtt.generate_log_file(test, test.module_name)
|
|
75
|
+
field_functionality_pass_fail_print(test, fields[0], value=test.module_name)
|
|
76
|
+
|
|
77
|
+
return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
|
|
@@ -11,6 +11,6 @@
|
|
|
11
11
|
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
|
-
"
|
|
15
|
-
"allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "
|
|
14
|
+
"dataSimOnlyTest": 0,
|
|
15
|
+
"allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "RX_CHANNEL_10_500K", "RX_CHANNEL_HOPPING_37_10"]
|
|
16
16
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
from
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
from certificate.cert_prints import *
|
|
2
|
+
from certificate.cert_defines import *
|
|
3
|
+
from certificate.wlt_types import *
|
|
4
|
+
import certificate.cert_mqtt as cert_mqtt
|
|
5
|
+
import certificate.cert_common as cert_common
|
|
6
|
+
import certificate.cert_config as cert_config
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
def is_primary_channel(channel):
|
|
@@ -32,7 +33,7 @@ def run(test):
|
|
|
32
33
|
test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=datapath_module)[0]
|
|
33
34
|
# param epilog
|
|
34
35
|
ble5_state = not is_primary_channel(param.value)
|
|
35
|
-
generate_log_file(test, param.name)
|
|
36
|
+
cert_mqtt.generate_log_file(test, param.name)
|
|
36
37
|
field_functionality_pass_fail_print(test, fields[0], value=param.name)
|
|
37
38
|
test.set_phase_rc(param.name, test.rc)
|
|
38
39
|
test.add_phase_reason(param.name, test.reason)
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
"documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
|
|
6
6
|
"initialCondition": "Bridge set to default configuration",
|
|
7
7
|
"procedure": [
|
|
8
|
-
"mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds.
|
|
9
|
-
"diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure the
|
|
10
|
-
"min_value - Minimum value: Generate packets with a 0.1-second delay. Verify
|
|
11
|
-
"max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify
|
|
12
|
-
"diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3
|
|
8
|
+
"mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds. Verify that the correct TBC values are received and that the first packet's TBC is zero.",
|
|
9
|
+
"diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure that the TBC value remains unchanged.",
|
|
10
|
+
"min_value - Minimum value: Generate packets with a 0.1-second delay. Verify the correct TBC value is received.",
|
|
11
|
+
"max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify the correct TBC value is received.",
|
|
12
|
+
"diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 seconds. Verify that the TBC value changes according to the delay, within the expected tolerance."
|
|
13
13
|
],
|
|
14
|
-
"expectedOutcome": "
|
|
14
|
+
"expectedOutcome": "Ensure that the received TBC values match the expected ones, within a tolerance of up to ten percent.",
|
|
15
15
|
"mandatory": 1,
|
|
16
16
|
"multiBridgeTest": 0,
|
|
17
17
|
"gwOnlyTest": 0,
|
|
18
|
-
"
|
|
18
|
+
"dataSimOnlyTest": 1,
|
|
19
19
|
"allSupportedValues": ["mid_values", "diff_pacer", "min_value", "max_value", "diff_rate"]
|
|
20
20
|
}
|
|
@@ -1,31 +1,35 @@
|
|
|
1
1
|
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
2
|
+
from certificate.cert_prints import *
|
|
3
|
+
from certificate.cert_defines import *
|
|
4
|
+
from certificate.wlt_types import *
|
|
5
|
+
import certificate.cert_mqtt as cert_mqtt
|
|
6
|
+
import certificate.cert_common as cert_common
|
|
7
|
+
import certificate.cert_config as cert_config
|
|
8
|
+
import certificate.cert_data_sim as cert_data_sim
|
|
8
9
|
import time
|
|
9
10
|
|
|
10
11
|
|
|
12
|
+
# input address value and return the TBC value in s
|
|
13
|
+
def address2tbc(address):
|
|
14
|
+
if address == 0:
|
|
15
|
+
return 0
|
|
16
|
+
result = 64 / (256 - address)
|
|
17
|
+
return result
|
|
18
|
+
|
|
19
|
+
|
|
11
20
|
def cal_scan_time(test, delay, pacer_interval):
|
|
12
|
-
# Calculate the scan time to ensure
|
|
21
|
+
# Calculate the scan time to ensure enough packets are captured in data scan
|
|
13
22
|
# define the num of packet that you want to get
|
|
14
|
-
|
|
23
|
+
num_of_cycles = 5
|
|
15
24
|
delay = delay / 1000
|
|
16
25
|
if delay < pacer_interval:
|
|
17
|
-
scan_time = (pacer_interval *
|
|
18
|
-
|
|
19
|
-
scan_time = (delay *
|
|
20
|
-
# verify scan time value
|
|
21
|
-
if scan_time < (2 * pacer_interval):
|
|
22
|
-
print("scan time is too low in related to pacer interval")
|
|
23
|
-
test.rc == TEST_FAILED
|
|
24
|
-
test.add_reason("scan time is too low in related to pacer interval value")
|
|
26
|
+
scan_time = (pacer_interval * num_of_cycles) + 10
|
|
27
|
+
else: # pacer_interval <= delay
|
|
28
|
+
scan_time = (delay * num_of_cycles) + 10
|
|
25
29
|
return test, scan_time
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
def scan_and_compare(test, pacer_interval, delay,
|
|
32
|
+
def scan_and_compare(test, pacer_interval, delay, expected_TBC_value):
|
|
29
33
|
|
|
30
34
|
pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=1, duplicates=3, delay=delay, pkt_types=[0], pixels_type=GEN3)
|
|
31
35
|
pixel_sim_thread.start()
|
|
@@ -33,7 +37,7 @@ def scan_and_compare(test, pacer_interval, delay, expected_address_value):
|
|
|
33
37
|
df = cert_common.data_scan(test, scan_time=scan_time, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
|
|
34
38
|
pixel_sim_thread.stop()
|
|
35
39
|
cert_mqtt.dump_pkts(test, log="rx_rate")
|
|
36
|
-
cert_common.display_data(df, tbc=True,
|
|
40
|
+
cert_common.display_data(df, tbc=True, rssi=True, dir=test.dir)
|
|
37
41
|
# check if the dataframe is empty or not
|
|
38
42
|
if len(df) <= 1:
|
|
39
43
|
print("Df is empty")
|
|
@@ -53,19 +57,26 @@ def scan_and_compare(test, pacer_interval, delay, expected_address_value):
|
|
|
53
57
|
if mid_index == 0:
|
|
54
58
|
mid_index = 1
|
|
55
59
|
print(f"Length of df: {length}, mid index: {mid_index}")
|
|
56
|
-
print
|
|
57
|
-
|
|
60
|
+
# TODO: Logging print
|
|
61
|
+
# print(f"Df:\n {df}")
|
|
62
|
+
df[TBC] = df[TBC].apply(address2tbc)
|
|
63
|
+
print(f"Df after invert tbc:\n {df}")
|
|
58
64
|
tag = df.iloc[0][TAG_ID]
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
|
|
66
|
+
actual_tbc_value = round(df.iloc[mid_index:][TBC].mean(), 3)
|
|
67
|
+
expected_tbc_value = round(expected_TBC_value, 3)
|
|
68
|
+
threshold = 0.1 * expected_tbc_value
|
|
69
|
+
print(f"Actual TBC value: {actual_tbc_value}")
|
|
70
|
+
print(f"Expected TBC value: {expected_tbc_value} range: [{expected_tbc_value - threshold}, {expected_tbc_value + threshold}]")
|
|
71
|
+
|
|
72
|
+
# Validate the received value is in 10% of the expected value
|
|
73
|
+
if not ((expected_tbc_value - threshold) <= actual_tbc_value <= (expected_tbc_value + threshold)):
|
|
67
74
|
test.rc = TEST_FAILED
|
|
68
|
-
test.add_reason(f"
|
|
75
|
+
test.add_reason(f"TBC value for tag {tag}: got: {actual_tbc_value}, expected: {expected_tbc_value}!\n")
|
|
76
|
+
if actual_tbc_value < expected_tbc_value:
|
|
77
|
+
print(f" Actual TBC value: {actual_tbc_value} is less than expected TBC value: {expected_tbc_value}!\n")
|
|
78
|
+
if actual_tbc_value > (expected_tbc_value + threshold):
|
|
79
|
+
print(f" TBC value is higher than expected TBC value: {expected_tbc_value}!\n")
|
|
69
80
|
if test.params == [mid_values] and delay == 1000:
|
|
70
81
|
# checking 0 value in the first packet.
|
|
71
82
|
first_row = df.iloc[0][TBC]
|
|
@@ -76,20 +87,22 @@ def scan_and_compare(test, pacer_interval, delay, expected_address_value):
|
|
|
76
87
|
return test
|
|
77
88
|
|
|
78
89
|
|
|
79
|
-
def mid_values(test,
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
def mid_values(test, _):
|
|
91
|
+
# Mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds.
|
|
92
|
+
# Verify that the correct TBC values are received and that the first packet's TBC is zero.
|
|
93
|
+
|
|
94
|
+
SANITY_DELAY_VALUES = [1000, 5000, 500]
|
|
95
|
+
for delay in SANITY_DELAY_VALUES:
|
|
84
96
|
pacer_interval = 1
|
|
85
|
-
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay,
|
|
86
|
-
time.sleep(
|
|
97
|
+
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=(delay / 1000))
|
|
98
|
+
time.sleep(10)
|
|
87
99
|
return test
|
|
88
100
|
|
|
89
101
|
|
|
90
102
|
def diff_pacer(test, datapath_module):
|
|
91
|
-
#
|
|
92
|
-
|
|
103
|
+
# Diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60.
|
|
104
|
+
# Ensure that the TBC value remains unchanged.
|
|
105
|
+
|
|
93
106
|
PACER_INTERVAL_LIST = [30, 60]
|
|
94
107
|
delay = 1000 # 1 sec
|
|
95
108
|
for pacer_interval in PACER_INTERVAL_LIST:
|
|
@@ -97,41 +110,46 @@ def diff_pacer(test, datapath_module):
|
|
|
97
110
|
if test.rc == TEST_FAILED:
|
|
98
111
|
test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
|
|
99
112
|
return test
|
|
100
|
-
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay,
|
|
101
|
-
time.sleep(
|
|
113
|
+
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=(delay / 1000))
|
|
114
|
+
time.sleep(10)
|
|
102
115
|
return test
|
|
103
116
|
|
|
104
117
|
|
|
105
118
|
def min_value(test, datapath_module):
|
|
106
|
-
#
|
|
107
|
-
|
|
119
|
+
# Min_value - Minimum value: Generate packets with a 0.1-second delay.
|
|
120
|
+
# Verify the correct TBC value is received.
|
|
121
|
+
# NOTE: The min TBC value is 0.25 seconds.
|
|
122
|
+
MIN_ADDRESS_VALUE = 0.25
|
|
108
123
|
pacer_interval = 1
|
|
109
124
|
test = cert_config.brg_configure(test, fields=[BRG_PACER_INTERVAL], values=[pacer_interval], module=datapath_module)[0]
|
|
110
125
|
if test.rc == TEST_FAILED:
|
|
111
126
|
test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
|
|
112
127
|
return test
|
|
113
128
|
delay = 100
|
|
114
|
-
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay,
|
|
115
|
-
time.sleep(
|
|
129
|
+
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=MIN_ADDRESS_VALUE)
|
|
130
|
+
time.sleep(10)
|
|
116
131
|
return test
|
|
117
132
|
|
|
118
133
|
|
|
119
134
|
def max_value(test, datapath_module):
|
|
120
|
-
#
|
|
121
|
-
|
|
135
|
+
# Max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80.
|
|
136
|
+
# Verify the correct TBC value is received.
|
|
137
|
+
# NOTE: The max TBC value is 64 seconds.
|
|
138
|
+
MAX_TBC_VALUE = 64
|
|
122
139
|
pacer_interval = 80
|
|
123
140
|
test = cert_config.brg_configure(test, fields=[BRG_PACER_INTERVAL], values=[pacer_interval], module=datapath_module)[0]
|
|
124
141
|
if test.rc == TEST_FAILED:
|
|
125
142
|
test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
|
|
126
143
|
return test
|
|
127
144
|
delay = 70000
|
|
128
|
-
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay,
|
|
129
|
-
time.sleep(
|
|
145
|
+
test = scan_and_compare(test, pacer_interval=pacer_interval, delay=delay, expected_TBC_value=MAX_TBC_VALUE)
|
|
146
|
+
time.sleep(10)
|
|
130
147
|
return test
|
|
131
148
|
|
|
132
149
|
|
|
133
150
|
def diff_rate(test, datapath_module):
|
|
134
|
-
#
|
|
151
|
+
# Diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 seconds.
|
|
152
|
+
# Verify that the TBC value changes according to the delay, within the expected tolerance.
|
|
135
153
|
pacer_interval = 1
|
|
136
154
|
delay_duration = [[500, 5], [3000, 3]]
|
|
137
155
|
first_delay = delay_duration[0][0]
|
|
@@ -148,41 +166,63 @@ def diff_rate(test, datapath_module):
|
|
|
148
166
|
print(f"sleep for {time_sleep} sec\n")
|
|
149
167
|
time.sleep(time_sleep)
|
|
150
168
|
pixel_sim_thread.delay = second_delay
|
|
151
|
-
scan_time = sum(duration for _, duration in delay_duration) +
|
|
169
|
+
scan_time = sum(duration for _, duration in delay_duration) + 40
|
|
152
170
|
df = cert_common.data_scan(test, scan_time=scan_time, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
|
|
153
171
|
pixel_sim_thread.stop()
|
|
154
172
|
df = df[[TAG_ID, TBC]]
|
|
155
|
-
|
|
156
|
-
|
|
173
|
+
# TODO: logging print
|
|
174
|
+
# print(f"df:\n {df}")
|
|
175
|
+
df[TBC] = df[TBC].apply(address2tbc)
|
|
157
176
|
if len(df) <= 1:
|
|
158
177
|
test.add_reason("Df is empty")
|
|
159
178
|
test.rc = TEST_FAILED
|
|
160
179
|
return test
|
|
161
180
|
else:
|
|
162
181
|
print(f"Df:\n {df}")
|
|
163
|
-
# NOTE: all next rows are specific for the values: delay 0.5 and 3
|
|
164
|
-
# check if the last tbc value is as we expected for delay 3 sec we need to get 235 according to LUT
|
|
182
|
+
# NOTE: all next rows are specific for the values: delay 0.5 and 3 sec.
|
|
183
|
+
# check if the last tbc value is as we expected for delay 3 sec we need to get 235 according to LUT table
|
|
165
184
|
# we define tolerance of +-10 units for address value
|
|
166
|
-
|
|
185
|
+
expected_second_tbc_value = second_delay / 1000
|
|
186
|
+
print(f"expected second tbc value: {expected_second_tbc_value}")
|
|
167
187
|
# Most important check, verify it converges to the correct value
|
|
168
|
-
|
|
188
|
+
average_of_last_5_tbc_value = round(df.iloc[-5:][TBC].mean(), 3)
|
|
189
|
+
print(f"last tbc value: {average_of_last_5_tbc_value}")
|
|
190
|
+
THRESHOLD_MIN = 0.95
|
|
191
|
+
# NOTE: assume that there is time difference between SIM and GW
|
|
192
|
+
if test.tester.is_simulated():
|
|
193
|
+
THRESHOLD_MAX = 1.1
|
|
194
|
+
else:
|
|
195
|
+
THRESHOLD_MAX = 1.15
|
|
196
|
+
min_expected_tbc_value = round(expected_second_tbc_value * THRESHOLD_MIN, 3)
|
|
197
|
+
max_expected_tbc_value = round(expected_second_tbc_value * THRESHOLD_MAX, 3)
|
|
198
|
+
|
|
199
|
+
print(f"TBC value: {average_of_last_5_tbc_value}")
|
|
200
|
+
print(f"expected value [{min_expected_tbc_value},{max_expected_tbc_value}] according to delay:{second_delay / 1000} sec")
|
|
201
|
+
if not (min_expected_tbc_value <= average_of_last_5_tbc_value <= max_expected_tbc_value):
|
|
169
202
|
test.rc = TEST_FAILED
|
|
170
|
-
test.add_reason(f"TBC value: {
|
|
171
|
-
print(f"TBC value: {df.iloc[-1][TBC]}, expected value [232,236] according to delay:{second_delay / 1000} sec")
|
|
203
|
+
test.add_reason(f"TBC value: {average_of_last_5_tbc_value}, expected value {expected_second_tbc_value}")
|
|
172
204
|
return test
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
for
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
205
|
+
|
|
206
|
+
# # TODO: we skip that part until we decide if there is a need to check the gap between the first and second tbc values
|
|
207
|
+
# # for loop that skip the first row and check if somewhere there is the expected gap 0.5 to 3 sec
|
|
208
|
+
# result = False
|
|
209
|
+
# expected_first_tbc_value = first_delay / 1000
|
|
210
|
+
# print(f"expected first tbc value: {expected_first_tbc_value}")
|
|
211
|
+
# expected_first_gap_tbc_value = round(address_2_tbc(200), 3)
|
|
212
|
+
# print(f"expected second tbc value: {expected_first_gap_tbc_value}")
|
|
213
|
+
# for i in range(0, length - 1):
|
|
214
|
+
# prev = round(df.iloc[i][TBC],3)
|
|
215
|
+
# current = round(df.iloc[i + 1][TBC],3)
|
|
216
|
+
# print(f"prev: {prev}, current: {current}")
|
|
217
|
+
# if expected_first_tbc_value*0.9 <= prev <= expected_first_tbc_value*1.1:
|
|
218
|
+
# if expected_first_gap_tbc_value*0.9 <= current <= expected_first_gap_tbc_value*1.1:
|
|
219
|
+
# print(f"Found the gap between {prev} and {current}")
|
|
220
|
+
# print(f"row {i}: {df.iloc[i][TBC]}")
|
|
221
|
+
# print(f"row {i + 1}: {df.iloc[i + 1][TBC]}")
|
|
222
|
+
# result = True
|
|
223
|
+
# if not result:
|
|
224
|
+
# test.rc = TEST_FAILED
|
|
225
|
+
# test.add_reason("Didn't find the correct gap according to alpha filter calculation")
|
|
186
226
|
return test
|
|
187
227
|
|
|
188
228
|
|
|
@@ -208,7 +248,7 @@ def run(test):
|
|
|
208
248
|
for param in test.params:
|
|
209
249
|
functionality_run_print(param.name)
|
|
210
250
|
test = RX_RATE_TEST_MAP[param.value](test, datapath_module)
|
|
211
|
-
generate_log_file(test, param.name)
|
|
251
|
+
cert_mqtt.generate_log_file(test, param.name)
|
|
212
252
|
field_functionality_pass_fail_print(test, param.name)
|
|
213
253
|
test.set_phase_rc(param.name, test.rc)
|
|
214
254
|
test.add_phase_reason(param.name, test.reason)
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
"documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
|
|
6
6
|
"initialCondition": "Bridge set to default configuration",
|
|
7
7
|
"procedure": [
|
|
8
|
-
"mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds.
|
|
9
|
-
"diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure the
|
|
10
|
-
"min_value - Minimum value: Generate packets with a 0.1-second delay. Verify
|
|
11
|
-
"max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify
|
|
12
|
-
"diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3
|
|
8
|
+
"mid_values - Sanity check: Generate packets with delays of 1, 5, and 0.5 seconds. Verify that the correct TBC values are received and that the first packet's TBC is zero.",
|
|
9
|
+
"diff_pacer - Generate packets with a 1-second delay and pacer intervals of 30 and 60. Ensure that the TBC value remains unchanged.",
|
|
10
|
+
"min_value - Minimum value: Generate packets with a 0.1-second delay. Verify the correct TBC value is received.",
|
|
11
|
+
"max_value - Maximum value: Generate packets with a 70-second delay and a pacer interval of 80. Verify the correct TBC value is received.",
|
|
12
|
+
"diff_rate - alpha filter: Generate packets with delay 0.5 second and change to 3 seconds. Verify that the TBC value changes according to the delay, within the expected tolerance."
|
|
13
13
|
],
|
|
14
|
-
"expectedOutcome": "
|
|
14
|
+
"expectedOutcome": "Ensure that the received TBC values match the expected ones, within a tolerance of up to ten percent.",
|
|
15
15
|
"mandatory": 1,
|
|
16
16
|
"multiBridgeTest": 0,
|
|
17
17
|
"gwOnlyTest": 0,
|
|
18
|
-
"
|
|
18
|
+
"dataSimOnlyTest": 1,
|
|
19
19
|
"allSupportedValues": ["mid_values", "diff_pacer", "min_value", "max_value", "diff_rate"]
|
|
20
20
|
}
|