rosotacom-dev 2.5.dev36__tar.gz → 2.5.dev37__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 (352) hide show
  1. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/PKG-INFO +1 -1
  2. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_unwrapper.py +25 -9
  3. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/PKG-INFO +1 -1
  4. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/SOURCES.txt +1 -0
  5. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/scm_file_list.json +1 -0
  6. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/scm_version.json +2 -2
  7. rosotacom_dev-2.5.dev37/tests/unit/test_ota_unwrapper.py +140 -0
  8. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.devcontainer/devcontainer.json.template +0 -0
  9. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.devcontainer/re_generate_devcontainer_json.py +0 -0
  10. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/CODEOWNERS +0 -0
  11. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/documentation-audit.md +0 -0
  12. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/implementation-cleanup.md +0 -0
  13. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/quality-workflow.md +0 -0
  14. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/redesign.md +0 -0
  15. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/release-process.md +0 -0
  16. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/repository-diagnosis.md +0 -0
  17. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/test-ci-audit.md +0 -0
  18. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/ISSUE_TEMPLATE/work-item.md +0 -0
  19. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/actions/setup-just/action.yml +0 -0
  21. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/dependabot.yml +0 -0
  22. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/benchmark-calibrate.yml +0 -0
  23. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/benchmark-gate.yml +0 -0
  24. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/dev-release.yml +0 -0
  25. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/image-scan.yml +0 -0
  26. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/nightly-e2e.yml +0 -0
  27. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/pr-lightweight.yml +0 -0
  28. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/pr-merge-gate.yml +0 -0
  29. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.github/workflows/release.yml +0 -0
  30. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/.pre-commit-config.yaml +0 -0
  31. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/AGENTS.md +0 -0
  32. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/CONCURRENCY.md +0 -0
  33. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/CONTRIBUTING.md +0 -0
  34. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/DEVELOPMENT_PRINCIPLES.md +0 -0
  35. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/LICENSE.txt +0 -0
  36. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/MANIFEST.in +0 -0
  37. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/README.md +0 -0
  38. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/budgets.jsonl +0 -0
  39. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/README.md +0 -0
  40. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/capacity-size-tight-cyclone.json +0 -0
  41. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/probe-loss-gop-tight-cyclone.json +0 -0
  42. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/probe-loss-nominal-cyclone.json +0 -0
  43. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/probe-loss-tight-cyclone.json +0 -0
  44. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/probe-loss-tight-fastdds.json +0 -0
  45. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/calibration/probe-loss-tight-zenoh.json +0 -0
  46. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/codecov.yml +0 -0
  47. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/deployment-configuration.md +0 -0
  48. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/benchmark-ab.md +0 -0
  49. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/benchmark-bag-as-load.md +0 -0
  50. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/ci.md +0 -0
  51. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/ffmpeg-keyframes.md +0 -0
  52. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/README.md +0 -0
  53. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/cyclone-spdp-discovery-bursts.md +0 -0
  54. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/delay-alone-no-loss.md +0 -0
  55. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/head-of-line-irregularity.md +0 -0
  56. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/jitter-loss-bandwidth-latency.md +0 -0
  57. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/lighter-message-loss.md +0 -0
  58. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/findings/zero-loss-boundaries-18kb-20hz.md +0 -0
  59. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/forensics-report.md +0 -0
  60. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/geo-link-map.md +0 -0
  61. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/github-repository-settings.md +0 -0
  62. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/link-bandwidth.md +0 -0
  63. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/link-trace.md +0 -0
  64. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/owner-runbook.md +0 -0
  65. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/performance-bands.md +0 -0
  66. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/playbooks/README.md +0 -0
  67. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/quality-model.md +0 -0
  68. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/release-notes/TEMPLATE.md +0 -0
  69. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/release-notes/v2.1.md +0 -0
  70. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/release-notes/v2.2.md +0 -0
  71. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/release-notes/v2.3.md +0 -0
  72. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/release-notes/v2.4.md +0 -0
  73. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/release.md +0 -0
  74. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0001-expectation-driven-test-suite.md +0 -0
  75. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0002-expectation-concepts.md +0 -0
  76. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0003-metric-backbone.md +0 -0
  77. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0004-network-profiles.md +0 -0
  78. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0005-benchmark-genres-and-ci.md +0 -0
  79. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0006-dynamic-qos.md +0 -0
  80. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/0007-regression-gate.md +0 -0
  81. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/rfcs/README.md +0 -0
  82. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/testing.md +0 -0
  83. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/docs/work-items.md +0 -0
  84. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/install.sh +0 -0
  85. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/justfile +0 -0
  86. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/media/control_center.png +0 -0
  87. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/media/echo_test.png +0 -0
  88. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/media/forensics-report-example.png +0 -0
  89. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/media/host.png +0 -0
  90. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/media/vehicle.png +0 -0
  91. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/pyproject.toml +0 -0
  92. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/requirements.txt +0 -0
  93. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/rosotacom.yaml +0 -0
  94. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/run_session_in_container.py +0 -0
  95. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/session-configuration.md +0 -0
  96. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/setup.cfg +0 -0
  97. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/__init__.py +0 -0
  98. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/__main__.py +0 -0
  99. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/anonymize.py +0 -0
  100. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/bag_ground_truth.py +0 -0
  101. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/benched_set.py +0 -0
  102. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/benchmark.py +0 -0
  103. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/benchmark_delta.py +0 -0
  104. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/bundle_check.py +0 -0
  105. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/cli.py +0 -0
  106. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/cli_benchmark.py +0 -0
  107. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/deployment.py +0 -0
  108. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/ffmpeg_packet.py +0 -0
  109. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/forensics.py +0 -0
  110. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/geomap.py +0 -0
  111. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/image_cache.py +0 -0
  112. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/network_profiles.py +0 -0
  113. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/network_shaper.py +0 -0
  114. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/plots.py +0 -0
  115. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/py.typed +0 -0
  116. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/benched-set.yaml +0 -0
  117. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/.gitignore +0 -0
  118. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/README.md +0 -0
  119. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/__init__.py +0 -0
  120. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/bags/8_drop_reference/metadata.yaml +0 -0
  121. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/deployment.example.yaml +0 -0
  122. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/profiles.yaml +0 -0
  123. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/ros2docker.json +0 -0
  124. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/rosotacom.yaml +0 -0
  125. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scenarios/2_native_chatter/scenario-definition.yaml +0 -0
  126. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_a.sh +0 -0
  127. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_b.sh +0 -0
  128. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/external.ros2docker.json +0 -0
  129. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_communication.sh +0 -0
  130. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_external.py +0 -0
  131. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/wait_for_echo_topic.sh +0 -0
  132. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/external.ros2docker.json +0 -0
  133. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_communication.sh +0 -0
  134. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_external.py +0 -0
  135. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external.ros2docker.json +0 -0
  136. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external_session.yaml +0 -0
  137. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/foxglove.json +0 -0
  138. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_communication.sh +0 -0
  139. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_external.py +0 -0
  140. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
  141. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/metadata.yaml +0 -0
  142. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/external.ros2docker.json +0 -0
  143. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_communication.sh +0 -0
  144. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_external.py +0 -0
  145. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external.ros2docker.json +0 -0
  146. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external_session.yaml +0 -0
  147. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/foxglove.json +0 -0
  148. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_communication.sh +0 -0
  149. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_external.py +0 -0
  150. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
  151. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/metadata.yaml +0 -0
  152. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/external.ros2docker.json +0 -0
  153. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_communication.sh +0 -0
  154. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_external.py +0 -0
  155. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external.ros2docker.json +0 -0
  156. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external_session.yaml +0 -0
  157. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_communication.sh +0 -0
  158. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_external.py +0 -0
  159. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external.ros2docker.json +0 -0
  160. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external_session.yaml +0 -0
  161. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_communication.sh +0 -0
  162. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_external.py +0 -0
  163. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external.ros2docker.json +0 -0
  164. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external_session.yaml +0 -0
  165. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_communication.sh +0 -0
  166. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_external.py +0 -0
  167. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external.ros2docker.json +0 -0
  168. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external_session.yaml +0 -0
  169. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_communication.sh +0 -0
  170. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_external.py +0 -0
  171. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/10_restamp/session-definition.yaml +0 -0
  172. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/11_trickle/session-definition.yaml +0 -0
  173. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/12_content_integrity/session-definition.yaml +0 -0
  174. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/13_link_latency/session-definition.yaml +0 -0
  175. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/14_remote_assist_anonymized/session-definition.yaml +0 -0
  176. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/15_remote_assist_anonymized_costmap/session-definition.yaml +0 -0
  177. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/16_remote_assist_anonymized_camera/session-definition.yaml +0 -0
  178. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/17_synthetic_camera_quality/session-definition.yaml +0 -0
  179. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/1_heartbeat/session-definition.yaml +0 -0
  180. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/1_heartbeat_status/session-definition.yaml +0 -0
  181. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/2_native_chatter/session-definition.yaml +0 -0
  182. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/3_comp_occ_grid/session-definition.yaml +0 -0
  183. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/4_comp_occ_grid_zen/session-definition.yaml +0 -0
  184. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/5_sized_payload/session-definition.yaml +0 -0
  185. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/6_sized_payload_zen/session-definition.yaml +0 -0
  186. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/7_latched_static/session-definition.yaml +0 -0
  187. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/8_drop/session-definition.yaml +0 -0
  188. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/9_throttle/session-definition.yaml +0 -0
  189. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/bench_1_1_capacity/session-definition.yaml +0 -0
  190. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/bench_1_2_load_sweep/session-definition.yaml +0 -0
  191. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/bench_1_3_ramp/session-definition.yaml +0 -0
  192. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/bench_1_4_recovery/session-definition.yaml +0 -0
  193. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/examples/sessions/bench_1_5_camera/session-definition.yaml +0 -0
  194. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ros2docker.json.example +0 -0
  195. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/.vscode/c_cpp_properties.json +0 -0
  196. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/.vscode/settings.json +0 -0
  197. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_easy_mode.xml.template +0 -0
  198. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_initial_peer_list.xml.template +0 -0
  199. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v2.xml.template +0 -0
  200. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v3.xml.template +0 -0
  201. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v4.xml.template +0 -0
  202. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v5.xml.template +0 -0
  203. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/create_zenoh_json5.py +0 -0
  204. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/cyclonedds_local_participants.xml.template +0 -0
  205. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/cyclonedds_minimal.xml.template +0 -0
  206. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/cyclonedds_tuned.xml.template +0 -0
  207. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/fastdds_unicast.xml.template +0 -0
  208. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/get_ota_xml.py +0 -0
  209. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/utils.py +0 -0
  210. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ota_configs/zenoh.json5.template +0 -0
  211. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/.gitkeep +0 -0
  212. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/CMakeLists.txt +0 -0
  213. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/COLCON_IGNORE +0 -0
  214. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/LICENSE.txt +0 -0
  215. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/package.xml +0 -0
  216. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/src/hz_monitor.cpp +0 -0
  217. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_compressor.cpp +0 -0
  218. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_decompressor.cpp +0 -0
  219. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/CMakeLists.txt +0 -0
  220. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/LICENSE.txt +0 -0
  221. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/CompressedData.msg +0 -0
  222. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/EchoHeartbeat.msg +0 -0
  223. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/OtaStamped.msg +0 -0
  224. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/SizedPayload.msg +0 -0
  225. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_msgs/package.xml +0 -0
  226. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/LICENSE.txt +0 -0
  227. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/__init__.py +0 -0
  228. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/base_bridge_relay.py +0 -0
  229. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_in.py +0 -0
  230. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_out.py +0 -0
  231. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/heartbeat_echo.py +0 -0
  232. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/hz_monitor.py +0 -0
  233. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_bandwidth_reducer.py +0 -0
  234. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_pixel_capper.py +0 -0
  235. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/lanelet_saver.py +0 -0
  236. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/latch_relay.py +0 -0
  237. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/costmap_remapper.py +0 -0
  238. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/marker_remapper.py +0 -0
  239. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/speed_test.py +0 -0
  240. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/tf_remapper.py +0 -0
  241. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/traffic_monitor.py +0 -0
  242. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/wifi_network_analysis_1.py +0 -0
  243. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_bytes.py +0 -0
  244. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_trace.py +0 -0
  245. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/local_global_frame_bridge.py +0 -0
  246. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/localization_map_split_reduce_saver.py +0 -0
  247. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/msg_transform.py +0 -0
  248. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pair_management.py +0 -0
  249. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pub_sub_pair.py +0 -0
  250. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/qos.py +0 -0
  251. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_in.py +0 -0
  252. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_out.py +0 -0
  253. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/restamp.py +0 -0
  254. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/sized_publisher.py +0 -0
  255. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency.py +0 -0
  256. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency_core.py +0 -0
  257. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview.py +0 -0
  258. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview_core.py +0 -0
  259. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/tf_map_to_cart_saver.py +0 -0
  260. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_monitor.py +0 -0
  261. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_resolution.py +0 -0
  262. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/trickle.py +0 -0
  263. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_compressor.py +0 -0
  264. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_decompressor.py +0 -0
  265. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_wrapper.py +0 -0
  266. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/package.xml +0 -0
  267. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/resource/com_py +0 -0
  268. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/setup.cfg +0 -0
  269. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/setup.py +0 -0
  270. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/test/test_copyright.py +0 -0
  271. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/test/test_flake8.py +0 -0
  272. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/ros2src/com_py/test/test_pep257.py +0 -0
  273. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/content/base/session_plugin_base.yaml +0 -0
  274. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/content/network/up_connectivity.py +0 -0
  275. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/content/network/wifi_network_analysis_2.py +0 -0
  276. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/anonymize_bag.py +0 -0
  277. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/catmux_log_setup.sh +0 -0
  278. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/create_session_yaml.py +0 -0
  279. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/generate_session_files.py +0 -0
  280. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/run_session.py +0 -0
  281. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/run_session_in_external_terminal.py +0 -0
  282. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/resources/ws/session/creation/strip_ansi.py +0 -0
  283. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/status_eval.py +0 -0
  284. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/stream_stats.py +0 -0
  285. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/trace_profiles.py +0 -0
  286. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/transit.py +0 -0
  287. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom/video_quality.py +0 -0
  288. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/dependency_links.txt +0 -0
  289. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/entry_points.txt +0 -0
  290. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/requires.txt +0 -0
  291. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/src/rosotacom_dev.egg-info/top_level.txt +0 -0
  292. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/stop_session_in_container.py +0 -0
  293. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/terminology.md +0 -0
  294. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_benched_set_registry.py +0 -0
  295. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_findings.py +0 -0
  296. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_markdown_links.py +0 -0
  297. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_ota_source_bundle.py +0 -0
  298. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_package_metadata.py +0 -0
  299. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_packaged_resources.py +0 -0
  300. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_profile_covers_generated_commands.py +0 -0
  301. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_pytest_policy.py +0 -0
  302. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_readme_examples.py +0 -0
  303. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_security_maintenance_config.py +0 -0
  304. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_session_configuration_doc.py +0 -0
  305. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_session_template_substitution.py +0 -0
  306. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/contract/test_workflow_contracts.py +0 -0
  307. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/conftest.py +0 -0
  308. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_anonymize_e2e.py +0 -0
  309. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_benchmark_ab.py +0 -0
  310. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_benchmark_capacity.py +0 -0
  311. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_benchmark_replay.py +0 -0
  312. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_parallel_smoke.py +0 -0
  313. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_smoke.py +0 -0
  314. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_timeline_stepping.py +0 -0
  315. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/e2e/test_video_quality_e2e.py +0 -0
  316. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/sessions/generate_rmw_matrix.py +0 -0
  317. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-local_zenoh-ros2dds-ota/session-definition.yaml +0 -0
  318. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota/session-definition.yaml +0 -0
  319. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota-tuned/session-definition.yaml +0 -0
  320. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/sessions/rmw_matrix/1_heartbeat_fastdds/session-definition.yaml +0 -0
  321. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/sessions/rmw_matrix/1_heartbeat_zen-endpoints/session-definition.yaml +0 -0
  322. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_anonymize.py +0 -0
  323. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_bag_ground_truth.py +0 -0
  324. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_benched_set.py +0 -0
  325. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_benchmark.py +0 -0
  326. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_benchmark_delta.py +0 -0
  327. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_bundle_check.py +0 -0
  328. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_catmux_pane_logging.py +0 -0
  329. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_cli.py +0 -0
  330. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_cli_benchmark.py +0 -0
  331. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_concurrency.py +0 -0
  332. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_deployment.py +0 -0
  333. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_ffmpeg_packet.py +0 -0
  334. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_forensics.py +0 -0
  335. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_geomap.py +0 -0
  336. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_image_cache.py +0 -0
  337. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_link_bytes.py +0 -0
  338. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_link_trace.py +0 -0
  339. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_network_profiles.py +0 -0
  340. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_network_shaper.py +0 -0
  341. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_ota_wrapper.py +0 -0
  342. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_ota_xml.py +0 -0
  343. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_plots.py +0 -0
  344. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_session_pipeline.py +0 -0
  345. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_stage_latency.py +0 -0
  346. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_status_eval.py +0 -0
  347. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_status_overview.py +0 -0
  348. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_status_overview_observer.py +0 -0
  349. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_stream_stats.py +0 -0
  350. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_trace_profiles.py +0 -0
  351. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_transit.py +0 -0
  352. {rosotacom_dev-2.5.dev36 → rosotacom_dev-2.5.dev37}/tests/unit/test_video_quality.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rosotacom-dev
