bluer-ugv 7.359.1__tar.gz → 7.432.1__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.
- {bluer_ugv-7.359.1/bluer_ugv.egg-info → bluer_ugv-7.432.1}/PKG-INFO +3 -3
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/README.md +2 -2
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/dataset.sh +1 -1
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video/play.sh +7 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +14 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video/playlist/download.sh +18 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +14 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +9 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video/playlist.sh +15 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/swallow/video.sh +15 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow.sh +1 -1
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/help.sh +8 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/tests/swallow_video_play.sh +11 -0
- bluer_ugv-7.432.1/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +45 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/build.py +2 -2
- {bluer_ugv-7.359.1/bluer_ugv/README/shield → bluer_ugv-7.432.1/bluer_ugv/README/computer}/box.py +1 -1
- bluer_ugv-7.432.1/bluer_ugv/README/computer/docs.py +21 -0
- {bluer_ugv-7.359.1/bluer_ugv/README/shield → bluer_ugv-7.432.1/bluer_ugv/README/computer}/pcb.py +3 -3
- bluer_ugv-7.432.1/bluer_ugv/README/computer/power.py +19 -0
- {bluer_ugv-7.359.1/bluer_ugv/README/shield → bluer_ugv-7.432.1/bluer_ugv/README/computer}/schematics.py +1 -1
- {bluer_ugv-7.359.1/bluer_ugv/README/shield → bluer_ugv-7.432.1/bluer_ugv/README/computer}/testing.py +1 -1
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/rangin/__init__.py +0 -3
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/shortcuts.py +2 -2
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/design/__init__.py +4 -4
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/__init__.py +1 -1
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/config.env +3 -1
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/env.py +2 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/__init__.py +2 -0
- bluer_ugv-7.432.1/bluer_ugv/help/swallow/video/functions.py +41 -0
- bluer_ugv-7.432.1/bluer_ugv/help/swallow/video/playlist.py +89 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen/classes.py +42 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen/video/__init__.py +0 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen/video/__main__.py +99 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen/video/engine.py +125 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen/video/player.py +117 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen/video/playlist.py +116 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/session.py +11 -7
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
- bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +3 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1/bluer_ugv.egg-info}/PKG-INFO +3 -3
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv.egg-info/SOURCES.txt +26 -7
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/setup.py +6 -1
- bluer_ugv-7.359.1/bluer_ugv/README/shield/docs.py +0 -17
- bluer_ugv-7.359.1/bluer_ugv/swallow/session/classical/screen.py +0 -11
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/LICENSE +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/MANIFEST.in +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/abcli.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/actions.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/aka.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/alias.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/alias.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/arzhang/algo.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/arzhang/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/arzhang/design.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/arzhang/flag.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/arzhang/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/beast.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/README/shield → bluer_ugv-7.432.1/bluer_ugv/README/computer}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/eagle/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/eagle/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/eagle/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/fire/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/fire/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/fire/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/rangin/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/rangin/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ravin/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ravin/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ravin/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/releases.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/root.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/analog.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/swallow/items.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/build.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/db.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/range.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/size.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/db.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/README/ugvs/docs.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/__main__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/assets/comparison.html +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/eagle/parts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/fire/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/fire/parts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/rangin/parts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/__main__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/functions.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/git.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/dataset.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/debug.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/env.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/select_target.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow → bluer_ugv-7.432.1/bluer_ugv/help/swallow/video}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/host.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/logger.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/sample.env +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow/dataset → bluer_ugv-7.432.1/bluer_ugv/swallow}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/__main__.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow/session → bluer_ugv-7.432.1/bluer_ugv/swallow/dataset}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/debug.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow/session/classical → bluer_ugv-7.432.1/bluer_ugv/swallow/session}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/__main__.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow/session/classical/keyboard → bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow/session/classical/setpoint → bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/keyboard}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
- {bluer_ugv-7.359.1/bluer_ugv/swallow/session/classical/ultrasonic_sensor → bluer_ugv-7.432.1/bluer_ugv/swallow/session/classical/screen}/__init__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/session/functions.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/swallow/targeting.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv/urls.py +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv.egg-info/requires.txt +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/bluer_ugv.egg-info/top_level.txt +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/pyproject.toml +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/requirements.txt +0 -0
- {bluer_ugv-7.359.1 → bluer_ugv-7.432.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.432.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -47,7 +47,7 @@ pip install bluer_ugv
|
|
|
47
47
|
|
|
48
48
|
| | |
|
|
49
49
|
| --- | --- |
|
|
50
|
-
| [`
|
|
50
|
+
| [`computer`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/computer) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/computer) | [`UGVs`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/UGVs) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/UGVs) |
|
|
51
51
|
| [`terraform`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/terraform.md) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/terraform.md) | [`validations`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/validations) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/validations) |
|
|
52
52
|
|
|
53
53
|
## aliases
|
|
@@ -64,7 +64,7 @@ pip install bluer_ugv
|
|
|
64
64
|
|
|
65
65
|
[](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-ugv/) [](https://pypistats.org/packages/bluer-ugv)
|
|
66
66
|
|
|
67
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
67
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.432.1`](https://github.com/kamangir/bluer-ugv).
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -18,7 +18,7 @@ pip install bluer_ugv
|
|
|
18
18
|
|
|
19
19
|
| | |
|
|
20
20
|
| --- | --- |
|
|
21
|
-
| [`
|
|
21
|
+
| [`computer`](./bluer_ugv/docs/swallow/digital/design/computer) [](./bluer_ugv/docs/swallow/digital/design/computer) | [`UGVs`](./bluer_ugv/docs/UGVs) [](./bluer_ugv/docs/UGVs) |
|
|
22
22
|
| [`terraform`](./bluer_ugv/docs/swallow/digital/design/terraform.md) [](./bluer_ugv/docs/swallow/digital/design/terraform.md) | [`validations`](./bluer_ugv/docs/validations) [](./bluer_ugv/docs/validations) |
|
|
23
23
|
|
|
24
24
|
## aliases
|
|
@@ -35,5 +35,5 @@ pip install bluer_ugv
|
|
|
35
35
|
|
|
36
36
|
[](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-ugv/) [](https://pypistats.org/packages/bluer-ugv)
|
|
37
37
|
|
|
38
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
38
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.432.1`](https://github.com/kamangir/bluer-ugv).
|
|
39
39
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_ugv_swallow_video_playlist_cat() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_download=$(bluer_ai_option_int "$options" download 0)
|
|
6
|
+
|
|
7
|
+
[[ "$do_download" == 1 ]] &&
|
|
8
|
+
bluer_ugv_swallow_video_playlist_download \
|
|
9
|
+
filename=void \
|
|
10
|
+
$RANGIN_VIDEO_LIST_OBJECT
|
|
11
|
+
|
|
12
|
+
bluer_ai_cat \
|
|
13
|
+
$ABCLI_OBJECT_ROOT/$RANGIN_VIDEO_LIST_OBJECT/metadata.yaml
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_ugv_swallow_video_playlist_download() {
|
|
4
|
+
local options=${1:-policy=doesnt_exist}
|
|
5
|
+
|
|
6
|
+
[[ "$abcli_is_rpi" == true ]] &&
|
|
7
|
+
sudo chown pi:pi \
|
|
8
|
+
$ABCLI_OBJECT_ROOT/$RANGIN_VIDEO_LIST_OBJECT
|
|
9
|
+
|
|
10
|
+
bluer_objects_download \
|
|
11
|
+
filename=metadata.yaml \
|
|
12
|
+
$RANGIN_VIDEO_LIST_OBJECT
|
|
13
|
+
[[ $? -ne 0 ]] && return 1
|
|
14
|
+
|
|
15
|
+
bluer_objects_download \
|
|
16
|
+
,$options \
|
|
17
|
+
$RANGIN_VIDEO_LIST_OBJECT
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_ugv_swallow_video_playlist_edit() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_download=$(bluer_ai_option_int "$options" download 0)
|
|
6
|
+
|
|
7
|
+
[[ "$do_download" == 1 ]] &&
|
|
8
|
+
bluer_ugv_swallow_video_playlist_download \
|
|
9
|
+
filename=void \
|
|
10
|
+
$RANGIN_VIDEO_LIST_OBJECT
|
|
11
|
+
|
|
12
|
+
bluer_ai_code \
|
|
13
|
+
$ABCLI_OBJECT_ROOT/$RANGIN_VIDEO_LIST_OBJECT/metadata.yaml
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_ugv_swallow_video_playlist() {
|
|
4
|
+
local task=$1
|
|
5
|
+
|
|
6
|
+
local function_name=bluer_ugv_swallow_video_playlist_$task
|
|
7
|
+
if [[ $(type -t $function_name) == "function" ]]; then
|
|
8
|
+
$function_name "${@:2}"
|
|
9
|
+
return
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
python3 -m bluer_ugv.swallow.session.classical.screen.video "$@"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
bluer_ai_source_caller_suffix_path /playlist
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_ugv_swallow_video() {
|
|
4
|
+
local task=$1
|
|
5
|
+
|
|
6
|
+
local function_name=bluer_ugv_swallow_video_$task
|
|
7
|
+
if [[ $(type -t $function_name) == "function" ]]; then
|
|
8
|
+
$function_name "${@:2}"
|
|
9
|
+
return
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
python3 -m bluer_ugv.swallow.session.classical.screen.video "$@"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
bluer_ai_source_caller_suffix_path /video
|
|
@@ -29,6 +29,14 @@ function test_bluer_ugv_help() {
|
|
|
29
29
|
"@swallow ultrasonic review" \
|
|
30
30
|
"@swallow ultrasonic test" \
|
|
31
31
|
\
|
|
32
|
+
"@swallow video" \
|
|
33
|
+
"@swallow video play" \
|
|
34
|
+
"@swallow video playlist" \
|
|
35
|
+
"@swallow video playlist cat" \
|
|
36
|
+
"@swallow video playlist download" \
|
|
37
|
+
"@swallow video playlist edit" \
|
|
38
|
+
"@swallow video playlist upload" \
|
|
39
|
+
\
|
|
32
40
|
"@ugv" \
|
|
33
41
|
\
|
|
34
42
|
"@ugv git" \
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function test_swallow_video_playlist_cat() {
|
|
4
|
+
local options=$1
|
|
5
|
+
|
|
6
|
+
bluer_ai_eval ,$options \
|
|
7
|
+
bluer_ugv \
|
|
8
|
+
swallow \
|
|
9
|
+
video \
|
|
10
|
+
playlist \
|
|
11
|
+
cat
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function test_swallow_video_playlist_download_upload() {
|
|
15
|
+
local options=$1
|
|
16
|
+
|
|
17
|
+
bluer_ai_eval ,$options \
|
|
18
|
+
bluer_ugv \
|
|
19
|
+
swallow \
|
|
20
|
+
video \
|
|
21
|
+
playlist \
|
|
22
|
+
download \
|
|
23
|
+
policy=doesnt_exist
|
|
24
|
+
[[ $? -ne 0 ]] && return 1
|
|
25
|
+
|
|
26
|
+
bluer_ai_eval ,$options \
|
|
27
|
+
bluer_ugv \
|
|
28
|
+
swallow \
|
|
29
|
+
video \
|
|
30
|
+
playlist \
|
|
31
|
+
upload \
|
|
32
|
+
filename=metadata.yaml
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function test_swallow_video_playlist_edit() {
|
|
36
|
+
local options=$1
|
|
37
|
+
|
|
38
|
+
bluer_ai_eval ,$options \
|
|
39
|
+
bluer_ugv \
|
|
40
|
+
swallow \
|
|
41
|
+
video \
|
|
42
|
+
playlist \
|
|
43
|
+
edit \
|
|
44
|
+
download
|
|
45
|
+
}
|
|
@@ -17,7 +17,7 @@ from bluer_ugv.README import (
|
|
|
17
17
|
releases,
|
|
18
18
|
swallow,
|
|
19
19
|
)
|
|
20
|
-
from bluer_ugv.README.
|
|
20
|
+
from bluer_ugv.README.computer import docs as computer
|
|
21
21
|
from bluer_ugv.README.ugvs import docs as ugvs
|
|
22
22
|
from bluer_ugv.README.ugvs.comparison.build import build as build_comparison
|
|
23
23
|
|
|
@@ -49,7 +49,7 @@ def build() -> bool:
|
|
|
49
49
|
+ rangin.docs
|
|
50
50
|
+ ravin.docs
|
|
51
51
|
+ releases.docs
|
|
52
|
-
+
|
|
52
|
+
+ computer.docs
|
|
53
53
|
+ ugvs.docs
|
|
54
54
|
+ swallow.docs
|
|
55
55
|
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from bluer_ugv.README.computer import box, pcb, power, schematics, testing
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
docs = (
|
|
5
|
+
[
|
|
6
|
+
{
|
|
7
|
+
"path": "../docs/swallow/digital/design/computer",
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"path": "../docs/swallow/digital/design/computer/naming.md",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"path": "../docs/swallow/digital/design/computer/connectors-v1.md",
|
|
14
|
+
},
|
|
15
|
+
]
|
|
16
|
+
+ box.docs
|
|
17
|
+
+ pcb.docs
|
|
18
|
+
+ power.docs
|
|
19
|
+
+ schematics.docs
|
|
20
|
+
+ testing.docs
|
|
21
|
+
)
|
{bluer_ugv-7.359.1/bluer_ugv/README/shield → bluer_ugv-7.432.1/bluer_ugv/README/computer}/pcb.py
RENAMED
|
@@ -35,15 +35,15 @@ v2_items = ImageItems(
|
|
|
35
35
|
|
|
36
36
|
docs = [
|
|
37
37
|
{
|
|
38
|
-
"path": "../docs/swallow/digital/design/
|
|
38
|
+
"path": "../docs/swallow/digital/design/computer/pcb.md",
|
|
39
39
|
"items": items,
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
"path": "../docs/swallow/digital/design/
|
|
42
|
+
"path": "../docs/swallow/digital/design/computer/v1.md",
|
|
43
43
|
"items": v1_items,
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"path": "../docs/swallow/digital/design/
|
|
46
|
+
"path": "../docs/swallow/digital/design/computer/v2.md",
|
|
47
47
|
"items": v2_items,
|
|
48
48
|
},
|
|
49
49
|
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from bluer_objects.README.items import ImageItems
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.swallow.consts import swallow_assets2, swallow_designs
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
items = ImageItems(
|
|
7
|
+
{
|
|
8
|
+
f"{swallow_assets2}/20251119_193930.jpg": "",
|
|
9
|
+
f"{swallow_assets2}/20251119_193954.jpg": "",
|
|
10
|
+
}
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
docs = [
|
|
15
|
+
{
|
|
16
|
+
"path": "../docs/swallow/digital/design/computer/power.md",
|
|
17
|
+
"items": items,
|
|
18
|
+
},
|
|
19
|
+
]
|
|
@@ -11,8 +11,8 @@ items = markdown.generate_table(
|
|
|
11
11
|
Items(
|
|
12
12
|
[
|
|
13
13
|
{
|
|
14
|
-
"name": "
|
|
15
|
-
"url": "./bluer_ugv/docs/swallow/digital/design/
|
|
14
|
+
"name": "computer",
|
|
15
|
+
"url": "./bluer_ugv/docs/swallow/digital/design/computer",
|
|
16
16
|
"marquee": f"{swallow_electrical_designs}/digital.png?raw=true",
|
|
17
17
|
},
|
|
18
18
|
{
|
|
@@ -7,7 +7,10 @@ from bluer_ugv.README.swallow.consts import (
|
|
|
7
7
|
swallow_electrical_designs,
|
|
8
8
|
)
|
|
9
9
|
from bluer_ugv.designs.swallow.parts import dict_of_parts
|
|
10
|
-
from bluer_ugv.README.swallow.digital.design import
|
|
10
|
+
from bluer_ugv.README.swallow.digital.design import (
|
|
11
|
+
mechanical,
|
|
12
|
+
ultrasonic_sensor,
|
|
13
|
+
)
|
|
11
14
|
from bluer_ugv.swallow.session.classical.keyboard.keys import ControlKeys
|
|
12
15
|
|
|
13
16
|
|
|
@@ -16,9 +19,6 @@ docs = (
|
|
|
16
19
|
{
|
|
17
20
|
"path": "../docs/swallow/digital/design",
|
|
18
21
|
},
|
|
19
|
-
{
|
|
20
|
-
"path": "../docs/swallow/digital/design/computers.md",
|
|
21
|
-
},
|
|
22
22
|
{
|
|
23
23
|
"path": "../docs/swallow/digital/design/operation.md",
|
|
24
24
|
"cols": 2,
|
|
@@ -6,6 +6,7 @@ from bluer_ugv.help.swallow.select_target import help_select_target
|
|
|
6
6
|
from bluer_ugv.help.swallow.ultrasonic_sensor import (
|
|
7
7
|
help_functions as help_ultrasonic_sensor,
|
|
8
8
|
)
|
|
9
|
+
from bluer_ugv.help.swallow.video.functions import help_functions as help_video
|
|
9
10
|
|
|
10
11
|
help_functions = {
|
|
11
12
|
"dataset": help_dataset,
|
|
@@ -14,4 +15,5 @@ help_functions = {
|
|
|
14
15
|
"keyboard": help_keyboard,
|
|
15
16
|
"select_target": help_select_target,
|
|
16
17
|
"ultrasonic": help_ultrasonic_sensor,
|
|
18
|
+
"video": help_video,
|
|
17
19
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from bluer_options.terminal import show_usage, xtra
|
|
4
|
+
|
|
5
|
+
from bluer_ugv import env
|
|
6
|
+
from bluer_ugv.help.swallow.video.playlist import help_functions as help_playlist
|
|
7
|
+
from bluer_ugv.swallow.session.classical.screen.video.engine import VideoEngine
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def help_play(
|
|
11
|
+
tokens: List[str],
|
|
12
|
+
mono: bool,
|
|
13
|
+
) -> str:
|
|
14
|
+
args = [
|
|
15
|
+
"[--dryrun 1]",
|
|
16
|
+
"[--download 0]",
|
|
17
|
+
"[--engine {}]".format(
|
|
18
|
+
" | ".join(sorted([engine.name.lower() for engine in VideoEngine]))
|
|
19
|
+
),
|
|
20
|
+
"[--loop 0]",
|
|
21
|
+
f"[--object_name <{env.RANGIN_VIDEO_LIST_OBJECT}>]",
|
|
22
|
+
"[--timeout <-1 | 10>]",
|
|
23
|
+
"[--video <loading|1>]",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
return show_usage(
|
|
27
|
+
[
|
|
28
|
+
"@swallow",
|
|
29
|
+
"video",
|
|
30
|
+
"play",
|
|
31
|
+
]
|
|
32
|
+
+ args,
|
|
33
|
+
"play <object-name>/<video>.",
|
|
34
|
+
mono=mono,
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
help_functions = {
|
|
39
|
+
"play": help_play,
|
|
40
|
+
"playlist": help_playlist,
|
|
41
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from bluer_options.terminal import show_usage, xtra
|
|
4
|
+
from bluer_objects.help.download import options as download_options
|
|
5
|
+
from bluer_objects.help.upload import options as upload_options
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def help_cat(
|
|
9
|
+
tokens: List[str],
|
|
10
|
+
mono: bool,
|
|
11
|
+
) -> str:
|
|
12
|
+
options = xtra("download", mono=mono)
|
|
13
|
+
|
|
14
|
+
return show_usage(
|
|
15
|
+
[
|
|
16
|
+
"@swallow",
|
|
17
|
+
"video",
|
|
18
|
+
"playlist",
|
|
19
|
+
"cat",
|
|
20
|
+
f"[{options}]",
|
|
21
|
+
],
|
|
22
|
+
"cat swallow playlist.",
|
|
23
|
+
mono=mono,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def help_download(
|
|
28
|
+
tokens: List[str],
|
|
29
|
+
mono: bool,
|
|
30
|
+
) -> str:
|
|
31
|
+
options = download_options(mono=mono)
|
|
32
|
+
|
|
33
|
+
return show_usage(
|
|
34
|
+
[
|
|
35
|
+
"@swallow",
|
|
36
|
+
"video",
|
|
37
|
+
"playlist",
|
|
38
|
+
"download",
|
|
39
|
+
f"[{options}]",
|
|
40
|
+
],
|
|
41
|
+
"download swallow playlist.",
|
|
42
|
+
mono=mono,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def help_edit(
|
|
47
|
+
tokens: List[str],
|
|
48
|
+
mono: bool,
|
|
49
|
+
) -> str:
|
|
50
|
+
options = xtra("download", mono=mono)
|
|
51
|
+
|
|
52
|
+
return show_usage(
|
|
53
|
+
[
|
|
54
|
+
"@swallow",
|
|
55
|
+
"video",
|
|
56
|
+
"playlist",
|
|
57
|
+
"edit",
|
|
58
|
+
f"[{options}]",
|
|
59
|
+
],
|
|
60
|
+
"edit swallow playlist.",
|
|
61
|
+
mono=mono,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def help_upload(
|
|
66
|
+
tokens: List[str],
|
|
67
|
+
mono: bool,
|
|
68
|
+
) -> str:
|
|
69
|
+
options = upload_options(mono=mono)
|
|
70
|
+
|
|
71
|
+
return show_usage(
|
|
72
|
+
[
|
|
73
|
+
"@swallow",
|
|
74
|
+
"video",
|
|
75
|
+
"playlist",
|
|
76
|
+
"upload",
|
|
77
|
+
f"[{options}]",
|
|
78
|
+
],
|
|
79
|
+
"upload swallow playlist.",
|
|
80
|
+
mono=mono,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
help_functions = {
|
|
85
|
+
"cat": help_cat,
|
|
86
|
+
"download": help_download,
|
|
87
|
+
"edit": help_edit,
|
|
88
|
+
"upload": help_upload,
|
|
89
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from bluer_options.host.functions import is_headless
|
|
2
|
+
|
|
3
|
+
from bluer_ugv import env
|
|
4
|
+
from bluer_ugv.swallow.session.classical.screen.video.player import VideoPlayer
|
|
5
|
+
from bluer_ugv.swallow.session.classical.screen.video.playlist import PlayList
|
|
6
|
+
from bluer_ugv.logger import logger
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ClassicalScreen:
|
|
10
|
+
def __init__(self):
|
|
11
|
+
self.video_player = None if is_headless() else VideoPlayer()
|
|
12
|
+
|
|
13
|
+
self.playlist = PlayList(env.RANGIN_VIDEO_LIST_OBJECT)
|
|
14
|
+
|
|
15
|
+
logger.info(f"{self.__class__.__name__} created.")
|
|
16
|
+
|
|
17
|
+
def cleanup(self):
|
|
18
|
+
logger.info(f"{self.__class__.__name__}.cleanup")
|
|
19
|
+
self.video_player.stop()
|
|
20
|
+
|
|
21
|
+
def initialize(self) -> bool:
|
|
22
|
+
if self.video_player is None:
|
|
23
|
+
return True
|
|
24
|
+
|
|
25
|
+
return self.video_player.play(
|
|
26
|
+
self.playlist.get("loading"),
|
|
27
|
+
loop=True,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def update(self) -> bool:
|
|
31
|
+
if self.video_player is None:
|
|
32
|
+
return True
|
|
33
|
+
|
|
34
|
+
if self.video_player.process:
|
|
35
|
+
return True
|
|
36
|
+
|
|
37
|
+
self.playlist.next()
|
|
38
|
+
|
|
39
|
+
return self.video_player.play(
|
|
40
|
+
self.playlist.get(self.playlist.index),
|
|
41
|
+
loop=False,
|
|
42
|
+
)
|
|
File without changes
|