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
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"gatewayId": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"maxLength": 36
|
|
7
|
+
},
|
|
8
|
+
"gatewayType": {
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"timestamp": {
|
|
12
|
+
"type": "number"
|
|
13
|
+
},
|
|
14
|
+
"packets": {
|
|
15
|
+
"description": "Unified Packet",
|
|
16
|
+
"type": "array",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"aliasBridgeId": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"timestamp": {
|
|
24
|
+
"type": "number"
|
|
25
|
+
},
|
|
26
|
+
"sequenceId": {
|
|
27
|
+
"type": "number"
|
|
28
|
+
},
|
|
29
|
+
"rssi": {
|
|
30
|
+
"type": "number"
|
|
31
|
+
},
|
|
32
|
+
"payload": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"if": {
|
|
37
|
+
"description": "unified SI packet + Sensor packet",
|
|
38
|
+
"properties":{
|
|
39
|
+
"payload": {
|
|
40
|
+
"oneOf": [
|
|
41
|
+
{ "pattern": "[1][eE][1][6][cC][6][fF][cC][0][0][0][0][37bBfF][fF]" },
|
|
42
|
+
{ "pattern": "[1][eE][1][6][cC][6][fF][cC][0][0][0][0][eE][eE]" },
|
|
43
|
+
{ "pattern": "[1][eE][1][6][9][0][fF][cC]" },
|
|
44
|
+
{ "pattern": "[1][eE][1][6][cC][6][fF][cC][0][0][0][0][eE][bB]" }
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"then": {
|
|
50
|
+
"required": ["aliasBridgeId", "timestamp", "sequenceId", "payload"]
|
|
51
|
+
},
|
|
52
|
+
"else": {
|
|
53
|
+
"required": ["timestamp", "sequenceId", "payload"]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"required": [
|
|
59
|
+
"gatewayId",
|
|
60
|
+
"gatewayType",
|
|
61
|
+
"timestamp",
|
|
62
|
+
"packets"
|
|
63
|
+
],
|
|
64
|
+
"dependentSchemas": {
|
|
65
|
+
"location": {
|
|
66
|
+
"properties": {
|
|
67
|
+
"location": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"lat": {
|
|
71
|
+
"type": "number"
|
|
72
|
+
},
|
|
73
|
+
"lng": {
|
|
74
|
+
"type": "number"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"required": [
|
|
78
|
+
"lat",
|
|
79
|
+
"lng"
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"patternProperties": {
|
|
4
|
+
"^gatewayI[dD]$": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"maxLength": 36
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"properties": {
|
|
10
|
+
"gatewayType": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"gatewayConf": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"apiVersion": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": ["206"]
|
|
19
|
+
},
|
|
20
|
+
"bleAddress": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"gatewayVersion": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"interfaceChipSwVersion": {
|
|
27
|
+
"type": "string"
|
|
28
|
+
},
|
|
29
|
+
"bleChipSwVersion": {
|
|
30
|
+
"type": "string"
|
|
31
|
+
},
|
|
32
|
+
"additional": {
|
|
33
|
+
"additionalProperties": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": ["apiVersion", "bleAddress"],
|
|
37
|
+
"oneOf":[
|
|
38
|
+
{"required": ["gatewayVersion"]},
|
|
39
|
+
{"required": ["interfaceChipSwVersion", "bleChipSwVersion"]}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"tagMetadataCouplingSupported": {
|
|
43
|
+
"type": "boolean"
|
|
44
|
+
},
|
|
45
|
+
"downlinkSupported": {
|
|
46
|
+
"type": "boolean"
|
|
47
|
+
},
|
|
48
|
+
"bridgeOtaUpgradeSupported": {
|
|
49
|
+
"type": "boolean"
|
|
50
|
+
},
|
|
51
|
+
"fwUpgradeSupported": {
|
|
52
|
+
"type": "boolean"
|
|
53
|
+
},
|
|
54
|
+
"geoLocationSupport": {
|
|
55
|
+
"type": "boolean"
|
|
56
|
+
},
|
|
57
|
+
"gatewayInfo": {
|
|
58
|
+
"type":"object",
|
|
59
|
+
"additionalProperties":true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"oneOf":[
|
|
63
|
+
{"required": ["gatewayId", "gatewayType", "gatewayConf", "tagMetadataCouplingSupported", "downlinkSupported", "bridgeOtaUpgradeSupported", "fwUpgradeSupported"]},
|
|
64
|
+
{"required": ["gatewayID", "gatewayType", "gatewayConf", "tagMetadataCouplingSupported", "downlinkSupported", "bridgeOtaUpgradeSupported", "fwUpgradeSupported"]}
|
|
65
|
+
],
|
|
66
|
+
"additionalProperties": false
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from jsonschema import Draft202012Validator
|
|
3
|
+
import pkg_resources
|
|
4
|
+
from enum import Enum
|
|
5
|
+
|
|
6
|
+
from certificate.cert_prints import *
|
|
7
|
+
from certificate.cert_defines import GW_LOGS
|
|
8
|
+
import certificate.cert_utils as cert_utils
|
|
9
|
+
import certificate.cert_mqtt as cert_mqtt
|
|
10
|
+
|
|
11
|
+
class MESSAGE_TYPES(Enum):
|
|
12
|
+
STATUS = "status"
|
|
13
|
+
DATA = "data"
|
|
14
|
+
LOGS = "logs"
|
|
15
|
+
|
|
16
|
+
API_VALIDATION = "API Validation"
|
|
17
|
+
|
|
18
|
+
def api_validation(test):
|
|
19
|
+
phase_run_print(API_VALIDATION)
|
|
20
|
+
api_validation_phase = cert_utils.Phase(API_VALIDATION, rc=TEST_PASSED)
|
|
21
|
+
|
|
22
|
+
if test.dut.protobuf:
|
|
23
|
+
utPrint("API validation is skipped for protobuf messages", "WARNING")
|
|
24
|
+
api_validation_phase.rc = TEST_SKIPPED
|
|
25
|
+
api_validation_phase.reason = "API validation is skipped for protobuf messages"
|
|
26
|
+
test.phases[-1:-1] = [api_validation_phase]
|
|
27
|
+
return test
|
|
28
|
+
else:
|
|
29
|
+
def validate_message(message: dict, msg_type=MESSAGE_TYPES.DATA.value) -> tuple[bool, str]:
|
|
30
|
+
json_path = pkg_resources.resource_filename(__name__, f"{test.dut.gw_api_version}/{msg_type}.json")
|
|
31
|
+
with open(json_path) as f:
|
|
32
|
+
relevant_schema = json.load(f)
|
|
33
|
+
validator = Draft202012Validator(relevant_schema)
|
|
34
|
+
valid = validator.is_valid(message)
|
|
35
|
+
errors = [e for e in validator.iter_errors(message)]
|
|
36
|
+
return (valid, errors)
|
|
37
|
+
|
|
38
|
+
utPrint(f"Validating all messages in the test according to API version {test.dut.gw_api_version} validation schema", "BLUE")
|
|
39
|
+
report = []
|
|
40
|
+
phase_passed = True
|
|
41
|
+
for msg_type in MESSAGE_TYPES:
|
|
42
|
+
if msg_type.value == MESSAGE_TYPES.STATUS.value:
|
|
43
|
+
all_msgs = [msg.body for msg in test.get_mqttc_by_target(DUT)._userdata[PKTS].status if GW_LOGS not in msg.body]
|
|
44
|
+
elif msg_type.value == MESSAGE_TYPES.LOGS.value:
|
|
45
|
+
all_msgs = [msg.body for msg in test.get_mqttc_by_target(DUT)._userdata[PKTS].status if GW_LOGS in msg.body]
|
|
46
|
+
else:
|
|
47
|
+
all_msgs = [msg.body for msg in test.get_mqttc_by_target(DUT)._userdata[PKTS].data]
|
|
48
|
+
|
|
49
|
+
utPrint(f"Validating {msg_type.value} messages", "BLUE")
|
|
50
|
+
message_type_passed = True
|
|
51
|
+
total_num_of_errors = 0
|
|
52
|
+
error_report = []
|
|
53
|
+
for idx, message_body in enumerate(all_msgs):
|
|
54
|
+
if msg_type.value == MESSAGE_TYPES.DATA.value and len(message_body[PACKETS]) == 0:
|
|
55
|
+
continue
|
|
56
|
+
validation = validate_message(message_body, msg_type.value)
|
|
57
|
+
errors = []
|
|
58
|
+
for e in validation[1]:
|
|
59
|
+
if e.message not in errors:
|
|
60
|
+
errors.append(e.message)
|
|
61
|
+
if not validation[0]:
|
|
62
|
+
phase_passed = False
|
|
63
|
+
message_type_passed = False
|
|
64
|
+
total_num_of_errors += len(errors)
|
|
65
|
+
error_report.append(f'The errors in message (idx={idx}, json timestamp={message_body.get(TIMESTAMP)}) Errors:')
|
|
66
|
+
for idx, e in enumerate(errors):
|
|
67
|
+
error_report.append(f'Error number {idx}:\n {e}')
|
|
68
|
+
report.append("\n")
|
|
69
|
+
report.append(f'Summary for {msg_type.value} messages')
|
|
70
|
+
report.append({'valid': {message_type_passed}, 'num of errors': total_num_of_errors})
|
|
71
|
+
report.append('******************************************************\n')
|
|
72
|
+
report.extend(error_report)
|
|
73
|
+
utPrint("\nAPI validation errors:", "BLUE")
|
|
74
|
+
for line in report:
|
|
75
|
+
print(line)
|
|
76
|
+
report_path = os.path.join(ARTIFACTS_DIR, test.dir, 'api_validation_report.txt')
|
|
77
|
+
with open(report_path, 'w') as f:
|
|
78
|
+
for line in report:
|
|
79
|
+
f.write(str(line) + '\n')
|
|
80
|
+
if not phase_passed:
|
|
81
|
+
api_validation_phase.rc = TEST_FAILED
|
|
82
|
+
api_validation_phase.reason = "API (JSON strcture) is invalid"
|
|
83
|
+
field_functionality_pass_fail_print(api_validation_phase, API_VALIDATION)
|
|
84
|
+
test.phases[-1:-1] = [api_validation_phase]
|
|
85
|
+
return test
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<!-- Required meta tags -->
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
<title>{{ app }}</title>
|
|
8
|
+
<link rel="icon" href="https://www.wiliot.com/favicon.ico" type="image/x-icon" />
|
|
9
|
+
<!-- Bootstrap CSS -->
|
|
10
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
|
11
|
+
<style>
|
|
12
|
+
#card-body {
|
|
13
|
+
height: 550px;
|
|
14
|
+
overflow:auto;
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<div class="container">
|
|
20
|
+
{% include 'menu.html' %}
|
|
21
|
+
<h1 style="color:#00AB83">{{ title }}</h1>
|
|
22
|
+
<hr>
|
|
23
|
+
<form class="form-horizontal" id="form" action="">
|
|
24
|
+
<div id="builder_form">
|
|
25
|
+
{% for n in pkt_types_list %}
|
|
26
|
+
<div class="form-check form-check-inline">
|
|
27
|
+
<input class="form-check-input" type="radio" name="radios" value="{{ n }}" onclick="show();">
|
|
28
|
+
<label class="form-check-label" for="{{ n }}">{{ n }}</label>
|
|
29
|
+
</div>
|
|
30
|
+
{% endfor %}
|
|
31
|
+
{% for n,p in pkt_types.items() %}
|
|
32
|
+
<div id="{{ n }}_form">
|
|
33
|
+
<hr>
|
|
34
|
+
{% for k,v in p.__dict__.items() %}
|
|
35
|
+
<div class="row">
|
|
36
|
+
<label for="{{ n }}_{{ k }}" class="col-sm-2">{{ k }}:</label>
|
|
37
|
+
{% if k == 'brg_mac' or k == 'pkt_size' or k == 'ad_type' or k == 'uuid_msb' or k == 'uuid_lsb' or k == 'group_id' %}
|
|
38
|
+
<input type="text" class="col-sm-4" name="{{ n }}_{{ k }}" value="{{ '0x'+('%0x' % v).upper() }}">
|
|
39
|
+
{% else %}
|
|
40
|
+
<input type="text" class="col-sm-4" name="{{ n }}_{{ k }}" value="{{ v }}">
|
|
41
|
+
{% endif %}
|
|
42
|
+
</div>
|
|
43
|
+
{% endfor %}
|
|
44
|
+
</div>
|
|
45
|
+
{% endfor %}
|
|
46
|
+
</div>
|
|
47
|
+
<hr>
|
|
48
|
+
<div class="row">
|
|
49
|
+
<button type="submit" class="btn btn-primary col-sm-12">Build Packet</button>
|
|
50
|
+
</div>
|
|
51
|
+
</form>
|
|
52
|
+
<br>
|
|
53
|
+
<br>
|
|
54
|
+
<div class="card">
|
|
55
|
+
<div class="card-header">
|
|
56
|
+
Output
|
|
57
|
+
</div>
|
|
58
|
+
<div class="card-body" id="card-body">
|
|
59
|
+
<samp>{{ output | safe }}</samp>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<br>
|
|
63
|
+
<br>
|
|
64
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
|
|
65
|
+
<script>
|
|
66
|
+
function show()
|
|
67
|
+
{
|
|
68
|
+
const form = document.getElementById('form');
|
|
69
|
+
const group_id_brg2gw = {{ GROUP_ID_BRG2GW }};
|
|
70
|
+
const group_id_gw2brg = {{ GROUP_ID_GW2BRG }};
|
|
71
|
+
const group_id_side_info_sensor = {{ GROUP_ID_SIDE_INFO_SENSOR }};
|
|
72
|
+
const group_id_side_info = {{ GROUP_ID_SIDE_INFO }};
|
|
73
|
+
const group_id_signal_indicator = {{ GROUP_ID_SIGNAL_INDICATOR }};
|
|
74
|
+
const group_id_unified_v0 = {{ GROUP_ID_UNIFIED_PKT_V0 }};
|
|
75
|
+
const group_id_unified_v1 = {{ GROUP_ID_UNIFIED_PKT_V1 }};
|
|
76
|
+
const group_id_unified_v2 = {{ GROUP_ID_UNIFIED_PKT_V2 }};
|
|
77
|
+
const group_id_unified_ext_v0 = {{ GROUP_ID_BLE5_EXTENDED_V0 }};
|
|
78
|
+
const group_id_unified_ext_v1 = {{ GROUP_ID_BLE5_EXTENDED_V1 }};
|
|
79
|
+
var radios = document.getElementsByName("radios");
|
|
80
|
+
var pktTypes = {{ pkt_types_list | tojson | safe }};
|
|
81
|
+
console.log(pktTypes)
|
|
82
|
+
var forms = [];
|
|
83
|
+
|
|
84
|
+
for (var i = 0; i < pktTypes.length; i++) {
|
|
85
|
+
forms[i] = document.getElementById(pktTypes[i]+"_form");
|
|
86
|
+
if (pktTypes[i] != "Hdr"){
|
|
87
|
+
forms[i].style.display = 'none';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
for(var i = 0; i < radios.length; i++) {
|
|
92
|
+
radios[i].onclick = function() {
|
|
93
|
+
for(var j = 0; j < radios.length; j++) {
|
|
94
|
+
forms[j].style.display = 'none';
|
|
95
|
+
}
|
|
96
|
+
if (this.value == "DataHdr"){
|
|
97
|
+
document.getElementById("Hdr_form").style.display = 'none';
|
|
98
|
+
}
|
|
99
|
+
else{
|
|
100
|
+
document.getElementById("Hdr_form").style.display = 'block';
|
|
101
|
+
var default_value = 0;
|
|
102
|
+
if (this.value.includes("Brg2Gw")){
|
|
103
|
+
default_value = group_id_brg2gw;
|
|
104
|
+
}
|
|
105
|
+
else if (this.value.includes("Gw2Brg")){
|
|
106
|
+
default_value = group_id_gw2brg;
|
|
107
|
+
}
|
|
108
|
+
else if (this.value.includes("SignalIndicator")){
|
|
109
|
+
default_value = group_id_signal_indicator;
|
|
110
|
+
}
|
|
111
|
+
else if (this.value.includes("SideInfoSensor")){
|
|
112
|
+
default_value = group_id_side_info_sensor;
|
|
113
|
+
}
|
|
114
|
+
else if (this.value.includes("SideInfo")){
|
|
115
|
+
default_value = group_id_side_info;
|
|
116
|
+
}
|
|
117
|
+
else if (this.value.includes("Unified")){
|
|
118
|
+
if (this.value.includes("V0")){
|
|
119
|
+
if (this.value.includes("Ext")){
|
|
120
|
+
default_value = group_id_unified_ext_v0
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
default_value = group_id_unified_v0
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if (this.value.includes("V1")){
|
|
127
|
+
if (this.value.includes("Ext")){
|
|
128
|
+
default_value = group_id_unified_ext_v1
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
default_value = group_id_unified_v1
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else if (this.value.includes("V2")){
|
|
135
|
+
default_value = group_id_unified_v2
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
form.elements.Hdr_group_id.value = "0x" + default_value.toString(16).toUpperCase();
|
|
139
|
+
}
|
|
140
|
+
console.log(this.value)
|
|
141
|
+
document.getElementById(this.value + "_form").style.display = 'block';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
show();
|
|
146
|
+
</script>
|
|
147
|
+
</body>
|
|
148
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html>
|
|
4
|
+
<head>
|
|
5
|
+
<!-- Required meta tags -->
|
|
6
|
+
<meta charset="utf-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<title>{{ app }}</title>
|
|
9
|
+
<link rel="icon" href="https://www.wiliot.com/favicon.ico" type="image/x-icon" />
|
|
10
|
+
<!-- Bootstrap CSS -->
|
|
11
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div class="container">
|
|
15
|
+
{% include 'menu.html' %}
|
|
16
|
+
<h1 style="color:#00AB83">{{ title }}</h1>
|
|
17
|
+
<hr>
|
|
18
|
+
{% include wlt_types_html %}
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<nav class="navbar navbar-light navbar-expand-lg" style="background-color: #E5F7F3;">
|
|
2
|
+
<div class="container-fluid">
|
|
3
|
+
<ul class="navbar-nav">
|
|
4
|
+
<li class="nav-item">
|
|
5
|
+
<a class="nav-link active" aria-current="page" href="/">
|
|
6
|
+
<img src="https://www.wiliot.com/src/img/svg/logo.svg" width="100" height="40" alt="Wiliot logo">
|
|
7
|
+
</a>
|
|
8
|
+
</li>
|
|
9
|
+
{% if app == FDM %}
|
|
10
|
+
<li>
|
|
11
|
+
<a class="nav-link" href="/">
|
|
12
|
+
<button class="btn btn-outline-success my-5 my-sm-0">DEV MODE</button>
|
|
13
|
+
</a>
|
|
14
|
+
</li>
|
|
15
|
+
<li>
|
|
16
|
+
<a class="nav-link" href="/gw">
|
|
17
|
+
<button class="btn btn-outline-success my-5 my-sm-0">GW</button>
|
|
18
|
+
</a>
|
|
19
|
+
</li>
|
|
20
|
+
<li>
|
|
21
|
+
<a class="nav-link" href="/brg">
|
|
22
|
+
<button class="btn btn-outline-success my-5 my-sm-0">BRG</button>
|
|
23
|
+
</a>
|
|
24
|
+
</li>
|
|
25
|
+
<li>
|
|
26
|
+
<a class="nav-link" href="/tag2brg">
|
|
27
|
+
<button class="btn btn-outline-success my-5 my-sm-0">Tag to Bridge Packet</button>
|
|
28
|
+
</a>
|
|
29
|
+
</li>
|
|
30
|
+
{% elif app == CERT_WEB %}
|
|
31
|
+
<li>
|
|
32
|
+
<a class="nav-link" href="/">
|
|
33
|
+
<button class="btn btn-outline-success my-5 my-sm-0">RUN CERTIFICATE</button>
|
|
34
|
+
</a>
|
|
35
|
+
</li>
|
|
36
|
+
{% endif %}
|
|
37
|
+
<li>
|
|
38
|
+
<a class="nav-link" href="/parser">
|
|
39
|
+
<button class="btn btn-outline-success my-5 my-sm-0">PACKET PARSER</button>
|
|
40
|
+
</a>
|
|
41
|
+
</li>
|
|
42
|
+
<li>
|
|
43
|
+
<a class="nav-link" href="/generator">
|
|
44
|
+
<button class="btn btn-outline-success my-5 my-sm-0">PACKET GENERATOR</button>
|
|
45
|
+
</a>
|
|
46
|
+
</li>
|
|
47
|
+
<li>
|
|
48
|
+
<a class="nav-link" href="/data_structs">
|
|
49
|
+
<button class="btn btn-outline-success my-5 my-sm-0">DATA STRUCTURES</button>
|
|
50
|
+
</a>
|
|
51
|
+
</li>
|
|
52
|
+
</ul>
|
|
53
|
+
</div>
|
|
54
|
+
</nav>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<!-- Required meta tags -->
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
<title>{{ app }}</title>
|
|
8
|
+
<link rel="icon" href="https://www.wiliot.com/favicon.ico" type="image/x-icon" />
|
|
9
|
+
<!-- Bootstrap CSS -->
|
|
10
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
|
11
|
+
<style>
|
|
12
|
+
#card-body {
|
|
13
|
+
height: 550px;
|
|
14
|
+
overflow:auto;
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<div class="container">
|
|
20
|
+
{% include 'menu.html' %}
|
|
21
|
+
<h1 style="color:#00AB83">{{ title }}</h1>
|
|
22
|
+
<hr>
|
|
23
|
+
<form class="form-horizontal" action="">
|
|
24
|
+
<div class="row">
|
|
25
|
+
<label for="payload" class="col-sm-2">PAYLOAD:</label>
|
|
26
|
+
<input type="text" class="col-sm-4" name="payload" value="" placeholder="required" required>
|
|
27
|
+
</div>
|
|
28
|
+
{% if app == FDM %}
|
|
29
|
+
<div class="row">
|
|
30
|
+
<label for="packet_version" class="col-sm-2">PACKET VERSION:</label>
|
|
31
|
+
<input type="text" class="col-sm-4" name="packet_version" value="3.0">
|
|
32
|
+
</div>
|
|
33
|
+
{% endif %}
|
|
34
|
+
<hr>
|
|
35
|
+
<div class="row">
|
|
36
|
+
<button type="submit" class="btn btn-primary col-sm-12">Parse Packet</button>
|
|
37
|
+
</div>
|
|
38
|
+
</form>
|
|
39
|
+
<br>
|
|
40
|
+
<br>
|
|
41
|
+
<div class="card">
|
|
42
|
+
<div class="card-header">
|
|
43
|
+
Output
|
|
44
|
+
</div>
|
|
45
|
+
<div class="card-body" id="card-body">
|
|
46
|
+
<samp>{{ output | safe }}</samp>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<br>
|
|
50
|
+
<br>
|
|
51
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|