3
- Version: 2.5.dev36
3
+ Version: 2.5.dev37
4
4
  Summary: Host CLI for ROS OTA communication sessions.
5
5
  Author: develNor
6
6
  License-Expression: BSD-3-Clause
@@ -11,6 +11,7 @@ from rosidl_runtime_py.utilities import get_message
11
11
 
12
12
  from com_msgs.msg import OtaStamped
13
13
  from com_py.qos import get_topic_qos, load_qos_config
14
+ from com_py.status_overview_core import is_sequence_epoch_reset
14
15
 
15
16
 
16
17
  class UniversalOtaUnwrapperNode(Node):
@@ -142,20 +143,35 @@ class UniversalOtaUnwrapperNode(Node):
142
143
  return publisher, typed_cls
143
144
 
144
145
  def _check_sequence(self, wrapped_topic: str, seq: int):
146
+ """Say which of the three things a sequence break is.
147
+
148
+ A backward jump is either reordering or the sending peer restarting, and
149
+ this pane log was the last place still calling both "reordering". Three
150
+ consumers now agree that a jump larger than the transport can reorder is
151
+ a new epoch -- the live accounting, the transit join and the offline bag
152
+ join -- and a breadcrumb that disagrees with them costs exactly the time
153
+ it takes to trust it.
154
+ """
145
155
  last_seq = self._last_seq.get(wrapped_topic)
