bluer-ugv 7.787.1__tar.gz → 7.819.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.787.1/bluer_ugv.egg-info → bluer_ugv-7.819.1}/PKG-INFO +4 -5
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/README.md +3 -4
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/alias.sh +0 -2
- bluer_ugv-7.819.1/bluer_ugv/.abcli/swallow/ethernet/test.sh +12 -0
- bluer_ugv-7.819.1/bluer_ugv/.abcli/swallow/ethernet.sh +15 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/help.sh +2 -0
- bluer_ugv-7.819.1/bluer_ugv/README/aliases.py +23 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/docs.py +2 -2
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/root.py +4 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/design/__init__.py +2 -0
- bluer_ugv-7.819.1/bluer_ugv/README/swallow/digital/design/ethernet.py +5 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/__main__.py +0 -7
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/db.py +1 -1
- bluer_ugv-7.819.1/bluer_ugv/README/ugvs/ethernet.py +55 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/get.py +0 -4
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/__init__.py +1 -1
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/config.env +3 -1
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/env.py +2 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/get.py +1 -6
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/__init__.py +2 -0
- bluer_ugv-7.819.1/bluer_ugv/help/swallow/ethernet.py +34 -0
- bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ethernet/__main__.py +42 -0
- bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ethernet/classes.py +52 -0
- bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ethernet/client.py +278 -0
- bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ethernet/command.py +22 -0
- bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ethernet/testing.py +52 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +19 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/session.py +6 -0
- bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1/bluer_ugv.egg-info}/PKG-INFO +4 -5
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv.egg-info/SOURCES.txt +12 -1
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/setup.py +1 -0
- bluer_ugv-7.787.1/bluer_ugv/README/alias.py +0 -10
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/LICENSE +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/MANIFEST.in +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/abcli.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/actions.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/aka.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/git/rm_keys.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/git.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video/play.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video/playlist/download.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video/playlist.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow/video.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/swallow.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_video_play.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/ugv_get.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/ugv/get.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/ugv/ssh.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/.abcli/ugv/watch.sh +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/algo.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/design.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/flag.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/arzhang/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/beast.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/build.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/box.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/power.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/schematics.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/shield/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/shield/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/shield/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/shield/testing.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/shield/v1.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/shield/v2.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/computer/testing.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/eagle/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/eagle/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/eagle/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/eagle/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/fire/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/fire/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/fire/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/fire/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/mechanical.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/power.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/root.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/schematics.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/specs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/rangin/terraform.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ravin/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ravin/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ravin/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ravin/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/releases.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/shortcuts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/analog.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/algo/driving.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/algo/tracking.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/design/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/swallow/items.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/build.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/db.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/range.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/size.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/README/ugvs/docs.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/assets/comparison.html +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/eagle/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/fire/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/fire/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/rangin/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/functions.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/git.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/ssh.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/dataset.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/debug.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/env.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/git.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/select_target.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/video/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/video/functions.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/swallow/video/playlist.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/help/watch.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/host.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/logger.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/sample.env +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/debug.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/camera/void.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
- {bluer_ugv-7.787.1/bluer_ugv/swallow/session/classical/keyboard → bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/ethernet}/__init__.py +0 -0
- {bluer_ugv-7.787.1/bluer_ugv/swallow/session/classical/screen → bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/keyboard}/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
- {bluer_ugv-7.787.1/bluer_ugv/swallow/session/classical/screen/video → bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/screen}/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/screen/classes.py +0 -0
- {bluer_ugv-7.787.1/bluer_ugv/swallow/session/classical/setpoint → bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/screen/video}/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/screen/video/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/screen/video/engine.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/screen/video/player.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/screen/video/playlist.py +0 -0
- {bluer_ugv-7.787.1/bluer_ugv/swallow/session/classical/ultrasonic_sensor → bluer_ugv-7.819.1/bluer_ugv/swallow/session/classical/setpoint}/__init__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/session/functions.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/swallow/targeting.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv/urls.py +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv.egg-info/requires.txt +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/bluer_ugv.egg-info/top_level.txt +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/pyproject.toml +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.1}/requirements.txt +0 -0
- {bluer_ugv-7.787.1 → bluer_ugv-7.819.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.819.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -53,9 +53,8 @@ pip install bluer_ugv
|
|
|
53
53
|
|
|
54
54
|
## aliases
|
|
55
55
|
|
|
56
|
-
[@
|
|
57
|
-
[@
|
|
58
|
-
[@ugv](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/aliases/ugv.md).
|
|
56
|
+
[@swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/aliases/swallow.md)
|
|
57
|
+
[@ugv](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/aliases/ugv.md)
|
|
59
58
|
|
|
60
59
|
---
|
|
61
60
|
|
|
@@ -66,7 +65,7 @@ pip install bluer_ugv
|
|
|
66
65
|
|
|
67
66
|
[](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)
|
|
68
67
|
|
|
69
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
68
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.819.1`](https://github.com/kamangir/bluer-ugv).
|
|
70
69
|
|
|
71
70
|
|
|
72
71
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -23,9 +23,8 @@ pip install bluer_ugv
|
|
|
23
23
|
|
|
24
24
|
## aliases
|
|
25
25
|
|
|
26
|
-
[@
|
|
27
|
-
[@
|
|
28
|
-
[@ugv](./bluer_ugv/docs/aliases/ugv.md).
|
|
26
|
+
[@swallow](./bluer_ugv/docs/aliases/swallow.md)
|
|
27
|
+
[@ugv](./bluer_ugv/docs/aliases/ugv.md)
|
|
29
28
|
|
|
30
29
|
---
|
|
31
30
|
|
|
@@ -36,5 +35,5 @@ pip install bluer_ugv
|
|
|
36
35
|
|
|
37
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)
|
|
38
37
|
|
|
39
|
-
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.819.1`](https://github.com/kamangir/bluer-ugv).
|
|
40
39
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_ugv_swallow_ethernet() {
|
|
4
|
+
local task=$1
|
|
5
|
+
|
|
6
|
+
local function_name=bluer_ugv_swallow_ethernet_$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.ethernet "$@"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
bluer_ai_source_caller_suffix_path /ethernet
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from bluer_objects.README.alias import list_of_aliases
|
|
2
|
+
|
|
3
|
+
from bluer_ugv import NAME
|
|
4
|
+
|
|
5
|
+
docs = [
|
|
6
|
+
{
|
|
7
|
+
"path": "../docs/aliases",
|
|
8
|
+
"macros": {
|
|
9
|
+
"aliases:::": list_of_aliases(
|
|
10
|
+
NAME,
|
|
11
|
+
itemized=True,
|
|
12
|
+
),
|
|
13
|
+
},
|
|
14
|
+
}
|
|
15
|
+
] + [
|
|
16
|
+
{
|
|
17
|
+
"path": f"../docs/aliases/{alias_name}.md",
|
|
18
|
+
}
|
|
19
|
+
for alias_name in list_of_aliases(
|
|
20
|
+
NAME,
|
|
21
|
+
as_markdown=False,
|
|
22
|
+
)
|
|
23
|
+
]
|
|
@@ -4,7 +4,7 @@ from bluer_ugv.README.fire import docs as fire_docs
|
|
|
4
4
|
from bluer_ugv.README.rangin import docs as rangin_docs
|
|
5
5
|
from bluer_ugv.README.ravin import docs as ravin_docs
|
|
6
6
|
from bluer_ugv.README import (
|
|
7
|
-
|
|
7
|
+
aliases,
|
|
8
8
|
beast,
|
|
9
9
|
root,
|
|
10
10
|
releases,
|
|
@@ -16,7 +16,7 @@ from bluer_ugv.README.validations import docs as validations
|
|
|
16
16
|
|
|
17
17
|
docs = (
|
|
18
18
|
root.docs
|
|
19
|
-
+
|
|
19
|
+
+ aliases.docs
|
|
20
20
|
+ arzhang_docs.docs
|
|
21
21
|
+ beast.docs
|
|
22
22
|
+ eagle_docs.docs
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
from bluer_objects.README.alias import list_of_aliases
|
|
2
|
+
|
|
3
|
+
from bluer_ugv import NAME
|
|
1
4
|
from bluer_ugv.README.items import items
|
|
2
5
|
from bluer_ugv.README.shortcuts import items as shortcuts_items
|
|
3
6
|
|
|
@@ -8,6 +11,7 @@ docs = [
|
|
|
8
11
|
"items": items,
|
|
9
12
|
"macros": {
|
|
10
13
|
"shortcuts:::": shortcuts_items,
|
|
14
|
+
"aliases:::": list_of_aliases(NAME),
|
|
11
15
|
},
|
|
12
16
|
},
|
|
13
17
|
{
|
|
@@ -5,6 +5,7 @@ from bluer_ugv.README.swallow.consts import (
|
|
|
5
5
|
swallow_electrical_designs,
|
|
6
6
|
)
|
|
7
7
|
from bluer_ugv.README.swallow.digital.design import (
|
|
8
|
+
ethernet,
|
|
8
9
|
mechanical,
|
|
9
10
|
parts,
|
|
10
11
|
ultrasonic_sensor,
|
|
@@ -61,6 +62,7 @@ docs = (
|
|
|
61
62
|
),
|
|
62
63
|
},
|
|
63
64
|
]
|
|
65
|
+
+ ethernet.docs
|
|
64
66
|
+ mechanical.docs
|
|
65
67
|
+ parts.docs
|
|
66
68
|
+ ultrasonic_sensor.docs
|
|
@@ -23,12 +23,6 @@ parser.add_argument(
|
|
|
23
23
|
"--what",
|
|
24
24
|
type=str,
|
|
25
25
|
)
|
|
26
|
-
parser.add_argument(
|
|
27
|
-
"--include_comments",
|
|
28
|
-
type=int,
|
|
29
|
-
default=0,
|
|
30
|
-
help="0 | 1",
|
|
31
|
-
)
|
|
32
26
|
args = parser.parse_args()
|
|
33
27
|
|
|
34
28
|
success = False
|
|
@@ -38,7 +32,6 @@ if args.task == "get":
|
|
|
38
32
|
get(
|
|
39
33
|
ugv_name=args.ugv_name,
|
|
40
34
|
what=args.what,
|
|
41
|
-
include_comments=args.include_comments == 1,
|
|
42
35
|
)
|
|
43
36
|
)
|
|
44
37
|
else:
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from typing import Tuple
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.ugvs.db import dict_of_ugvs
|
|
4
|
+
from bluer_ugv.logger import logger
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def find_server(
|
|
8
|
+
hostname: str,
|
|
9
|
+
) -> Tuple[
|
|
10
|
+
bool, # success
|
|
11
|
+
bool, # is_server
|
|
12
|
+
str, # "0.0.0.0" if is_server else f"{server_name}.local"
|
|
13
|
+
]:
|
|
14
|
+
for ugv_name, info in dict_of_ugvs.items():
|
|
15
|
+
found: bool = False
|
|
16
|
+
dict_of_computers = info.get("computers", {})
|
|
17
|
+
assert isinstance(dict_of_computers, dict)
|
|
18
|
+
|
|
19
|
+
for location, hostname_ in dict_of_computers.items():
|
|
20
|
+
if hostname != hostname_:
|
|
21
|
+
continue
|
|
22
|
+
|
|
23
|
+
logger.info(f"{hostname} == {ugv_name}.{location}")
|
|
24
|
+
found = True
|
|
25
|
+
|
|
26
|
+
if location == "front":
|
|
27
|
+
return True, True, "0.0.0.0"
|
|
28
|
+
|
|
29
|
+
if not found:
|
|
30
|
+
continue
|
|
31
|
+
|
|
32
|
+
list_of_server_names = [
|
|
33
|
+
hostname_
|
|
34
|
+
for location, hostname_ in dict_of_computers.items()
|
|
35
|
+
if location == "front"
|
|
36
|
+
]
|
|
37
|
+
if not list_of_server_names:
|
|
38
|
+
logger.error(f"no server (.front) onboard {ugv_name}.")
|
|
39
|
+
return False, False, ""
|
|
40
|
+
|
|
41
|
+
if len(list_of_server_names) > 1:
|
|
42
|
+
logger.warning(
|
|
43
|
+
"{} servers (.front) onboard {}".format(
|
|
44
|
+
len(list_of_server_names),
|
|
45
|
+
ugv_name,
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
server_name = list_of_server_names[0]
|
|
50
|
+
logger.info(f"{hostname}: server_name={server_name}")
|
|
51
|
+
|
|
52
|
+
return True, False, f"{server_name}.local"
|
|
53
|
+
|
|
54
|
+
logger.error(f"cannot find hostname: {hostname}.")
|
|
55
|
+
return False, False, ""
|
|
@@ -4,7 +4,6 @@ from bluer_ugv.README.ugvs.db import dict_of_ugvs
|
|
|
4
4
|
def get(
|
|
5
5
|
ugv_name: str,
|
|
6
6
|
what: str,
|
|
7
|
-
include_comments: bool = False,
|
|
8
7
|
) -> str:
|
|
9
8
|
list_of_what = what.split(".")
|
|
10
9
|
info = dict_of_ugvs.get(ugv_name, {})
|
|
@@ -17,7 +16,4 @@ def get(
|
|
|
17
16
|
if not info:
|
|
18
17
|
info = "not-found"
|
|
19
18
|
|
|
20
|
-
if not include_comments and info:
|
|
21
|
-
info = info.split(" ")[0]
|
|
22
|
-
|
|
23
19
|
return str(info)
|
|
@@ -7,18 +7,13 @@ def help_get(
|
|
|
7
7
|
tokens: List[str],
|
|
8
8
|
mono: bool,
|
|
9
9
|
) -> str:
|
|
10
|
-
args = [
|
|
11
|
-
"[--include_comments 1]",
|
|
12
|
-
]
|
|
13
|
-
|
|
14
10
|
return show_usage(
|
|
15
11
|
[
|
|
16
12
|
"@ugv",
|
|
17
13
|
"get",
|
|
18
14
|
"<ugv-name>",
|
|
19
15
|
"computers.back | computers.front | computers.top | <what>",
|
|
20
|
-
]
|
|
21
|
-
+ args,
|
|
16
|
+
],
|
|
22
17
|
"get ugv info.",
|
|
23
18
|
mono=mono,
|
|
24
19
|
)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from bluer_ugv.help.swallow.dataset import help_functions as help_dataset
|
|
2
2
|
from bluer_ugv.help.swallow.debug import help_debug
|
|
3
3
|
from bluer_ugv.help.swallow.env import help_functions as help_env
|
|
4
|
+
from bluer_ugv.help.swallow.ethernet import help_functions as help_ethernet
|
|
4
5
|
from bluer_ugv.help.swallow.git import help_functions as help_git
|
|
5
6
|
from bluer_ugv.help.swallow.keyboard import help_functions as help_keyboard
|
|
6
7
|
from bluer_ugv.help.swallow.select_target import help_select_target
|
|
@@ -13,6 +14,7 @@ help_functions = {
|
|
|
13
14
|
"dataset": help_dataset,
|
|
14
15
|
"debug": help_debug,
|
|
15
16
|
"env": help_env,
|
|
17
|
+
"ethernet": help_ethernet,
|
|
16
18
|
"git": help_git,
|
|
17
19
|
"keyboard": help_keyboard,
|
|
18
20
|
"select_target": help_select_target,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from bluer_options.terminal import show_usage, xtra
|
|
4
|
+
|
|
5
|
+
from bluer_ugv import env
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def help_test(
|
|
9
|
+
tokens: List[str],
|
|
10
|
+
mono: bool,
|
|
11
|
+
) -> str:
|
|
12
|
+
options = xtra("dryrun", mono=mono)
|
|
13
|
+
|
|
14
|
+
args = [
|
|
15
|
+
"[--is_server 0 | 1]",
|
|
16
|
+
"[--server_name 0.0.0.0 | <server_name>.local]",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
return show_usage(
|
|
20
|
+
[
|
|
21
|
+
"@swallow",
|
|
22
|
+
"ethernet",
|
|
23
|
+
"test",
|
|
24
|
+
f"[{options}]",
|
|
25
|
+
]
|
|
26
|
+
+ args,
|
|
27
|
+
"test ethernet.",
|
|
28
|
+
mono=mono,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
help_functions = {
|
|
33
|
+
"test": help_test,
|
|
34
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
|
|
3
|
+
from blueness import module
|
|
4
|
+
from blueness.argparse.generic import sys_exit
|
|
5
|
+
|
|
6
|
+
from bluer_ugv import env
|
|
7
|
+
from bluer_ugv import NAME
|
|
8
|
+
from bluer_ugv.swallow.session.classical.ethernet.testing import test
|
|
9
|
+
from bluer_ugv.logger import logger
|
|
10
|
+
|
|
11
|
+
NAME = module.name(__file__, NAME)
|
|
12
|
+
|
|
13
|
+
parser = argparse.ArgumentParser(NAME)
|
|
14
|
+
parser.add_argument(
|
|
15
|
+
"task",
|
|
16
|
+
type=str,
|
|
17
|
+
help="test",
|
|
18
|
+
)
|
|
19
|
+
parser.add_argument(
|
|
20
|
+
"--is_server",
|
|
21
|
+
type=int,
|
|
22
|
+
default=1,
|
|
23
|
+
help="0 | 1",
|
|
24
|
+
)
|
|
25
|
+
parser.add_argument(
|
|
26
|
+
"--server_name",
|
|
27
|
+
type=str,
|
|
28
|
+
default="0.0.0.0",
|
|
29
|
+
help="0.0.0.0 | <server_name>.local",
|
|
30
|
+
)
|
|
31
|
+
args = parser.parse_args()
|
|
32
|
+
|
|
33
|
+
success = False
|
|
34
|
+
if args.task == "test":
|
|
35
|
+
success = test(
|
|
36
|
+
server_name=args.server_name,
|
|
37
|
+
is_server=args.is_server == 1,
|
|
38
|
+
)
|
|
39
|
+
else:
|
|
40
|
+
success = None
|
|
41
|
+
|
|
42
|
+
sys_exit(logger, NAME, args.task, success)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import threading
|
|
2
|
+
|
|
3
|
+
from bluer_options.env import abcli_hostname
|
|
4
|
+
|
|
5
|
+
from bluer_ugv import env
|
|
6
|
+
from bluer_ugv.swallow.session.classical.ethernet.client import EthernetClient
|
|
7
|
+
from bluer_ugv.README.ugvs.ethernet import find_server
|
|
8
|
+
from bluer_ugv.logger import logger
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ClassicalEthernet:
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
):
|
|
15
|
+
self.enabled: bool = True
|
|
16
|
+
|
|
17
|
+
logger.info(f"creating {self.__class__.__name__}...")
|
|
18
|
+
|
|
19
|
+
self.running = False
|
|
20
|
+
|
|
21
|
+
self.enabled, is_server, server_name = find_server(hostname=abcli_hostname)
|
|
22
|
+
if not self.enabled:
|
|
23
|
+
return
|
|
24
|
+
|
|
25
|
+
self.client = EthernetClient(
|
|
26
|
+
host=server_name,
|
|
27
|
+
port=env.BLUER_UGV_ETHERNET_PORT,
|
|
28
|
+
is_server=is_server,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
self.running = True
|
|
32
|
+
self.thread = threading.Thread(target=self.loop, daemon=True)
|
|
33
|
+
self.thread.start()
|
|
34
|
+
|
|
35
|
+
def stop(self):
|
|
36
|
+
if not self.enabled:
|
|
37
|
+
return
|
|
38
|
+
|
|
39
|
+
self.running = False
|
|
40
|
+
self.thread.join()
|
|
41
|
+
|
|
42
|
+
self.client.close()
|
|
43
|
+
logger.info(f"{self.__class__.__name__}.stopped.")
|
|
44
|
+
|
|
45
|
+
def loop(self):
|
|
46
|
+
logger.info(f"{self.__class__.__name__}.loop started.")
|
|
47
|
+
|
|
48
|
+
while self.running:
|
|
49
|
+
self.client.process()
|
|
50
|
+
|
|
51
|
+
def update(self):
|
|
52
|
+
return not self.client.stop_received
|