146
156
  self._last_seq[wrapped_topic] = seq
147
157
  if last_seq is None:
148
158
  return
149
159
  expected = last_seq + 1
150
- if seq != expected:
151
- if seq < last_seq:
152
- self.get_logger().warning(
153
- f"[{wrapped_topic}] Sequence reordering detected: received {seq} after {last_seq}"
154
- )
155
- else:
156
- self.get_logger().warning(
157
- f"[{wrapped_topic}] Sequence jump detected: expected {expected}, received {seq}"
158
- )
160
+ if seq == expected:
161
+ return
162
+ if is_sequence_epoch_reset(seq, expected):
163
+ self.get_logger().warning(
164
+ f"[{wrapped_topic}] Sending peer restarted: sequence begins again at {seq} "
165
+ f"after {last_seq}. Counts and delays are per epoch from here."
166
+ )
167
+ elif seq < last_seq:
168
+ self.get_logger().warning(
169
+ f"[{wrapped_topic}] Sequence reordering detected: received {seq} after {last_seq}"
170
+ )
171
+ else:
172
+ self.get_logger().warning(
173
+ f"[{wrapped_topic}] Sequence jump detected: expected {expected}, received {seq}"
174
+ )
159
175
 
160
176
  def unwrapper_callback(self, wrapped_msg: OtaStamped, wrapped_topic: str, out_topic: str):
161
177
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rosotacom-dev
3
- Version: 2.5.dev36
3
+ Version: 2.5.dev37
4
4
  Summary: Host CLI for ROS OTA communication sessions.
5
5
  Author: develNor
6
6
  License-Expression: BSD-3-Clause
@@ -335,6 +335,7 @@ tests/unit/test_link_bytes.py
335
335
  tests/unit/test_link_trace.py
336
336
  tests/unit/test_network_profiles.py
337
337
  tests/unit/test_network_shaper.py
338
+ tests/unit/test_ota_unwrapper.py
338
339
  tests/unit/test_ota_wrapper.py
339
340
  tests/unit/test_ota_xml.py
340
341
  tests/unit/test_plots.py
@@ -330,6 +330,7 @@
330
330
  "tests/unit/test_link_trace.py",
331
331
  "tests/unit/test_network_profiles.py",
332
332
  "tests/unit/test_network_shaper.py",
333
+ "tests/unit/test_ota_unwrapper.py",
333
334
  "tests/unit/test_ota_wrapper.py",
334
335
  "tests/unit/test_ota_xml.py",
335
336
  "tests/unit/test_plots.py",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "tag": "2.4",
3
- "distance": 36,
4
- "node": "gc4530f284a5644a8a04e8fc462e031603e0b4134",
3
+ "distance": 37,
4
+ "node": "g14af11d921417944e98035154a1166f10ebd923c",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-14"
@@ -0,0 +1,140 @@
1
+ """What the unwrapper calls a break in the sequence.
2
+
3
+ A backward jump is either the transport reordering two messages or the sending
4
+ peer restarting, and they mean opposite things: one is a property of the link,
5
+ the other resets the numbering everything downstream keys on. Three consumers
6
+ already distinguish them — the live status accounting, the transit join and the
7
+ offline bag join — and this pane log was the last place still calling both
8
+ "reordering".
9
+
10
+ The node imports rclpy, which the host suite does not have, so its ROS surface
11
+ is stubbed before the module is loaded by file path (same approach as
12
+ `tests/unit/test_ota_wrapper.py`).
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ import importlib.util
18
+ import sys
19
+ from collections.abc import Iterator
20
+ from pathlib import Path
21
+ from types import ModuleType, SimpleNamespace
22
+
23
+ import pytest
24
+
25
+ REPO_ROOT = Path(__file__).resolve().parents[2]
26
+ COM_PY = REPO_ROOT / "src" / "rosotacom" / "resources" / "ws" / "ros2src" / "com_py" / "com_py"
27
+ UNWRAPPER_PY = COM_PY / "universal_ota_unwrapper.py"
28
+ CORE_PY = COM_PY / "status_overview_core.py"
29
+
30
+ _STUBBED = (
31
+ "rclpy",
32
+ "rclpy.node",
33
+ "rclpy.serialization",
34
+ "rosidl_runtime_py",
35
+ "rosidl_runtime_py.utilities",
36
+ "com_msgs",
37
+ "com_msgs.msg",
38
+ "com_py",
39
+ "com_py.qos",
40
+ "com_py.status_overview_core",
41
+ )
42
+
43
+
44
+ class _FakeNode:
45
+ pass
46
+
47
+
48
+ def _stub_module(name: str, **attrs: object) -> ModuleType:
49
+ module = ModuleType(name)
50
+ for key, value in attrs.items():
51
+ setattr(module, key, value)
52
+ sys.modules[name] = module
53
+ return module
54
+
55
+
56
+ def _load(path: Path, name: str) -> ModuleType:
57
+ spec = importlib.util.spec_from_file_location(name, path)
58
+ assert spec and spec.loader
59
+ module = importlib.util.module_from_spec(spec)
60
+ sys.modules[name] = module
61
+ spec.loader.exec_module(module)
62
+ return module
63
+
64
+
65
+ @pytest.fixture(scope="module")
66
+ def unwrapper_module() -> Iterator[ModuleType]:
67
+ saved = {name: sys.modules.get(name) for name in _STUBBED}
68
+ _stub_module("rclpy", init=lambda *a, **k: None, shutdown=lambda *a, **k: None, spin=lambda *a, **k: None)
69
+ _stub_module("rclpy.node", Node=_FakeNode)
70
+ _stub_module("rclpy.serialization", deserialize_message=lambda *a, **k: None)
71
+ _stub_module("rosidl_runtime_py", utilities=None)
72
+ _stub_module("rosidl_runtime_py.utilities", get_message=lambda type_str: None)
73
+ _stub_module("com_msgs", msg=None)
74
+ _stub_module("com_msgs.msg", OtaStamped=object)
75
+ _stub_module("com_py", qos=None)
76
+ _stub_module("com_py.qos", get_topic_qos=lambda *a, **k: None, load_qos_config=lambda *a, **k: {})
77
+ # The real rule, not a stub: the point of this test is that the unwrapper
78
+ # and the accounting agree about what a restart is.
79
+ core = _load(CORE_PY, "rosotacom_status_overview_core_unwrapper")
80
+ _stub_module("com_py.status_overview_core", is_sequence_epoch_reset=core.is_sequence_epoch_reset)
81
+
82
+ module = _load(UNWRAPPER_PY, "rosotacom_universal_ota_unwrapper")
83
+ yield module
84
+
85
+ sys.modules.pop("rosotacom_universal_ota_unwrapper", None)
86
+ sys.modules.pop("rosotacom_status_overview_core_unwrapper", None)
87
+ for name, previous in saved.items():
88
+ if previous is None:
89
+ sys.modules.pop(name, None)
90
+ else:
91
+ sys.modules[name] = previous
92
+
93
+
94
+ def _node(unwrapper_module: ModuleType, warnings: list[str]):
95
+ node = object.__new__(unwrapper_module.UniversalOtaUnwrapperNode)
96
+ node._last_seq = {}
97
+ node.get_logger = lambda: SimpleNamespace(
98
+ warning=warnings.append, error=lambda *a, **k: None, info=lambda *a, **k: None
99
+ )
100
+ return node
101
+
102
+
103
+ def _feed(unwrapper_module: ModuleType, sequence: list[int]) -> list[str]:
104
+ warnings: list[str] = []
105
+ node = _node(unwrapper_module, warnings)
106
+ for value in sequence:
107
+ node._check_sequence("/x/ota_stamped", value)
108
+ return warnings
109
+
110
+
111
+ def test_an_uninterrupted_stream_says_nothing(unwrapper_module: ModuleType) -> None:
112
+ assert _feed(unwrapper_module, list(range(20))) == []
113
+
114
+
115
+ def test_a_restart_is_called_a_restart(unwrapper_module: ModuleType) -> None:
116
+ """The field shape: seq 28983, then the new run's first arrival at 37."""
117
+ (warning,) = _feed(unwrapper_module, [28982, 28983, 37, 38])
118
+
119
+ assert "Sending peer restarted" in warning
120
+ assert "37" in warning and "28983" in warning
121
+
122
+
123
+ def test_a_reset_to_zero_is_a_restart_too(unwrapper_module: ModuleType) -> None:
124
+ (warning,) = _feed(unwrapper_module, [40, 41, 0, 1])
125
+ assert "Sending peer restarted" in warning
126
+
127
+
128
+ def test_reordering_is_still_reordering(unwrapper_module: ModuleType) -> None:
129
+ # 1002 after 1000 is a forward gap (one warning); 1001 after 1002 is the
130
+ # reordering (the second). Both are real and both keep their old words.
131
+ gap, reorder = _feed(unwrapper_module, [1000, 1002, 1001])
132
+
133
+ assert "Sequence jump" in gap
134
+ assert "reordering" in reorder.lower()
135
+ assert "restarted" not in reorder
136
+
137
+
138
+ def test_a_forward_gap_is_a_jump(unwrapper_module: ModuleType) -> None:
139
+ (warning,) = _feed(unwrapper_module, [10, 15])
140
+ assert "Sequence jump" in warning